diff --git a/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js b/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js index bde5d4f067..250ee7b8b9 100644 --- a/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js +++ b/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js @@ -1 +1 @@ -define(["events","apiclient","appStorage"],function(events,apiClientFactory,appStorage){"use strict";function paramsToString(params){var values=[];for(var key in params){var value=params[key];null!==value&&void 0!==value&&""!==value&&values.push(encodeURIComponent(key)+"="+encodeURIComponent(value))}return values.join("&")}function resolveFailure(instance,resolve){resolve({State:ConnectionState.Unavailable,ConnectUser:instance.connectUser()})}function mergeServers(credentialProvider,list1,list2){for(var i=0,length=list2.length;i0})}function findServers(){return new Promise(function(resolve,reject){var onFinish=function(foundServers){var servers=foundServers.map(function(foundServer){var info={Id:foundServer.Id,LocalAddress:convertEndpointAddressToManualAddress(foundServer)||foundServer.Address,Name:foundServer.Name};return info.LastConnectionMode=info.ManualAddress?ConnectionMode.Manual:ConnectionMode.Local,info});resolve(servers)};require(["serverdiscovery"],function(serverDiscovery){serverDiscovery.findServers(1e3).then(onFinish,function(){onFinish([])})})})}function convertEndpointAddressToManualAddress(info){if(info.Address&&info.EndpointAddress){var address=info.EndpointAddress.split(":")[0],parts=info.Address.split(":");if(parts.length>1){var portString=parts[parts.length-1];isNaN(parseInt(portString))||(address+=":"+portString)}return normalizeAddress(address)}return null}function stringEqualsIgnoreCase(str1,str2){return(str1||"").toLowerCase()===(str2||"").toLowerCase()}function compareVersions(a,b){a=a.split("."),b=b.split(".");for(var i=0,length=Math.max(a.length,b.length);ibVal)return 1}return 0}function testNextConnectionMode(tests,index,server,options,resolve){if(index>=tests.length)return console.log("Tested all connection modes. Failing server connection."),void resolveFailure(self,resolve);var mode=tests[index],address=ServerInfo.getServerAddress(server,mode),enableRetry=!1,skipTest=!1,timeout=defaultTimeout;return mode===ConnectionMode.Local?(enableRetry=!0,timeout=8e3,stringEqualsIgnoreCase(address,server.ManualAddress)&&(console.log("skipping LocalAddress test because it is the same as ManualAddress"),skipTest=!0)):mode===ConnectionMode.Manual&&stringEqualsIgnoreCase(address,server.LocalAddress)&&(enableRetry=!0,timeout=8e3),skipTest||!address?(console.log("skipping test at index "+index),void testNextConnectionMode(tests,index+1,server,options,resolve)):(console.log("testing connection mode "+mode+" with server "+server.Name),void tryConnect(address,timeout).then(function(result){1===compareVersions(self.minServerVersion(),result.Version)?(console.log("minServerVersion requirement not met. Server version: "+result.Version),resolve({State:ConnectionState.ServerUpdateNeeded,Servers:[server]})):result.Id!==server.Id?testNextConnectionMode(tests,index+1,server,options,resolve):(console.log("calling onSuccessfulConnection with connection mode "+mode+" with server "+server.Name),onSuccessfulConnection(server,result,mode,options,resolve))},function(){console.log("test failed for connection mode "+mode+" with server "+server.Name),enableRetry?testNextConnectionMode(tests,index+1,server,options,resolve):testNextConnectionMode(tests,index+1,server,options,resolve)}))}function onSuccessfulConnection(server,systemInfo,connectionMode,options,resolve){var credentials=credentialProvider.credentials();options=options||{},credentials.ConnectAccessToken&&options.enableAutoLogin!==!1?ensureConnectUser(credentials).then(function(){server.ExchangeToken?addAuthenticationInfoFromConnect(server,connectionMode,credentials).then(function(){afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)},function(){afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)}):afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)}):afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)}function afterConnectValidated(server,credentials,systemInfo,connectionMode,verifyLocalAuthentication,options,resolve){if(options=options||{},options.enableAutoLogin===!1)server.UserId=null,server.AccessToken=null;else if(verifyLocalAuthentication&&server.AccessToken&&options.enableAutoLogin!==!1)return void validateAuthentication(server,connectionMode).then(function(){afterConnectValidated(server,credentials,systemInfo,connectionMode,!1,options,resolve)});updateServerInfo(server,systemInfo),server.LastConnectionMode=connectionMode,options.updateDateLastAccessed!==!1&&(server.DateLastAccessed=(new Date).getTime()),credentialProvider.addOrUpdateServer(credentials.Servers,server),credentialProvider.credentials(credentials);var result={Servers:[]};result.ApiClient=getOrAddApiClient(server,connectionMode),result.ApiClient.setSystemInfo(systemInfo),result.State=server.AccessToken&&options.enableAutoLogin!==!1?ConnectionState.SignedIn:ConnectionState.ServerSignIn,result.Servers.push(server),result.ApiClient.updateServerInfo(server,connectionMode),result.State===ConnectionState.SignedIn&&afterConnected(result.ApiClient,options),resolve(result),events.trigger(self,"connected",[result])}function replaceAll(originalString,strReplace,strWith){var reg=new RegExp(strReplace,"ig");return originalString.replace(reg,strWith)}function normalizeAddress(address){return address=address.trim(),0!==address.toLowerCase().indexOf("http")&&(address="http://"+address),address=replaceAll(address,"Http:","http:"),address=replaceAll(address,"Https:","https:")}function addAppInfoToConnectRequest(request){request.headers=request.headers||{},request.headers["X-Application"]=appName+"/"+appVersion}function exchangePin(pinInfo){if(!pinInfo)throw new Error("pinInfo cannot be null");var request={type:"POST",url:getConnectUrl("pin/authenticate"),data:{deviceId:pinInfo.DeviceId,pin:pinInfo.Pin},dataType:"json"};return addAppInfoToConnectRequest(request),ajax(request)}console.log("Begin ConnectionManager constructor");var self=this;this._apiClients=[];var connectUser;return self.connectUser=function(){return connectUser},self._minServerVersion="3.2.9",self.appVersion=function(){return appVersion},self.capabilities=function(){return capabilities},self.deviceId=function(){return deviceId},self.credentialProvider=function(){return credentialProvider},self.connectUserId=function(){return credentialProvider.credentials().ConnectUserId},self.connectToken=function(){return credentialProvider.credentials().ConnectAccessToken},self.getServerInfo=function(id){var servers=credentialProvider.credentials().Servers;return servers.filter(function(s){return s.Id===id})[0]},self.getLastUsedServer=function(){var servers=credentialProvider.credentials().Servers;return servers.sort(function(a,b){return(b.DateLastAccessed||0)-(a.DateLastAccessed||0)}),servers.length?servers[0]:null},self.getLastUsedApiClient=function(){var servers=credentialProvider.credentials().Servers;if(servers.sort(function(a,b){return(b.DateLastAccessed||0)-(a.DateLastAccessed||0)}),!servers.length)return null;var server=servers[0];return getOrAddApiClient(server,server.LastConnectionMode)},self.addApiClient=function(apiClient){self._apiClients.push(apiClient);var existingServers=credentialProvider.credentials().Servers.filter(function(s){return stringEqualsIgnoreCase(s.ManualAddress,apiClient.serverAddress())||stringEqualsIgnoreCase(s.LocalAddress,apiClient.serverAddress())||stringEqualsIgnoreCase(s.RemoteAddress,apiClient.serverAddress())}),existingServer=existingServers.length?existingServers[0]:{};if(existingServer.DateLastAccessed=(new Date).getTime(),existingServer.LastConnectionMode=ConnectionMode.Manual,existingServer.ManualAddress=apiClient.serverAddress(),apiClient.serverInfo(existingServer),apiClient.onAuthenticated=function(instance,result){onAuthenticated(instance,result,{},!0)},!existingServers.length){var credentials=credentialProvider.credentials();credentials.Servers=[existingServer],credentialProvider.credentials(credentials)}events.trigger(self,"apiclientcreated",[apiClient]),existingServer.Id||apiClient.getPublicSystemInfo().then(function(systemInfo){var credentials=credentialProvider.credentials();existingServer.Id=systemInfo.Id,apiClient.serverInfo(existingServer),credentials.Servers=[existingServer],credentialProvider.credentials(credentials)})},self.clearData=function(){console.log("connection manager clearing data"),connectUser=null;var credentials=credentialProvider.credentials();credentials.ConnectAccessToken=null,credentials.ConnectUserId=null,credentials.Servers=[],credentialProvider.credentials(credentials)},self.getOrCreateApiClient=function(serverId){var credentials=credentialProvider.credentials(),servers=credentials.Servers.filter(function(s){return stringEqualsIgnoreCase(s.Id,serverId)});if(!servers.length)throw new Error("Server not found: "+serverId);var server=servers[0];return getOrAddApiClient(server,server.LastConnectionMode)},self.user=function(apiClient){return new Promise(function(resolve,reject){function onLocalUserDone(e){var image=getImageUrl(localUser);resolve({localUser:localUser,name:connectUser?connectUser.Name:localUser?localUser.Name:null,imageUrl:image.url,supportsImageParams:image.supportsParams})}function onEnsureConnectUserDone(){apiClient&&apiClient.getCurrentUserId()?apiClient.getCurrentUser().then(function(u){localUser=u,onLocalUserDone()},onLocalUserDone):onLocalUserDone()}var localUser,credentials=credentialProvider.credentials();!credentials.ConnectUserId||!credentials.ConnectAccessToken||apiClient&&apiClient.getCurrentUserId()?onEnsureConnectUserDone():ensureConnectUser(credentials).then(onEnsureConnectUserDone,onEnsureConnectUserDone)})},self.isLoggedIntoConnect=function(){return!(!self.connectToken()||!self.connectUserId())},self.logout=function(){console.log("begin connectionManager loguot");for(var promises=[],i=0,length=self._apiClients.length;i0})}function findServers(){return new Promise(function(resolve,reject){var onFinish=function(foundServers){var servers=foundServers.map(function(foundServer){var info={Id:foundServer.Id,LocalAddress:convertEndpointAddressToManualAddress(foundServer)||foundServer.Address,Name:foundServer.Name};return info.LastConnectionMode=info.ManualAddress?ConnectionMode.Manual:ConnectionMode.Local,info});resolve(servers)};require(["serverdiscovery"],function(serverDiscovery){serverDiscovery.findServers(1e3).then(onFinish,function(){onFinish([])})})})}function convertEndpointAddressToManualAddress(info){if(info.Address&&info.EndpointAddress){var address=info.EndpointAddress.split(":")[0],parts=info.Address.split(":");if(parts.length>1){var portString=parts[parts.length-1];isNaN(parseInt(portString))||(address+=":"+portString)}return normalizeAddress(address)}return null}function stringEqualsIgnoreCase(str1,str2){return(str1||"").toLowerCase()===(str2||"").toLowerCase()}function compareVersions(a,b){a=a.split("."),b=b.split(".");for(var i=0,length=Math.max(a.length,b.length);ibVal)return 1}return 0}function testNextConnectionMode(tests,index,server,options,resolve){if(index>=tests.length)return console.log("Tested all connection modes. Failing server connection."),void resolveFailure(self,resolve);var mode=tests[index],address=ServerInfo.getServerAddress(server,mode),enableRetry=!1,skipTest=!1,timeout=defaultTimeout;return mode===ConnectionMode.Local?(enableRetry=!0,timeout=8e3,stringEqualsIgnoreCase(address,server.ManualAddress)&&(console.log("skipping LocalAddress test because it is the same as ManualAddress"),skipTest=!0)):mode===ConnectionMode.Manual&&stringEqualsIgnoreCase(address,server.LocalAddress)&&(enableRetry=!0,timeout=8e3),skipTest||!address?(console.log("skipping test at index "+index),void testNextConnectionMode(tests,index+1,server,options,resolve)):(console.log("testing connection mode "+mode+" with server "+server.Name),void tryConnect(address,timeout).then(function(result){1===compareVersions(self.minServerVersion(),result.Version)?(console.log("minServerVersion requirement not met. Server version: "+result.Version),resolve({State:ConnectionState.ServerUpdateNeeded,Servers:[server]})):result.Id!==server.Id?testNextConnectionMode(tests,index+1,server,options,resolve):(console.log("calling onSuccessfulConnection with connection mode "+mode+" with server "+server.Name),onSuccessfulConnection(server,result,mode,options,resolve))},function(){console.log("test failed for connection mode "+mode+" with server "+server.Name),enableRetry?testNextConnectionMode(tests,index+1,server,options,resolve):testNextConnectionMode(tests,index+1,server,options,resolve)}))}function onSuccessfulConnection(server,systemInfo,connectionMode,options,resolve){var credentials=credentialProvider.credentials();options=options||{},credentials.ConnectAccessToken&&options.enableAutoLogin!==!1?ensureConnectUser(credentials).then(function(){server.ExchangeToken?addAuthenticationInfoFromConnect(server,connectionMode,credentials).then(function(){afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)},function(){afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)}):afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)}):afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)}function afterConnectValidated(server,credentials,systemInfo,connectionMode,verifyLocalAuthentication,options,resolve){if(options=options||{},options.enableAutoLogin===!1)server.UserId=null,server.AccessToken=null;else if(verifyLocalAuthentication&&server.AccessToken&&options.enableAutoLogin!==!1)return void validateAuthentication(server,connectionMode).then(function(){afterConnectValidated(server,credentials,systemInfo,connectionMode,!1,options,resolve)});updateServerInfo(server,systemInfo),server.LastConnectionMode=connectionMode,options.updateDateLastAccessed!==!1&&(server.DateLastAccessed=(new Date).getTime()),credentialProvider.addOrUpdateServer(credentials.Servers,server),credentialProvider.credentials(credentials);var result={Servers:[]};result.ApiClient=getOrAddApiClient(server,connectionMode),result.ApiClient.setSystemInfo(systemInfo),result.State=server.AccessToken&&options.enableAutoLogin!==!1?ConnectionState.SignedIn:ConnectionState.ServerSignIn,result.Servers.push(server),result.ApiClient.updateServerInfo(server,connectionMode),result.State===ConnectionState.SignedIn&&afterConnected(result.ApiClient,options),resolve(result),events.trigger(self,"connected",[result])}function replaceAll(originalString,strReplace,strWith){var reg=new RegExp(strReplace,"ig");return originalString.replace(reg,strWith)}function normalizeAddress(address){return address=address.trim(),0!==address.toLowerCase().indexOf("http")&&(address="http://"+address),address=replaceAll(address,"Http:","http:"),address=replaceAll(address,"Https:","https:")}function addAppInfoToConnectRequest(request){request.headers=request.headers||{},request.headers["X-Application"]=appName+"/"+appVersion}function exchangePin(pinInfo){if(!pinInfo)throw new Error("pinInfo cannot be null");var request={type:"POST",url:getConnectUrl("pin/authenticate"),data:{deviceId:pinInfo.DeviceId,pin:pinInfo.Pin},dataType:"json"};return addAppInfoToConnectRequest(request),ajax(request)}console.log("Begin ConnectionManager constructor");var self=this;this._apiClients=[];var connectUser;return self.connectUser=function(){return connectUser},self._minServerVersion="3.2.12",self.appVersion=function(){return appVersion},self.capabilities=function(){return capabilities},self.deviceId=function(){return deviceId},self.credentialProvider=function(){return credentialProvider},self.connectUserId=function(){return credentialProvider.credentials().ConnectUserId},self.connectToken=function(){return credentialProvider.credentials().ConnectAccessToken},self.getServerInfo=function(id){var servers=credentialProvider.credentials().Servers;return servers.filter(function(s){return s.Id===id})[0]},self.getLastUsedServer=function(){var servers=credentialProvider.credentials().Servers;return servers.sort(function(a,b){return(b.DateLastAccessed||0)-(a.DateLastAccessed||0)}),servers.length?servers[0]:null},self.getLastUsedApiClient=function(){var servers=credentialProvider.credentials().Servers;if(servers.sort(function(a,b){return(b.DateLastAccessed||0)-(a.DateLastAccessed||0)}),!servers.length)return null;var server=servers[0];return getOrAddApiClient(server,server.LastConnectionMode)},self.addApiClient=function(apiClient){self._apiClients.push(apiClient);var existingServers=credentialProvider.credentials().Servers.filter(function(s){return stringEqualsIgnoreCase(s.ManualAddress,apiClient.serverAddress())||stringEqualsIgnoreCase(s.LocalAddress,apiClient.serverAddress())||stringEqualsIgnoreCase(s.RemoteAddress,apiClient.serverAddress())}),existingServer=existingServers.length?existingServers[0]:{};if(existingServer.DateLastAccessed=(new Date).getTime(),existingServer.LastConnectionMode=ConnectionMode.Manual,existingServer.ManualAddress=apiClient.serverAddress(),apiClient.serverInfo(existingServer),apiClient.onAuthenticated=function(instance,result){onAuthenticated(instance,result,{},!0)},!existingServers.length){var credentials=credentialProvider.credentials();credentials.Servers=[existingServer],credentialProvider.credentials(credentials)}events.trigger(self,"apiclientcreated",[apiClient]),existingServer.Id||apiClient.getPublicSystemInfo().then(function(systemInfo){var credentials=credentialProvider.credentials();existingServer.Id=systemInfo.Id,apiClient.serverInfo(existingServer),credentials.Servers=[existingServer],credentialProvider.credentials(credentials)})},self.clearData=function(){console.log("connection manager clearing data"),connectUser=null;var credentials=credentialProvider.credentials();credentials.ConnectAccessToken=null,credentials.ConnectUserId=null,credentials.Servers=[],credentialProvider.credentials(credentials)},self.getOrCreateApiClient=function(serverId){var credentials=credentialProvider.credentials(),servers=credentials.Servers.filter(function(s){return stringEqualsIgnoreCase(s.Id,serverId)});if(!servers.length)throw new Error("Server not found: "+serverId);var server=servers[0];return getOrAddApiClient(server,server.LastConnectionMode)},self.user=function(apiClient){return new Promise(function(resolve,reject){function onLocalUserDone(e){var image=getImageUrl(localUser);resolve({localUser:localUser,name:connectUser?connectUser.Name:localUser?localUser.Name:null,imageUrl:image.url,supportsImageParams:image.supportsParams})}function onEnsureConnectUserDone(){apiClient&&apiClient.getCurrentUserId()?apiClient.getCurrentUser().then(function(u){localUser=u,onLocalUserDone()},onLocalUserDone):onLocalUserDone()}var localUser,credentials=credentialProvider.credentials();!credentials.ConnectUserId||!credentials.ConnectAccessToken||apiClient&&apiClient.getCurrentUserId()?onEnsureConnectUserDone():ensureConnectUser(credentials).then(onEnsureConnectUserDone,onEnsureConnectUserDone)})},self.isLoggedIntoConnect=function(){return!(!self.connectToken()||!self.connectUserId())},self.logout=function(){console.log("begin connectionManager loguot");for(var promises=[],i=0,length=self._apiClients.length;i-1&&(item={Name:"Music",ServerId:serverId,Id:"localview:MusicView",Type:"MusicView",CollectionType:"music",IsFolder:!0},list.push(item)),types.indexOf("photo")>-1&&(item={Name:"Photos",ServerId:serverId,Id:"localview:PhotosView",Type:"PhotosView",CollectionType:"photos",IsFolder:!0},list.push(item)),types.indexOf("episode")>-1&&(item={Name:"TV",ServerId:serverId,Id:"localview:TVView",Type:"TVView",CollectionType:"tvshows",IsFolder:!0},list.push(item)),types.indexOf("movie")>-1&&(item={Name:"Movies",ServerId:serverId,Id:"localview:MoviesView",Type:"MoviesView",CollectionType:"movies",IsFolder:!0},list.push(item)),types.indexOf("video")>-1&&(item={Name:"Videos",ServerId:serverId,Id:"localview:VideosView",Type:"VideosView",CollectionType:"videos",IsFolder:!0},list.push(item)),types.indexOf("musicvideo")>-1&&(item={Name:"Music Videos",ServerId:serverId,Id:"localview:MusicVideosView",Type:"MusicVideosView",CollectionType:"videos",IsFolder:!0},list.push(item)),Promise.resolve(list)})}function getTypeFilterForTopLevelView(parentId){var typeFilter=null;switch(parentId){case"localview:MusicView":typeFilter="audio";break;case"localview:PhotosView":typeFilter="photo";break;case"localview:TVView":typeFilter="episode";break;case"localview:VideosView":typeFilter="video";break;case"localview:MoviesView":typeFilter="movie";break;case"localview:MusicVideosView":typeFilter="musicvideo"}return typeFilter}function getViewItems(serverId,userId,options){var parentId=options.ParentId,typeFilterTop=getTypeFilterForTopLevelView(parentId),typeFilter=options.MediaType;return typeFilter||(typeFilter=typeFilterTop),parentId=stripStart(parentId,"localview:"),parentId=stripStart(parentId,"local:"),getServerItems(serverId).then(function(items){var resultItemIds=items.filter(function(item){if(item.SyncStatus&&"synced"!==item.SyncStatus)return!1;if(options.MediaType)return item.Item.MediaType===options.MediaType;if(typeFilter){var type=(item.Item.Type||"").toLowerCase();return typeFilter===type}return item.Item.ParentId===parentId}).map(function(item2){switch(typeFilterTop){case"audio":case"photo":return item2.Item.AlbumId;case"episode":return item2.Item.SeriesId}return item2.Item.Id}).filter(filterDistinct);if(options.Recursive){var resultItemIds2=items.filter(function(item){return(!item.SyncStatus||"synced"===item.SyncStatus)&&resultItemIds.indexOf(item.Item.ParentId)>=0}).map(function(item2){return item2.Item.Id});resultItemIds=resultItemIds.concat(resultItemIds2)}var resultItems=[];return items.forEach(function(item){"IsNotFolder"===options.Filters&&item.Item.IsFolder||("IsFolder"!==options.Filters||item.Item.IsFolder)&&resultItemIds.forEach(function(id){item.Item.Id===id&&resultItems.push(item.Item)})}),"DateCreated"===options.SortBy&&resultItems.sort(function(a,b){return compareDates(a.DateCreated,b.DateCreated)}),options.Limit&&(resultItems=resultItems.slice(0,options.Limit)),Promise.resolve(resultItems)})}function removeObsoleteContainerItems(serverId){return getServerItems(serverId).then(function(items){var seriesItems=items.filter(function(item){var type=(item.Item.Type||"").toLowerCase();return"series"===type}),seasonItems=items.filter(function(item){var type=(item.Item.Type||"").toLowerCase();return"season"===type}),albumItems=items.filter(function(item){var type=(item.Item.Type||"").toLowerCase();return"musicalbum"===type||"photoalbum"===type}),requiredSeriesIds=items.filter(function(item){var type=(item.Item.Type||"").toLowerCase();return"episode"===type}).map(function(item2){return item2.Item.SeriesId}).filter(filterDistinct),requiredSeasonIds=items.filter(function(item){var type=(item.Item.Type||"").toLowerCase();return"episode"===type}).map(function(item2){return item2.Item.SeasonId}).filter(filterDistinct),requiredAlbumIds=items.filter(function(item){var type=(item.Item.Type||"").toLowerCase();return"audio"===type||"photo"===type}).map(function(item2){return item2.Item.AlbumId}).filter(filterDistinct),obsoleteItems=[];seriesItems.forEach(function(item){requiredSeriesIds.indexOf(item.Item.Id)<0&&obsoleteItems.push(item)}),seasonItems.forEach(function(item){requiredSeasonIds.indexOf(item.Item.Id)<0&&obsoleteItems.push(item)}),albumItems.forEach(function(item){requiredAlbumIds.indexOf(item.Item.Id)<0&&obsoleteItems.push(item)});var p=Promise.resolve();return obsoleteItems.forEach(function(item){p=p.then(function(){return itemrepository.remove(item.ServerId,item.Id)})}),p})}function removeLocalItem(localItem){return itemrepository.get(localItem.ServerId,localItem.Id).then(function(item){return filerepository.deleteFile(item.LocalPath).then(function(){var p=Promise.resolve(!0);return item.AdditionalFiles&&item.AdditionalFiles.forEach(function(file){p=p.then(function(){return filerepository.deleteFile(file.Path)})}),p.then(function(file){return itemrepository.remove(localItem.ServerId,localItem.Id)})},function(error){var p=Promise.resolve(!0);return item.AdditionalFiles&&item.AdditionalFiles.forEach(function(file){p=p.then(function(item){return filerepository.deleteFile(file.Path)})}),p.then(function(file){return itemrepository.remove(localItem.ServerId,localItem.Id)})})})}function addOrUpdateLocalItem(localItem){return console.log("addOrUpdateLocalItem Start"),itemrepository.set(localItem.ServerId,localItem.Id,localItem).then(function(res){return console.log("addOrUpdateLocalItem Success"),Promise.resolve(!0)},function(error){return console.log("addOrUpdateLocalItem Error"),Promise.resolve(!1)})}function createLocalItem(libraryItem,serverInfo,jobItem){var localPath,path=getDirectoryPath(libraryItem,serverInfo),localFolder=filerepository.getFullLocalPath(path);if(jobItem&&(path.push(getLocalFileName(libraryItem,jobItem.OriginalFileName)),localPath=filerepository.getFullLocalPath(path)),libraryItem.MediaSources)for(var i=0;i0&&(fileName=fileName.substring(0,pos)),fileName}function downloadFile(url,localItem){var folder=filerepository.getLocalPath(),imageUrl=getImageUrl(localItem.Item.ServerId,localItem.Item.Id,"Primary",0);return transfermanager.downloadFile(url,folder,localItem,imageUrl)}function downloadSubtitles(url,fileName){var folder=filerepository.getLocalPath();return transfermanager.downloadSubtitles(url,folder,fileName)}function getImageUrl(serverId,itemId,imageType,index){var pathArray=getImagePath(serverId,itemId,imageType,index),relPath=pathArray.join("/"),prefix="ms-appdata:///local";return prefix+"/"+relPath}function hasImage(serverId,itemId,imageType,index){var pathArray=getImagePath(serverId,itemId,imageType,index),localFilePath=filerepository.getFullMetadataPath(pathArray);return filerepository.fileExists(localFilePath).then(function(exists){return Promise.resolve(exists)},function(err){return Promise.resolve(!1)})}function fileExists(localFilePath){return filerepository.fileExists(localFilePath)}function downloadImage(localItem,url,serverId,itemId,imageType,index){var pathArray=getImagePath(serverId,itemId,imageType,index),localFilePath=filerepository.getFullMetadataPath(pathArray);localItem.AdditionalFiles||(localItem.AdditionalFiles=[]);var fileInfo={Path:localFilePath,Type:"Image",Name:imageType+index.toString(),ImageType:imageType};localItem.AdditionalFiles.push(fileInfo);var folder=filerepository.getMetadataPath();return transfermanager.downloadImage(url,folder,localFilePath)}function isDownloadFileInQueue(path){return transfermanager.isDownloadFileInQueue(path)}function getDownloadItemCount(){return transfermanager.getDownloadItemCount()}function getDirectoryPath(item,server){var parts=[];parts.push(server.Name);var itemtype=item.Type.toLowerCase();if("episode"===itemtype){parts.push("TV");var seriesName=item.SeriesName;seriesName&&parts.push(seriesName);var seasonName=item.SeasonName;seasonName&&parts.push(seasonName)}else if("video"===itemtype)parts.push("Videos"),parts.push(item.Name);else if("audio"===itemtype){parts.push("Music");var albumArtist=item.AlbumArtist;albumArtist&&parts.push(albumArtist),item.AlbumId&&item.Album&&parts.push(item.Album)}else"photo"===itemtype&&(parts.push("Photos"),item.AlbumId&&item.Album&&parts.push(item.Album));for(var finalParts=[],i=0;ifind.length&&0===str.indexOf(find))}function stripStart(str,find){return startsWith(str,find)?str.substr(find.length):str}function filterDistinct(value,index,self){return self.indexOf(value)===index}function compareDates(a,b){return isFinite(a=a.valueOf())&&isFinite(b=b.valueOf())?(a>b)-(a-1&&(item={Name:"Music",ServerId:serverId,Id:"localview:MusicView",Type:"MusicView",CollectionType:"music",IsFolder:!0},list.push(item)),types.indexOf("photo")>-1&&(item={Name:"Photos",ServerId:serverId,Id:"localview:PhotosView",Type:"PhotosView",CollectionType:"photos",IsFolder:!0},list.push(item)),types.indexOf("episode")>-1&&(item={Name:"TV",ServerId:serverId,Id:"localview:TVView",Type:"TVView",CollectionType:"tvshows",IsFolder:!0},list.push(item)),types.indexOf("movie")>-1&&(item={Name:"Movies",ServerId:serverId,Id:"localview:MoviesView",Type:"MoviesView",CollectionType:"movies",IsFolder:!0},list.push(item)),types.indexOf("video")>-1&&(item={Name:"Videos",ServerId:serverId,Id:"localview:VideosView",Type:"VideosView",CollectionType:"videos",IsFolder:!0},list.push(item)),types.indexOf("musicvideo")>-1&&(item={Name:"Music Videos",ServerId:serverId,Id:"localview:MusicVideosView",Type:"MusicVideosView",CollectionType:"videos",IsFolder:!0},list.push(item)),Promise.resolve(list)})}function getTypeFilterForTopLevelView(parentId){var typeFilter=null;switch(parentId){case"localview:MusicView":typeFilter="audio";break;case"localview:PhotosView":typeFilter="photo";break;case"localview:TVView":typeFilter="episode";break;case"localview:VideosView":typeFilter="video";break;case"localview:MoviesView":typeFilter="movie";break;case"localview:MusicVideosView":typeFilter="musicvideo"}return typeFilter}function getViewItems(serverId,userId,options){var parentId=options.ParentId,typeFilterTop=getTypeFilterForTopLevelView(parentId),typeFilter=typeFilterTop;return parentId=stripStart(parentId,"localview:"),parentId=stripStart(parentId,"local:"),getServerItems(serverId).then(function(items){var resultItemIds=items.filter(function(item){if(item.SyncStatus&&"synced"!==item.SyncStatus)return!1;if(options.MediaType&&item.Item.MediaType!==options.MediaType)return!1;if(typeFilter){var type=(item.Item.Type||"").toLowerCase();if(typeFilter!==type)return!1}return!parentId||item.Item.ParentId===parentId}).map(function(item2){switch(typeFilterTop){case"audio":case"photo":return item2.Item.AlbumId;case"episode":return item2.Item.SeriesId}return item2.Item.Id}).filter(filterDistinct);if(options.Recursive){var resultItemIds2=items.filter(function(item){return(!item.SyncStatus||"synced"===item.SyncStatus)&&resultItemIds.indexOf(item.Item.ParentId)>=0}).map(function(item2){return item2.Item.Id});resultItemIds=resultItemIds.concat(resultItemIds2)}var resultItems=[];return items.forEach(function(item){"IsNotFolder"===options.Filters&&item.Item.IsFolder||("IsFolder"!==options.Filters||item.Item.IsFolder)&&resultItemIds.forEach(function(id){item.Item.Id===id&&resultItems.push(item.Item)})}),"DateCreated"===options.SortBy&&resultItems.sort(function(a,b){return compareDates(a.DateCreated,b.DateCreated)}),options.Limit&&(resultItems=resultItems.slice(0,options.Limit)),Promise.resolve(resultItems)})}function removeObsoleteContainerItems(serverId){return getServerItems(serverId).then(function(items){var seriesItems=items.filter(function(item){var type=(item.Item.Type||"").toLowerCase();return"series"===type}),seasonItems=items.filter(function(item){var type=(item.Item.Type||"").toLowerCase();return"season"===type}),albumItems=items.filter(function(item){var type=(item.Item.Type||"").toLowerCase();return"musicalbum"===type||"photoalbum"===type}),requiredSeriesIds=items.filter(function(item){var type=(item.Item.Type||"").toLowerCase();return"episode"===type}).map(function(item2){return item2.Item.SeriesId}).filter(filterDistinct),requiredSeasonIds=items.filter(function(item){var type=(item.Item.Type||"").toLowerCase();return"episode"===type}).map(function(item2){return item2.Item.SeasonId}).filter(filterDistinct),requiredAlbumIds=items.filter(function(item){var type=(item.Item.Type||"").toLowerCase();return"audio"===type||"photo"===type}).map(function(item2){return item2.Item.AlbumId}).filter(filterDistinct),obsoleteItems=[];seriesItems.forEach(function(item){requiredSeriesIds.indexOf(item.Item.Id)<0&&obsoleteItems.push(item)}),seasonItems.forEach(function(item){requiredSeasonIds.indexOf(item.Item.Id)<0&&obsoleteItems.push(item)}),albumItems.forEach(function(item){requiredAlbumIds.indexOf(item.Item.Id)<0&&obsoleteItems.push(item)});var p=Promise.resolve();return obsoleteItems.forEach(function(item){p=p.then(function(){return itemrepository.remove(item.ServerId,item.Id)})}),p})}function removeLocalItem(localItem){return itemrepository.get(localItem.ServerId,localItem.Id).then(function(item){return filerepository.deleteFile(item.LocalPath).then(function(){var p=Promise.resolve(!0);return item.AdditionalFiles&&item.AdditionalFiles.forEach(function(file){p=p.then(function(){return filerepository.deleteFile(file.Path)})}),p.then(function(file){return itemrepository.remove(localItem.ServerId,localItem.Id)})},function(error){var p=Promise.resolve(!0);return item.AdditionalFiles&&item.AdditionalFiles.forEach(function(file){p=p.then(function(item){return filerepository.deleteFile(file.Path)})}),p.then(function(file){return itemrepository.remove(localItem.ServerId,localItem.Id)})})})}function addOrUpdateLocalItem(localItem){return console.log("addOrUpdateLocalItem Start"),itemrepository.set(localItem.ServerId,localItem.Id,localItem).then(function(res){return console.log("addOrUpdateLocalItem Success"),Promise.resolve(!0)},function(error){return console.log("addOrUpdateLocalItem Error"),Promise.resolve(!1)})}function createLocalItem(libraryItem,serverInfo,jobItem){var localPath,path=getDirectoryPath(libraryItem,serverInfo),localFolder=filerepository.getFullLocalPath(path);if(jobItem&&(path.push(getLocalFileName(libraryItem,jobItem.OriginalFileName)),localPath=filerepository.getFullLocalPath(path)),libraryItem.MediaSources)for(var i=0;i0&&(fileName=fileName.substring(0,pos)),fileName}function downloadFile(url,localItem){var folder=filerepository.getLocalPath(),imageUrl=getImageUrl(localItem.Item.ServerId,localItem.Item.Id,"Primary",0);return transfermanager.downloadFile(url,folder,localItem,imageUrl)}function downloadSubtitles(url,fileName){var folder=filerepository.getLocalPath();return transfermanager.downloadSubtitles(url,folder,fileName)}function getImageUrl(serverId,itemId,imageType,index){var pathArray=getImagePath(serverId,itemId,imageType,index),relPath=pathArray.join("/"),prefix="ms-appdata:///local";return prefix+"/"+relPath}function hasImage(serverId,itemId,imageType,index){var pathArray=getImagePath(serverId,itemId,imageType,index),localFilePath=filerepository.getFullMetadataPath(pathArray);return filerepository.fileExists(localFilePath).then(function(exists){return Promise.resolve(exists)},function(err){return Promise.resolve(!1)})}function fileExists(localFilePath){return filerepository.fileExists(localFilePath)}function downloadImage(localItem,url,serverId,itemId,imageType,index){var pathArray=getImagePath(serverId,itemId,imageType,index),localFilePath=filerepository.getFullMetadataPath(pathArray);localItem.AdditionalFiles||(localItem.AdditionalFiles=[]);var fileInfo={Path:localFilePath,Type:"Image",Name:imageType+index.toString(),ImageType:imageType};localItem.AdditionalFiles.push(fileInfo);var folder=filerepository.getMetadataPath();return transfermanager.downloadImage(url,folder,localFilePath)}function isDownloadFileInQueue(path){return transfermanager.isDownloadFileInQueue(path)}function getDownloadItemCount(){return transfermanager.getDownloadItemCount()}function getDirectoryPath(item,server){var parts=[];parts.push(server.Name);var itemtype=item.Type.toLowerCase();if("episode"===itemtype){parts.push("TV");var seriesName=item.SeriesName;seriesName&&parts.push(seriesName);var seasonName=item.SeasonName;seasonName&&parts.push(seasonName)}else if("video"===itemtype)parts.push("Videos"),parts.push(item.Name);else if("audio"===itemtype){parts.push("Music");var albumArtist=item.AlbumArtist;albumArtist&&parts.push(albumArtist),item.AlbumId&&item.Album&&parts.push(item.Album)}else"photo"===itemtype&&(parts.push("Photos"),item.AlbumId&&item.Album&&parts.push(item.Album));for(var finalParts=[],i=0;ifind.length&&0===str.indexOf(find))}function stripStart(str,find){return startsWith(str,find)?str.substr(find.length):str}function filterDistinct(value,index,self){return self.indexOf(value)===index}function compareDates(a,b){return isFinite(a=a.valueOf())&&isFinite(b=b.valueOf())?(a>b)-(a.emby-scrollbuttons-scrollbutton{-webkit-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.emby-scrollbuttons-scrollbutton:after{content:'';display:none!important}.emby-scrollbuttons-scrollbutton:focus{color:inherit!important} \ No newline at end of file +.emby-scrollbuttons-scroller{position:relative}.scrollbuttoncontainer{position:absolute;top:0;bottom:0;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;z-index:1;font-size:3em;color:#fff;display:none;overflow:hidden}.scrollbuttoncontainer-left{background:rgba(20,20,20,.5);background:-webkit-linear-gradient(left,#000 0,rgba(0,0,0,0) 100%);background:-webkit-gradient(linear,left top,right top,from(#000),to(rgba(0,0,0,0)));background:-webkit-linear-gradient(left,#000,rgba(0,0,0,0));background:-o-linear-gradient(left,#000,rgba(0,0,0,0));background:linear-gradient(to right,#000,rgba(0,0,0,0));left:0}.scrollbuttoncontainer-right{background:rgba(20,20,20,.5);background:-webkit-linear-gradient(right,#000 0,rgba(0,0,0,0) 100%);background:-webkit-gradient(linear,right top,left top,from(#000),to(rgba(0,0,0,0)));background:-webkit-linear-gradient(right,#000,rgba(0,0,0,0));background:-o-linear-gradient(right,#000,rgba(0,0,0,0));background:linear-gradient(to left,#000,rgba(0,0,0,0));right:0}.emby-scrollbuttons-scroller:hover .scrollbuttoncontainer{display:-webkit-box;display:-webkit-flex;display:flex}.emby-scrollbuttons-scrollbutton{margin:0 -.2em;-webkit-transition:-webkit-transform 160ms ease-out;-o-transition:transform 160ms ease-out;transition:transform 160ms ease-out}.scrollbuttoncontainer:hover>.emby-scrollbuttons-scrollbutton{-webkit-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.emby-scrollbuttons-scrollbutton:after{content:'';display:none!important}.emby-scrollbuttons-scrollbutton:focus{color:inherit!important} \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/homesections.js b/dashboard-ui/bower_components/emby-webcomponents/homesections.js index ddb50b85c7..0c9466f38a 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/homesections.js +++ b/dashboard-ui/bower_components/emby-webcomponents/homesections.js @@ -1 +1 @@ -define(["cardBuilder","appSettings","dom","apphost","layoutManager","imageLoader","globalize","itemShortcuts","itemHelper","embyRouter","emby-button","paper-icon-button-light","emby-itemscontainer","emby-scroller","emby-linkbutton"],function(cardBuilder,appSettings,dom,appHost,layoutManager,imageLoader,globalize,itemShortcuts,itemHelper,embyRouter){"use strict";function getDefaultSection(index){switch(index){case 0:return"smalllibrarytiles";case 1:return"resume";case 2:return"resumeaudio";case 3:return"livetv";case 4:return"nextup";case 5:return"latestmedia";case 6:return"none";default:return""}}function loadSections(elem,apiClient,user,userSettings){return getUserViews(apiClient,user.Id).then(function(userViews){var i,length,sectionCount=7,html="";for(i=0,length=sectionCount;i';elem.innerHTML=html,elem.classList.add("homeSectionsContainer");var promises=[];for(i=0,length=sectionCount;i",layoutManager.tv||(html+=''),html+="",html+='
';for(var i=0,length=items.length;i'+icon+""+item.Name+""}return html+="
",html+=""}function loadlibraryButtons(elem,apiClient,user,userSettings,userViews){return Promise.all([getAppInfo(apiClient),getDownloadsSectionHtml(apiClient,user,userSettings)]).then(function(responses){var infoHtml=responses[0],downloadsHtml=responses[1];elem.classList.remove("verticalSection");var html=getLibraryButtonsHtml(userViews);elem.innerHTML=html+downloadsHtml+infoHtml,bindHomeScreenSettingsIcon(elem,apiClient,user.Id,userSettings),infoHtml&&bindAppInfoEvents(elem)})}function bindAppInfoEvents(elem){getRequirePromise(["registrationServices"]).then(function(registrationServices){elem.querySelector(".appInfoSection").addEventListener("click",function(e){dom.parentWithClass(e.target,"card")&®istrationServices.showPremiereInfo()})})}function getRandomInt(min,max){return Math.floor(Math.random()*(max-min+1))+min}function getAppInfo(apiClient){var frequency=1728e5,cacheKey="lastappinfopresent5",lastDatePresented=parseInt(appSettings.get(cacheKey)||"0");return lastDatePresented?(new Date).getTime()-lastDatePresented
';return html+='
',html+='
',html+="
",html+="
"}function getTheaterInfo(){var html="";html+='
',html+='
',html+='

Discover Emby Theater

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

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

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

Discover Emby Premiere

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

",html+=enableScrollX()?'
':'
';var supportsImageAnalysis=appHost.supports("imageanalysis");supportsImageAnalysis=!1;var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,lazy:!0,allowBottomPadding:!enableScrollX(),shape:enableScrollX()?"autooverflow":"auto",defaultShape:getThumbShape(),showTitle:!1,showParentTitleOrTitle:!0,showAirTime:!0,showAirEndTime:!0,showChannelName:!0,cardLayout:cardLayout,preferThumb:"auto",coverImage:!0,overlayText:!1,centerText:!cardLayout,overlayMoreButton:!0}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadOnNow(elem,apiClient,user){if(!user.Policy.EnableLiveTvAccess)return Promise.resolve("");elem.classList.remove("verticalSection");user.Id;return apiClient.getLiveTvRecommendedPrograms({userId:apiClient.getCurrentUserId(),IsAiring:!0,limit:enableScrollX()?24:8,ImageTypeLimit:1,EnableImageTypes:"Primary,Thumb,Backdrop",EnableTotalRecordCount:!1,Fields:"ChannelInfo,PrimaryImageAspectRatio"}).then(function(result){var html="";result.Items.length&&(html+='
',html+='
',html+='

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

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

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

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

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

",html+='',html+="
"),html+="
",html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:"auto",inheritThumb:!1,shape:enableScrollX()?"autooverflow":"auto",showParentTitleOrTitle:!0,showTitle:!0,centerText:!0,coverImage:!0,overlayText:!1,overlayPlayButton:!0,allowBottomPadding:!enableScrollX(),showAirTime:!0,showChannelName:!1,showAirDateTime:!1,showAirEndTime:!0,defaultShape:getThumbShape()}),enableScrollX()&&(html+="
",html+="
"),html+="
",html+="
"),elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadNextUp(elem,apiClient,userId){var query={Limit:enableScrollX()?24:15,Fields:"PrimaryImageAspectRatio,SeriesInfo,DateCreated,BasicSyncInfo",UserId:userId,ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Banner,Thumb",EnableTotalRecordCount:!1};apiClient.getNextUpEpisodes(query).then(function(result){var html="";if(result.Items.length){html+='
',layoutManager.tv?html+='

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

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

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

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

'+text+"

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

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

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

Discover Emby Theater

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

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

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

Discover Emby Premiere

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

",html+=enableScrollX()?'
':'
';var cardLayout=!1;html+=cardBuilder.getCardsHtml({items:result.Items,lazy:!0,allowBottomPadding:!enableScrollX(),shape:enableScrollX()?"autooverflow":"auto",defaultShape:getThumbShape(),showTitle:!1,showParentTitleOrTitle:!0,showAirTime:!0,showAirEndTime:!0,showChannelName:!0,cardLayout:cardLayout,preferThumb:"auto",coverImage:!0,overlayText:!1,centerText:!cardLayout,overlayMoreButton:!0}),enableScrollX()&&(html+="
",html+="
"),html+="
"}elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadOnNow(elem,apiClient,user){if(!user.Policy.EnableLiveTvAccess)return Promise.resolve("");elem.classList.remove("verticalSection");user.Id;return apiClient.getLiveTvRecommendedPrograms({userId:apiClient.getCurrentUserId(),IsAiring:!0,limit:enableScrollX()?24:8,ImageTypeLimit:1,EnableImageTypes:"Primary,Thumb,Backdrop",EnableTotalRecordCount:!1,Fields:"ChannelInfo,PrimaryImageAspectRatio"}).then(function(result){var html="";result.Items.length&&(html+='
',html+='
',html+='

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

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

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

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

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

",html+='',html+="
"),html+="
",html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,preferThumb:"auto",inheritThumb:!1,shape:enableScrollX()?"autooverflow":"auto",showParentTitleOrTitle:!0,showTitle:!0,centerText:!0,coverImage:!0,overlayText:!1,overlayPlayButton:!0,allowBottomPadding:!enableScrollX(),showAirTime:!0,showChannelName:!1,showAirDateTime:!1,showAirEndTime:!0,defaultShape:getThumbShape()}),enableScrollX()&&(html+="
",html+="
"),html+="
",html+="
"),elem.innerHTML=html,imageLoader.lazyChildren(elem)})}function loadNextUp(elem,apiClient,userId){var query={Limit:enableScrollX()?24:15,Fields:"PrimaryImageAspectRatio,SeriesInfo,DateCreated,BasicSyncInfo",UserId:userId,ImageTypeLimit:1,EnableImageTypes:"Primary,Backdrop,Banner,Thumb",EnableTotalRecordCount:!1};apiClient.getNextUpEpisodes(query).then(function(result){var html="";if(result.Items.length){html+='
',layoutManager.tv?html+='

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

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

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

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

'+text+"

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

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

",!layoutManager.tv,html+="
"),html+=enableScrollX()?'
':'
',html+=cardBuilder.getCardsHtml({items:result.Items,shape:enableScrollX()?"autooverflow":"auto",showTitle:!0,showParentTitle:!0,coverImage:!0,lazy:!0,showDetailsMenu:!0,centerText:!0,overlayText:!1,overlayPlayButton:!0,allowBottomPadding:!enableScrollX(),preferThumb:!0,cardLayout:!1}),enableScrollX()&&(html+="
",html+="
"),html+="
",elem.innerHTML=html,imageLoader.lazyChildren(elem)})}return{loadLatestChannelMedia:loadLatestChannelMedia,loadLibraryTiles:loadLibraryTiles,loadResumeVideo:loadResumeVideo,loadResumeAudio:loadResumeAudio,loadActiveRecordings:loadActiveRecordings,loadNextUp:loadNextUp,loadLatestChannelItems:loadLatestChannelItems,loadLatestLiveTvRecordings:loadLatestLiveTvRecordings,getDefaultSection:getDefaultSection,loadSections:loadSections}}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/router.js b/dashboard-ui/bower_components/emby-webcomponents/router.js index fc2d073b0d..3f009b5763 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/router.js +++ b/dashboard-ui/bower_components/emby-webcomponents/router.js @@ -1 +1 @@ -define(["loading","viewManager","skinManager","pluginManager","backdrop","browser","pageJs","appSettings","apphost","connectionManager"],function(loading,viewManager,skinManager,pluginManager,backdrop,browser,page,appSettings,appHost,connectionManager){"use strict";function beginConnectionWizard(){backdrop.clear(),loading.show(),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){handleConnectionResult(result,loading)})}function handleConnectionResult(result,loading){switch(result.State){case MediaBrowser.ConnectionState.SignedIn:loading.hide(),skinManager.loadUserSkin();break;case MediaBrowser.ConnectionState.ServerSignIn:result.ApiClient.getPublicUsers().then(function(users){users.length?embyRouter.showLocalLogin(result.ApiClient,result.Servers[0].Id):embyRouter.showLocalLogin(result.ApiClient,result.Servers[0].Id,!0)});break;case MediaBrowser.ConnectionState.ServerSelection:embyRouter.showSelectServer();break;case MediaBrowser.ConnectionState.ConnectSignIn:embyRouter.showWelcome();break;case MediaBrowser.ConnectionState.ServerUpdateNeeded:require(["alert"],function(alert){alert({text:Globalize.translate("sharedcomponents#ServerUpdateNeeded","https://emby.media"),html:Globalize.translate("sharedcomponents#ServerUpdateNeeded",'https://emby.media')}).then(function(){embyRouter.showSelectServer()})})}}function loadContentUrl(ctx,next,route,request){var url=route.contentPath||route.path;url.indexOf("://")===-1&&(0!==url.indexOf("/")&&(url="/"+url),url=baseUrl()+url),ctx.querystring&&route.enableContentQueryString&&(url+="?"+ctx.querystring),require(["text!"+url],function(html){loadContent(ctx,route,html,request)})}function handleRoute(ctx,next,route){authenticate(ctx,route,function(){initRoute(ctx,next,route)})}function initRoute(ctx,next,route){var onInitComplete=function(controllerFactory){sendRouteToViewManager(ctx,next,route,controllerFactory)};require(route.dependencies||[],function(){route.controller?require([route.controller],onInitComplete):onInitComplete()})}function cancelCurrentLoadRequest(){var currentRequest=currentViewLoadRequest;currentRequest&&(currentRequest.cancel=!0)}function sendRouteToViewManager(ctx,next,route,controllerFactory){if(isDummyBackToHome&&"home"===route.type)return void(isDummyBackToHome=!1);cancelCurrentLoadRequest();var isBackNav=ctx.isBack,currentRequest={url:baseUrl()+ctx.path,transition:route.transition,isBack:isBackNav,state:ctx.state,type:route.type,fullscreen:route.fullscreen,controllerFactory:controllerFactory,options:{supportsThemeMedia:route.supportsThemeMedia||!1,enableMediaControl:route.enableMediaControl!==!1},autoFocus:route.autoFocus};currentViewLoadRequest=currentRequest;var onNewViewNeeded=function(){"string"==typeof route.path?loadContentUrl(ctx,next,route,currentRequest):next()};return isBackNav?void viewManager.tryRestoreView(currentRequest,function(){currentRouteInfo={route:route,path:ctx.path}}).catch(function(result){result&&result.cancelled||onNewViewNeeded()}):void onNewViewNeeded()}function start(options){loading.show(),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){firstConnectionResult=result,loading.hide(),options=options||{},page({click:options.click!==!1,hashbang:options.hashbang!==!1,enableHistory:enableHistory()})})}function enableHistory(){return!browser.xboxOne&&!browser.orsay}function enableNativeHistory(){return page.enableNativeHistory()}function authenticate(ctx,route,callback){var firstResult=firstConnectionResult;if(firstResult&&(firstConnectionResult=null,firstResult.State!==MediaBrowser.ConnectionState.SignedIn&&!route.anonymous))return void handleConnectionResult(firstResult,loading);var apiClient=connectionManager.currentApiClient(),pathname=ctx.pathname.toLowerCase();console.log("embyRouter - processing path request "+pathname);var isCurrentRouteStartup=!currentRouteInfo||currentRouteInfo.route.startup,shouldExitApp=ctx.isBack&&route.isDefaultRoute&&isCurrentRouteStartup;if(!(shouldExitApp||apiClient&&apiClient.isLoggedIn()||route.anonymous))return console.log("embyRouter - route does not allow anonymous access, redirecting to login"),void beginConnectionWizard();if(shouldExitApp){if(appHost.supports("exit"))return void appHost.exit()}else{if(apiClient&&apiClient.isLoggedIn()){if(console.log("embyRouter - user is authenticated"),ctx.isBack&&(route.isDefaultRoute||route.startup)&&!isCurrentRouteStartup)return void handleBackToDefault();if(route.isDefaultRoute)return console.log("embyRouter - loading skin home page"),void skinManager.loadUserSkin();if(route.roles)return void validateRoles(apiClient,route.roles).then(function(){apiClient.ensureWebSocket(),callback()},beginConnectionWizard)}console.log("embyRouter - proceeding to "+pathname),callback()}}function validateRoles(apiClient,roles){return Promise.all(roles.split(",").map(function(role){return validateRole(apiClient,role)}))}function validateRole(apiClient,role){return"admin"===role?apiClient.getCurrentUser().then(function(user){return user.Policy.IsAdministrator?Promise.resolve():Promise.reject()}):Promise.resolve()}function handleBackToDefault(){return!appHost.supports("exitmenu")&&appHost.supports("exit")?void appHost.exit():(isDummyBackToHome=!0,skinManager.loadUserSkin(),void(isHandlingBackToDefault||skinManager.getCurrentSkin().showBackMenu().then(function(){isHandlingBackToDefault=!1})))}function loadContent(ctx,route,html,request){html=Globalize.translateDocument(html,route.dictionary),request.view=html,viewManager.loadView(request),currentRouteInfo={route:route,path:ctx.path},ctx.handled=!0}function getRequestFile(){var path=window.location.pathname||"",index=path.lastIndexOf("/");return path=index!==-1?path.substring(index):"/"+path,path&&"/"!==path||(path="/index.html"),path}function baseUrl(){return baseRoute}function getHandler(route){return function(ctx,next){handleRoute(ctx,next,route)}}function getWindowLocationSearch(win){var currentPath=currentRouteInfo?currentRouteInfo.path||"":"",index=currentPath.indexOf("?"),search="";return index!==-1&&(search=currentPath.substring(index)),search||""}function param(name,url){name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^&#]*)",regex=new RegExp(regexS,"i"),results=regex.exec(url||getWindowLocationSearch());return null==results?"":decodeURIComponent(results[1].replace(/\+/g," "))}function back(){var checkCanGoBack=browser.web0s||browser.orsay;checkCanGoBack?canGoBack()?page.back():appHost.exit():page.back()}function canGoBack(){var curr=current();return!!curr&&("home"!==curr.type&&page.canGoBack())}function show(path,options){0!==path.indexOf("/")&&path.indexOf("://")===-1&&(path="/"+path);var baseRoute=baseUrl();return path=path.replace(baseRoute,""),currentRouteInfo&¤tRouteInfo.path===path&&"home"!==currentRouteInfo.route.type?(loading.hide(),Promise.resolve()):new Promise(function(resolve,reject){resolveOnNextShow=resolve,page.show(path,options)})}function current(){return currentRouteInfo?currentRouteInfo.route:null}function goHome(){var skin=skinManager.getCurrentSkin();if(skin.getHomeRoute){var homePath=skin.getHomeRoute();return show(pluginManager.mapRoute(skin,homePath))}var homeRoute=skin.getRoutes().filter(function(r){return"home"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function getRouteUrl(item,options){return skinManager.getCurrentSkin().getRouteUrl(item,options)}function showItem(item,serverId,options){if("string"==typeof item){var apiClient=serverId?connectionManager.getApiClient(serverId):connectionManager.currentApiClient();apiClient.getItem(apiClient.getCurrentUserId(),item).then(function(item){embyRouter.showItem(item,options)})}else{2===arguments.length&&(options=arguments[1]);var url=embyRouter.getRouteUrl(item,options);embyRouter.show(url,{item:item})}}function setTitle(title){skinManager.getCurrentSkin().setTitle(title)}function showVideoOsd(){var skin=skinManager.getCurrentSkin(),homeRoute=skin.getRoutes().filter(function(r){return"video-osd"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function addRoute(path,newRoute){page(path,getHandler(newRoute)),allRoutes.push(newRoute)}function getRoutes(){return allRoutes}function setTransparency(level){backdropContainer||(backdropContainer=document.querySelector(".backdropContainer")),backgroundContainer||(backgroundContainer=document.querySelector(".backgroundContainer")),"full"===level||2===level?(backdrop.clear(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):"backdrop"===level||1===level?(backdrop.externalBackdrop(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):(backdrop.externalBackdrop(!1),document.documentElement.classList.remove("transparentDocument"),backgroundContainer.classList.remove("backgroundContainer-transparent"),backdropContainer.classList.remove("hide"))}function pushState(state,title,url){state.navigate=!1,page.pushState(state,title,url)}function setBaseRoute(){var baseRoute=window.location.pathname.replace(getRequestFile(),"");baseRoute.lastIndexOf("/")===baseRoute.length-1&&(baseRoute=baseRoute.substring(0,baseRoute.length-1)),console.log("Setting page base to "+baseRoute),page.base(baseRoute)}var currentViewLoadRequest,firstConnectionResult,isHandlingBackToDefault,isDummyBackToHome,embyRouter={showLocalLogin:function(apiClient,serverId,manualLogin){var pageName=manualLogin?"manuallogin":"login";show("/startup/"+pageName+".html?serverid="+serverId)},showSelectServer:function(){show("/startup/selectserver.html")},showWelcome:function(){show("/startup/welcome.html")},showSettings:function(){show("/settings/settings.html")},showSearch:function(){skinManager.getCurrentSkin().search()},showGenre:function(options){skinManager.getCurrentSkin().showGenre(options)},showGuide:function(){skinManager.getCurrentSkin().showGuide()},showLiveTV:function(){skinManager.getCurrentSkin().showLiveTV()},showRecordedTV:function(){skinManager.getCurrentSkin().showRecordedTV()},showFavorites:function(){skinManager.getCurrentSkin().showFavorites()},showNowPlaying:function(){skinManager.getCurrentSkin().showNowPlaying()}},baseRoute=window.location.href.split("?")[0].replace(getRequestFile(),"");baseRoute=baseRoute.split("#")[0],baseRoute.lastIndexOf("/")===baseRoute.length-1&&(baseRoute=baseRoute.substring(0,baseRoute.length-1));var resolveOnNextShow;document.addEventListener("viewshow",function(){var resolve=resolveOnNextShow;resolve&&(resolveOnNextShow=null,resolve())});var currentRouteInfo,backdropContainer,backgroundContainer,allRoutes=[];return setBaseRoute(),embyRouter.addRoute=addRoute,embyRouter.param=param,embyRouter.back=back,embyRouter.show=show,embyRouter.start=start,embyRouter.baseUrl=baseUrl,embyRouter.canGoBack=canGoBack,embyRouter.current=current,embyRouter.beginConnectionWizard=beginConnectionWizard,embyRouter.goHome=goHome,embyRouter.showItem=showItem,embyRouter.setTitle=setTitle,embyRouter.setTransparency=setTransparency,embyRouter.getRoutes=getRoutes,embyRouter.getRouteUrl=getRouteUrl,embyRouter.pushState=pushState,embyRouter.enableNativeHistory=enableNativeHistory,embyRouter.showVideoOsd=showVideoOsd,embyRouter.handleAnchorClick=page.handleAnchorClick,embyRouter.TransparencyLevel={None:0,Backdrop:1,Full:2},embyRouter}); \ No newline at end of file +define(["loading","viewManager","skinManager","pluginManager","backdrop","browser","pageJs","appSettings","apphost","connectionManager"],function(loading,viewManager,skinManager,pluginManager,backdrop,browser,page,appSettings,appHost,connectionManager){"use strict";function beginConnectionWizard(){backdrop.clear(),loading.show(),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){handleConnectionResult(result,loading)})}function handleConnectionResult(result,loading){switch(result.State){case MediaBrowser.ConnectionState.SignedIn:loading.hide(),skinManager.loadUserSkin();break;case MediaBrowser.ConnectionState.ServerSignIn:result.ApiClient.getPublicUsers().then(function(users){users.length?embyRouter.showLocalLogin(result.ApiClient,result.Servers[0].Id):embyRouter.showLocalLogin(result.ApiClient,result.Servers[0].Id,!0)});break;case MediaBrowser.ConnectionState.ServerSelection:embyRouter.showSelectServer();break;case MediaBrowser.ConnectionState.ConnectSignIn:embyRouter.showWelcome();break;case MediaBrowser.ConnectionState.ServerUpdateNeeded:require(["alert"],function(alert){alert({text:Globalize.translate("sharedcomponents#ServerUpdateNeeded","https://emby.media"),html:Globalize.translate("sharedcomponents#ServerUpdateNeeded",'https://emby.media')}).then(function(){embyRouter.showSelectServer()})})}}function loadContentUrl(ctx,next,route,request){var url=route.contentPath||route.path;url.indexOf("://")===-1&&(0!==url.indexOf("/")&&(url="/"+url),url=baseUrl()+url),ctx.querystring&&route.enableContentQueryString&&(url+="?"+ctx.querystring),require(["text!"+url],function(html){loadContent(ctx,route,html,request)})}function handleRoute(ctx,next,route){authenticate(ctx,route,function(){initRoute(ctx,next,route)})}function initRoute(ctx,next,route){var onInitComplete=function(controllerFactory){sendRouteToViewManager(ctx,next,route,controllerFactory)};require(route.dependencies||[],function(){route.controller?require([route.controller],onInitComplete):onInitComplete()})}function cancelCurrentLoadRequest(){var currentRequest=currentViewLoadRequest;currentRequest&&(currentRequest.cancel=!0)}function sendRouteToViewManager(ctx,next,route,controllerFactory){if(isDummyBackToHome&&"home"===route.type)return void(isDummyBackToHome=!1);cancelCurrentLoadRequest();var isBackNav=ctx.isBack,currentRequest={url:baseUrl()+ctx.path,transition:route.transition,isBack:isBackNav,state:ctx.state,type:route.type,fullscreen:route.fullscreen,controllerFactory:controllerFactory,options:{supportsThemeMedia:route.supportsThemeMedia||!1,enableMediaControl:route.enableMediaControl!==!1},autoFocus:route.autoFocus};currentViewLoadRequest=currentRequest;var onNewViewNeeded=function(){"string"==typeof route.path?loadContentUrl(ctx,next,route,currentRequest):next()};return isBackNav?void viewManager.tryRestoreView(currentRequest,function(){currentRouteInfo={route:route,path:ctx.path}}).catch(function(result){result&&result.cancelled||onNewViewNeeded()}):void onNewViewNeeded()}function start(options){loading.show(),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){firstConnectionResult=result,loading.hide(),options=options||{},page({click:options.click!==!1,hashbang:options.hashbang!==!1,enableHistory:enableHistory()})})}function enableHistory(){return!browser.xboxOne&&!browser.orsay}function enableNativeHistory(){return page.enableNativeHistory()}function authenticate(ctx,route,callback){var firstResult=firstConnectionResult;if(firstResult&&(firstConnectionResult=null,firstResult.State!==MediaBrowser.ConnectionState.SignedIn&&!route.anonymous))return void handleConnectionResult(firstResult,loading);var apiClient=connectionManager.currentApiClient(),pathname=ctx.pathname.toLowerCase();console.log("embyRouter - processing path request "+pathname);var isCurrentRouteStartup=!currentRouteInfo||currentRouteInfo.route.startup,shouldExitApp=ctx.isBack&&route.isDefaultRoute&&isCurrentRouteStartup;if(!(shouldExitApp||apiClient&&apiClient.isLoggedIn()||route.anonymous))return console.log("embyRouter - route does not allow anonymous access, redirecting to login"),void beginConnectionWizard();if(shouldExitApp){if(appHost.supports("exit"))return void appHost.exit()}else{if(apiClient&&apiClient.isLoggedIn()){if(console.log("embyRouter - user is authenticated"),ctx.isBack&&(route.isDefaultRoute||route.startup)&&!isCurrentRouteStartup)return void handleBackToDefault();if(route.isDefaultRoute)return console.log("embyRouter - loading skin home page"),void skinManager.loadUserSkin();if(route.roles)return void validateRoles(apiClient,route.roles).then(function(){apiClient.ensureWebSocket(),callback()},beginConnectionWizard)}console.log("embyRouter - proceeding to "+pathname),callback()}}function validateRoles(apiClient,roles){return Promise.all(roles.split(",").map(function(role){return validateRole(apiClient,role)}))}function validateRole(apiClient,role){return"admin"===role?apiClient.getCurrentUser().then(function(user){return user.Policy.IsAdministrator?Promise.resolve():Promise.reject()}):Promise.resolve()}function handleBackToDefault(){return!appHost.supports("exitmenu")&&appHost.supports("exit")?void appHost.exit():(isDummyBackToHome=!0,skinManager.loadUserSkin(),void(isHandlingBackToDefault||skinManager.getCurrentSkin().showBackMenu().then(function(){isHandlingBackToDefault=!1})))}function loadContent(ctx,route,html,request){html=Globalize.translateDocument(html,route.dictionary),request.view=html,viewManager.loadView(request),currentRouteInfo={route:route,path:ctx.path},ctx.handled=!0}function getRequestFile(){var path=window.location.pathname||"",index=path.lastIndexOf("/");return path=index!==-1?path.substring(index):"/"+path,path&&"/"!==path||(path="/index.html"),path}function baseUrl(){return baseRoute}function getHandler(route){return function(ctx,next){handleRoute(ctx,next,route)}}function getWindowLocationSearch(win){var currentPath=currentRouteInfo?currentRouteInfo.path||"":"",index=currentPath.indexOf("?"),search="";return index!==-1&&(search=currentPath.substring(index)),search||""}function param(name,url){name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^&#]*)",regex=new RegExp(regexS,"i"),results=regex.exec(url||getWindowLocationSearch());return null==results?"":decodeURIComponent(results[1].replace(/\+/g," "))}function back(){var checkCanGoBack=browser.web0s||browser.orsay;checkCanGoBack?canGoBack()?page.back():appHost.exit():page.back()}function canGoBack(){var curr=current();return!!curr&&("home"!==curr.type&&page.canGoBack())}function show(path,options){0!==path.indexOf("/")&&path.indexOf("://")===-1&&(path="/"+path);var baseRoute=baseUrl();return path=path.replace(baseRoute,""),currentRouteInfo&¤tRouteInfo.path===path&&"home"!==currentRouteInfo.route.type?(loading.hide(),Promise.resolve()):new Promise(function(resolve,reject){resolveOnNextShow=resolve,page.show(path,options)})}function current(){return currentRouteInfo?currentRouteInfo.route:null}function goHome(){var skin=skinManager.getCurrentSkin();if(skin.getHomeRoute){var homePath=skin.getHomeRoute();return show(pluginManager.mapRoute(skin,homePath))}var homeRoute=skin.getRoutes().filter(function(r){return"home"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function getRouteUrl(item,options){return"downloads"===item?"offline/offline.html":"managedownloads"===item?"offline/managedownloads.html":skinManager.getCurrentSkin().getRouteUrl(item,options)}function showItem(item,serverId,options){if("string"==typeof item){var apiClient=serverId?connectionManager.getApiClient(serverId):connectionManager.currentApiClient();apiClient.getItem(apiClient.getCurrentUserId(),item).then(function(item){embyRouter.showItem(item,options)})}else{2===arguments.length&&(options=arguments[1]);var url=embyRouter.getRouteUrl(item,options);embyRouter.show(url,{item:item})}}function setTitle(title){skinManager.getCurrentSkin().setTitle(title)}function showVideoOsd(){var skin=skinManager.getCurrentSkin(),homeRoute=skin.getRoutes().filter(function(r){return"video-osd"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function addRoute(path,newRoute){page(path,getHandler(newRoute)),allRoutes.push(newRoute)}function getRoutes(){return allRoutes}function setTransparency(level){backdropContainer||(backdropContainer=document.querySelector(".backdropContainer")),backgroundContainer||(backgroundContainer=document.querySelector(".backgroundContainer")),"full"===level||2===level?(backdrop.clear(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):"backdrop"===level||1===level?(backdrop.externalBackdrop(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):(backdrop.externalBackdrop(!1),document.documentElement.classList.remove("transparentDocument"),backgroundContainer.classList.remove("backgroundContainer-transparent"),backdropContainer.classList.remove("hide"))}function pushState(state,title,url){state.navigate=!1,page.pushState(state,title,url)}function setBaseRoute(){var baseRoute=window.location.pathname.replace(getRequestFile(),"");baseRoute.lastIndexOf("/")===baseRoute.length-1&&(baseRoute=baseRoute.substring(0,baseRoute.length-1)),console.log("Setting page base to "+baseRoute),page.base(baseRoute)}var currentViewLoadRequest,firstConnectionResult,isHandlingBackToDefault,isDummyBackToHome,embyRouter={showLocalLogin:function(apiClient,serverId,manualLogin){var pageName=manualLogin?"manuallogin":"login";show("/startup/"+pageName+".html?serverid="+serverId)},showSelectServer:function(){show("/startup/selectserver.html")},showWelcome:function(){show("/startup/welcome.html")},showSettings:function(){show("/settings/settings.html")},showSearch:function(){skinManager.getCurrentSkin().search()},showGenre:function(options){skinManager.getCurrentSkin().showGenre(options)},showGuide:function(){skinManager.getCurrentSkin().showGuide()},showLiveTV:function(){skinManager.getCurrentSkin().showLiveTV()},showRecordedTV:function(){skinManager.getCurrentSkin().showRecordedTV()},showFavorites:function(){skinManager.getCurrentSkin().showFavorites()},showNowPlaying:function(){skinManager.getCurrentSkin().showNowPlaying()}},baseRoute=window.location.href.split("?")[0].replace(getRequestFile(),"");baseRoute=baseRoute.split("#")[0],baseRoute.lastIndexOf("/")===baseRoute.length-1&&(baseRoute=baseRoute.substring(0,baseRoute.length-1));var resolveOnNextShow;document.addEventListener("viewshow",function(){var resolve=resolveOnNextShow;resolve&&(resolveOnNextShow=null,resolve())});var currentRouteInfo,backdropContainer,backgroundContainer,allRoutes=[];return setBaseRoute(),embyRouter.addRoute=addRoute,embyRouter.param=param,embyRouter.back=back,embyRouter.show=show,embyRouter.start=start,embyRouter.baseUrl=baseUrl,embyRouter.canGoBack=canGoBack,embyRouter.current=current,embyRouter.beginConnectionWizard=beginConnectionWizard,embyRouter.goHome=goHome,embyRouter.showItem=showItem,embyRouter.setTitle=setTitle,embyRouter.setTransparency=setTransparency,embyRouter.getRoutes=getRoutes,embyRouter.getRouteUrl=getRouteUrl,embyRouter.pushState=pushState,embyRouter.enableNativeHistory=enableNativeHistory,embyRouter.showVideoOsd=showVideoOsd,embyRouter.handleAnchorClick=page.handleAnchorClick,embyRouter.TransparencyLevel={None:0,Backdrop:1,Full:2},embyRouter}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/de.json b/dashboard-ui/bower_components/emby-webcomponents/strings/de.json index 3f8265a3ab..27cb1372d5 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/de.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/de.json @@ -514,9 +514,9 @@ "DropShadow": "Schlagschatten", "SmallCaps": "Kapit\u00e4lchen", "SubtitleAppearanceSettingsDisclaimer": "Diese Einstellungen werden nicht auf grafische Untertitel (PGS, DVD, etc.) oder Untertitel mit eingebettetem Style-Elementen (ASS\/SSA) angewendet.", - "LabelBurnSubtitles": "Burn subtitles:", - "OnlyImageFormats": "Only image formats (VOBSUB, PGS, SUB\/IDX, etc.)", + "LabelBurnSubtitles": "Untertitel einbrennen:", + "OnlyImageFormats": "Nur Bildformate (VOBSUB, PGS, SUB\/IDX, etc.)", "Normal": "Normal", - "BurnSubtitlesHelp": "Determines if the server should burn in subtitles when converting video depending on the subtitles format. Avoiding burning in subtitles will improve server performance. Select Auto to burn image based formats (e.g. VOBSUB, PGS, SUB\/IDX, etc.) as well as certain ASS\/SSA subtitles", - "AllComplexFormats": "All complex formats (ASS, SSA, VOBSUB, PGS, SUB\/IDX, etc.)" + "BurnSubtitlesHelp": "Legt fest, ob der Server die Untertitel basierend auf deren Format einbrennen soll w\u00e4hrend der Videokonvertierung. Die Vermeidung des Einbrennen von Untertiteln verbessert die Serverperformance. W\u00e4hle Auto, um Bildfomate (z.B. VOBSUB, PGS, SUB\/IDX, etc.) sowie bestimmte ASS\/SSA-Untertitel einbrennen zu lassen.", + "AllComplexFormats": "Alle komplexen Formate (ASS, SSA, VOBSUB, PGS, SUB\/IDX, etc.)" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/es-mx.json b/dashboard-ui/bower_components/emby-webcomponents/strings/es-mx.json index 4c77a36ebf..d3a67a22d0 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/es-mx.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/es-mx.json @@ -514,9 +514,9 @@ "DropShadow": "Mostrar sombra", "SmallCaps": "May\u00fasculas peque\u00f1as", "SubtitleAppearanceSettingsDisclaimer": "Estas configuraciones no se aplicaran a subtitulos gr\u00e1ficos (PGS, DVD, etc.) o a subtitulos que tienen sus propias fuentes embebidas (ASS\/SSA).", - "LabelBurnSubtitles": "Burn subtitles:", - "OnlyImageFormats": "Only image formats (VOBSUB, PGS, SUB\/IDX, etc.)", + "LabelBurnSubtitles": "Subtitulos quemados:", + "OnlyImageFormats": "Solo formato de imagen (VOBSUB, PGS, SUB\/IDX, etc.)", "Normal": "Normal", - "BurnSubtitlesHelp": "Determines if the server should burn in subtitles when converting video depending on the subtitles format. Avoiding burning in subtitles will improve server performance. Select Auto to burn image based formats (e.g. VOBSUB, PGS, SUB\/IDX, etc.) as well as certain ASS\/SSA subtitles", - "AllComplexFormats": "All complex formats (ASS, SSA, VOBSUB, PGS, SUB\/IDX, etc.)" + "BurnSubtitlesHelp": "Determina si el servidor deber\u00eda quemar los subtitulos al convertir el video dependiendo en el formato de los subtitulos. Evitar los subtitulos quemados mejorara el rendimiento del servidor. Elija \"Auto\" para quemar los formatos basados en im\u00e1genes (por ejemplo VOBSUB, PGS, SUB\/IDX, etc.) as\u00ed como ciertos subtitulos ASS\/SSA", + "AllComplexFormats": "Todos los subtitulos complejos (ASS, SSA, VOBSUB, PGS, SUB\/IDX, etc.)" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json b/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json index 4c60fccf16..9774b892d8 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json @@ -514,9 +514,9 @@ "DropShadow": "Ombre port\u00e9e", "SmallCaps": "Minuscule", "SubtitleAppearanceSettingsDisclaimer": "Ces param\u00e8tres ne s'appliqueront pas aux sous-titres graphiques (PGS, DVD, etc.) ou aux sous-titres qui ont leurs propres styles incorpor\u00e9s (ASS \/ SSA).", - "LabelBurnSubtitles": "Burn subtitles:", - "OnlyImageFormats": "Only image formats (VOBSUB, PGS, SUB\/IDX, etc.)", + "LabelBurnSubtitles": "Graver les sous-titres:", + "OnlyImageFormats": "Seulement les formats image (VOBSUB, PGS, SUB \/ IDX, etc.)", "Normal": "Normal", - "BurnSubtitlesHelp": "Determines if the server should burn in subtitles when converting video depending on the subtitles format. Avoiding burning in subtitles will improve server performance. Select Auto to burn image based formats (e.g. VOBSUB, PGS, SUB\/IDX, etc.) as well as certain ASS\/SSA subtitles", - "AllComplexFormats": "All complex formats (ASS, SSA, VOBSUB, PGS, SUB\/IDX, etc.)" + "BurnSubtitlesHelp": "D\u00e9termine si le serveur doit graver les sous-titres lors de la conversion vid\u00e9o en fonction du format des sous-titres. \u00c9viter la gravure des sous-titres am\u00e9liorera les performances du serveur. S\u00e9lectionnez Auto pour graver les formats bas\u00e9s sur l'image (par exemple, VOBSUB, PGS, SUB \/ IDX, etc.) ainsi que certains sous-titres ASS \/ SSA", + "AllComplexFormats": "Tous les formats complexes (ASS, SSA, VOBSUB, PGS, SUB \/ IDX, etc.)" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/it.json b/dashboard-ui/bower_components/emby-webcomponents/strings/it.json index c25a6040f4..40a11df78b 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/it.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/it.json @@ -514,9 +514,9 @@ "DropShadow": "Ombreggiatura", "SmallCaps": "Maiuscoletto", "SubtitleAppearanceSettingsDisclaimer": "Queste impostazioni non si applicano a sottotitoli grafici (PGS, DVD, ecc.), o sottotitoli che hanno i propri stili incorporati (ASS \/ SSA).", - "LabelBurnSubtitles": "Burn subtitles:", - "OnlyImageFormats": "Only image formats (VOBSUB, PGS, SUB\/IDX, etc.)", - "Normal": "Normal", - "BurnSubtitlesHelp": "Determines if the server should burn in subtitles when converting video depending on the subtitles format. Avoiding burning in subtitles will improve server performance. Select Auto to burn image based formats (e.g. VOBSUB, PGS, SUB\/IDX, etc.) as well as certain ASS\/SSA subtitles", - "AllComplexFormats": "All complex formats (ASS, SSA, VOBSUB, PGS, SUB\/IDX, etc.)" + "LabelBurnSubtitles": "Applica sottotitoli:", + "OnlyImageFormats": "Solo formati immagine (VOBSUB, PGS, SUB \/ IDX, ecc.)", + "Normal": "Normale", + "BurnSubtitlesHelp": "Determina se il server deve applicare i sottotitoli quando si converte i video in base al formato dei sottotitoli. Evitando di applicare i sottotitoli migliorer\u00e0 le prestazioni del server. Selezionare Auto per applicare formati basati sull'immagine (ad esempio VOBSUB, PGS, SUB \/ IDX, ecc.) cos\u00ec come alcuni sottotitoli ASS \/ SSA", + "AllComplexFormats": "Tutti i formati complessi (ASS, SSA, VOBSUB, PGS, SUB \/ IDX, ecc.)" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json b/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json index 139769e755..0f6cea4174 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json @@ -38,7 +38,7 @@ "HeaderCloudSync": "\u0411\u04b1\u043b\u0442 \u04af\u043d\u0434\u0435\u0441\u0442\u0456\u0440\u0443", "HeaderDownloadedMedia": "\u0416\u04af\u043a\u0442\u0435\u043b\u0433\u0435\u043d \u0442\u0430\u0441\u044b\u0493\u044b\u0448\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440", "Downloads": "\u0416\u04af\u043a\u0442\u0435\u0443\u043b\u0435\u0440", - "HeaderMyDownloads": "My Downloads", + "HeaderMyDownloads": "\u041c\u0435\u043d\u0456\u04a3 \u0436\u04af\u043a\u0442\u0435\u0443\u043b\u0435\u0440\u0456\u043c", "HeaderOfflineDownloads": "\u0414\u0435\u0440\u0431\u0435\u0441 \u0442\u0430\u0441\u044b\u0493\u044b\u0448\u0434\u0435\u0440\u0435\u043a", "HeaderOfflineDownloadsDescription": "\u041e\u04a3\u0430\u0439 \u0434\u0435\u0440\u0431\u0435\u0441 \u049b\u043e\u043b\u0434\u0430\u043d\u0443 \u04af\u0448\u0456\u043d \u049b\u04b1\u0440\u044b\u043b\u0493\u044b\u043b\u0430\u0440\u044b\u04a3\u044b\u0437\u0493\u0430 \u0442\u0430\u0441\u044b\u0493\u044b\u0448\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0434\u0456 \u0436\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u044b\u04a3\u044b\u0437.", "CloudSyncFeatureDescription": "\u0421\u0430\u049b\u0442\u044b\u049b \u043a\u04e9\u0448\u0456\u0440\u043c\u0435\u043d\u0456, \u043c\u04b1\u0440\u0430\u0493\u0430\u0442\u0442\u0430\u0443\u0434\u044b \u0436\u04d9\u043d\u0435 \u0442\u04af\u0440\u043b\u0435\u043d\u0434\u0456\u0440\u0443\u0434\u0456 \u0436\u0435\u04a3\u0456\u043b\u0434\u0435\u0442\u0443 \u04af\u0448\u0456\u043d \u0442\u0430\u0441\u044b\u0493\u044b\u0448 \u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0434\u0456 \u0431\u04b1\u043b\u0442\u043f\u0435\u043d \u04af\u043d\u0434\u0435\u0441\u0442\u0456\u0440\u0456\u04a3\u0456\u0437.", @@ -167,8 +167,8 @@ "LabelOriginalAspectRatio": "\u0411\u0430\u0441\u0442\u0430\u043f\u049b\u044b \u043f\u0456\u0448\u0456\u043c\u0434\u0456\u043a \u0430\u0440\u0430\u049b\u0430\u0442\u044b\u043d\u0430\u0441\u044b:", "LabelPlayers": "\u041e\u0439\u044b\u043d\u0448\u044b\u043b\u0430\u0440:", "Label3DFormat": "3D \u043f\u0456\u0448\u0456\u043c\u0456:", - "FormatValue": "Format: {0}", - "DownloadsValue": "Downloads: {0}", + "FormatValue": "\u041f\u0456\u0448\u0456\u043c: {0}", + "DownloadsValue": "\u0416\u04af\u043a\u0442\u0435\u0443\u043b\u0435\u0440: {0}", "PerfectMatch": "Perfect match", "HeaderAlternateEpisodeNumbers": "\u0411\u0430\u043b\u0430\u043c\u0430\u043b\u044b \u0431\u04e9\u043b\u0456\u043c \u043d\u04e9\u043c\u0456\u0440\u043b\u0435\u0440\u0456", "LabelDvdSeasonNumber": "DVD \u043c\u0430\u0443\u0441\u044b\u043c \u043d\u04e9\u043c\u0456\u0440\u0456", @@ -516,7 +516,7 @@ "SubtitleAppearanceSettingsDisclaimer": "These settings will not apply to graphical subtitles (PGS, DVD, etc), or subtitles that have their own styles embedded (ASS\/SSA).", "LabelBurnSubtitles": "Burn subtitles:", "OnlyImageFormats": "Only image formats (VOBSUB, PGS, SUB\/IDX, etc.)", - "Normal": "Normal", + "Normal": "\u041a\u04d9\u0434\u0456\u043c\u0433\u0456", "BurnSubtitlesHelp": "Determines if the server should burn in subtitles when converting video depending on the subtitles format. Avoiding burning in subtitles will improve server performance. Select Auto to burn image based formats (e.g. VOBSUB, PGS, SUB\/IDX, etc.) as well as certain ASS\/SSA subtitles", "AllComplexFormats": "All complex formats (ASS, SSA, VOBSUB, PGS, SUB\/IDX, etc.)" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json b/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json index 14d487982f..9ab076d4d2 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json @@ -482,41 +482,41 @@ "MessageEmbyAccountAdded": "\u0423\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c Emby \u0431\u044b\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f", "MessagePendingEmbyAccountAdded": "\u0423\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c Emby \u0431\u044b\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u041f\u0438\u0441\u044c\u043c\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0443 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438. \u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c, \u0449\u0451\u043b\u043a\u043d\u0443\u0432 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0432 \u043f\u0438\u0441\u044c\u043c\u0435.", "HeaderEmbyAccountAdded": "\u0423\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c Emby \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430", - "LabelSubtitlePlaybackMode": "Subtitle mode:", + "LabelSubtitlePlaybackMode": "\u0420\u0435\u0436\u0438\u043c \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432:", "ErrorDeletingItem": "\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0441 Emby Server. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u0443 Emby Server \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043c\u0435\u0434\u0438\u0430\u043f\u0430\u043f\u043a\u0443 \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443.", - "NoSubtitles": "No subtitles", - "Default": "Default", - "Smart": "Smart", - "Small": "Small", - "Medium": "Medium", - "Large": "Large", - "ExtraLarge": "Extra large", - "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.", + "NoSubtitles": "\u0411\u0435\u0437 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432", + "Default": "\u0423\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u0435", + "Smart": "\u0423\u043c\u043d\u044b\u0439", + "Small": "\u041c\u0435\u043b\u043a\u0438\u0439", + "Medium": "\u0421\u0440\u0435\u0434\u043d\u0438\u0439", + "Large": "\u041a\u0440\u0443\u043f\u043d\u044b\u0439", + "ExtraLarge": "\u041e\u0447\u0435\u043d\u044c \u043a\u0440\u0443\u043f\u043d\u044b\u0439", + "OnlyForcedSubtitles": "\u0422\u043e\u043b\u044c\u043a\u043e \u0444\u043e\u0440\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b", + "AlwaysPlaySubtitles": "\u0412\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0441 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0430\u043c\u0438", + "DefaultSubtitlesHelp": "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0444\u043b\u0430\u0433\u0430\u043c\u0438 \"\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\" \u0438 \"\u0424\u043e\u0440\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435\" \u0432\u043e \u0432\u043d\u0435\u0434\u0440\u0451\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445. \u042f\u0437\u044b\u043a\u043e\u0432\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043e\u043f\u0446\u0438\u0439.", + "SmartSubtitlesHelp": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u044b, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u044f\u0437\u044b\u043a\u0430, \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f, \u0435\u0441\u043b\u0438 \u0430\u0443\u0434\u0438\u043e \u043d\u0430 \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u043e\u043c \u044f\u0437\u044b\u043a\u0435.", "HeaderSubtitleSettings": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432", - "HeaderSubtitleAppearance": "Subtitle Appearance", - "OnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.", - "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:", - "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).", - "LabelBurnSubtitles": "Burn subtitles:", - "OnlyImageFormats": "Only image formats (VOBSUB, PGS, SUB\/IDX, etc.)", - "Normal": "Normal", - "BurnSubtitlesHelp": "Determines if the server should burn in subtitles when converting video depending on the subtitles format. Avoiding burning in subtitles will improve server performance. Select Auto to burn image based formats (e.g. VOBSUB, PGS, SUB\/IDX, etc.) as well as certain ASS\/SSA subtitles", - "AllComplexFormats": "All complex formats (ASS, SSA, VOBSUB, PGS, SUB\/IDX, etc.)" + "HeaderSubtitleAppearance": "\u041e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432", + "OnlyForcedSubtitlesHelp": "\u0417\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0431\u0443\u0434\u0443\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u043e\u0440\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b.", + "AlwaysPlaySubtitlesHelp": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u044b, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u044f\u0437\u044b\u043a\u0430, \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u044f\u0437\u044b\u043a\u0430 \u0430\u0443\u0434\u0438\u043e.", + "NoSubtitlesHelp": "\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f. \u041e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u0441\u0435 \u0435\u0449\u0451 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.", + "LabelPreferredSubtitleLanguage": "\u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u044b\u0439 \u044f\u0437\u044b\u043a \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u043e\u0433\u043e:", + "LabelTextSize": "\u0420\u0430\u0437\u043c\u0435\u0440 \u0442\u0435\u043a\u0441\u0442\u0430:", + "TheseSettingsAffectSubtitlesOnThisDevice": "\u042d\u0442\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u043b\u0438\u044f\u044e\u0442 \u043d\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b \u043d\u0430 \u0434\u0430\u043d\u043d\u043e\u043c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435", + "LabelDropShadow": "\u041e\u043a\u0430\u043d\u0442\u043e\u0432\u043a\u0430:", + "LabelTextBackgroundColor": "\u0426\u0432\u0435\u0442 \u0444\u043e\u043d\u0430 \u0442\u0435\u043a\u0441\u0442\u0430:", + "LabelWindowBackgroundColor": "\u0426\u0432\u0435\u0442 \u0444\u043e\u043d\u0430:", + "LabelFont": "\u0428\u0440\u0438\u0444\u0442:", + "LabelTextColor": "\u0426\u0432\u0435\u0442 \u0442\u0435\u043a\u0441\u0442\u0430:", + "Raised": "\u0412\u044b\u043f\u0443\u043a\u043b\u0430\u044f", + "Depressed": "\u0412\u0434\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f", + "Uniform": "\u041e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u0430\u044f", + "DropShadow": "\u0422\u0435\u043d\u0435\u0432\u0430\u044f", + "SmallCaps": "\u041c\u0430\u043b\u044b\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u043d\u044b\u0435", + "SubtitleAppearanceSettingsDisclaimer": "\u0414\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c\u044b \u043a \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0430\u043c (PGS, DVD \u0438 \u0442.\u0434.) \u0438\u043b\u0438 \u043a \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u0432\u043d\u0435\u0434\u0440\u0451\u043d\u043d\u044b\u0435 \u0441\u0432\u043e\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u0442\u0438\u043b\u0438 (ASS\/SSA).", + "LabelBurnSubtitles": "\u0417\u0430\u043f\u0438\u0441\u044c \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432:", + "OnlyImageFormats": "\u0422\u043e\u043b\u044c\u043a\u043e \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b (VOBSUB, PGS, SUB\/IDX \u0438 \u0442.\u0434.)", + "Normal": "\u041e\u0431\u044b\u0447\u043d\u044b\u0439", + "BurnSubtitlesHelp": "\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f, \u0434\u043e\u043b\u0436\u0435\u043d \u043b\u0438 \u0441\u0435\u0440\u0432\u0435\u0440 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b \u043f\u0440\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u0438\u0434\u0435\u043e \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432. \u0418\u0437\u0431\u0435\u0433\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432 \u0443\u043b\u0443\u0447\u0448\u0438\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u00ab\u0410\u0432\u0442\u043e\u00bb \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 (\u043d\u043f\u0440, VOBSUB, PGS, SUB\/IDX \u0438 \u0442.\u0434.), \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445\u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432 ASS\/SSA.", + "AllComplexFormats": "\u0412\u0441\u0435 \u043a\u043e\u043c\u043b\u0435\u043a\u0441\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b (ASS, SSA, VOBSUB, PGS, SUB\/IDX \u0438 \u0442.\u0434.)" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/subtitlesettings/subtitleappearancehelper.js b/dashboard-ui/bower_components/emby-webcomponents/subtitlesettings/subtitleappearancehelper.js index 768e3ed5b5..b0e2e1c59a 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/subtitlesettings/subtitleappearancehelper.js +++ b/dashboard-ui/bower_components/emby-webcomponents/subtitlesettings/subtitleappearancehelper.js @@ -1 +1 @@ -define([],function(){"use strict";function getTextStyles(settings,isCue){var list=[];if(isCue)switch(settings.textSize||""){case"small":list.push({name:"font-size",value:".7em"});break;case"large":list.push({name:"font-size",value:"1.3em"});break;case"larger":list.push({name:"font-size",value:"1.72em"});break;case"extralarge":list.push({name:"font-size",value:"2em"});break;default:case"medium":}else switch(settings.textSize||""){case"small":list.push({name:"font-size",value:"inherit"});break;case"larger":list.push({name:"font-size",value:"2em"});break;case"extralarge":list.push({name:"font-size",value:"2.2em"});break;case"large":list.push({name:"font-size",value:"1.72em"});break;default:case"medium":list.push({name:"font-size",value:"1.36em"})}switch(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:case"dropshadow":list.push({name:"text-shadow",value:"#000000 0px 0px 7px"})}var background=settings.textBackground||"transparent";background&&list.push({name:"background-color",value:settings.textBackground});var textColor=settings.textColor||"#ffffff";switch(textColor&&list.push({name:"color",value:textColor}),settings.font||""){case"typewriter":list.push({name:"font-family",value:'"Courier New",monospace'}),list.push({name:"font-variant",value:"none"});break;case"print":list.push({name:"font-family",value:"Georgia,Times New Roman,Arial,Helvetica,serif"}),list.push({name:"font-variant",value:"none"});break;case"console":list.push({name:"font-family",value:"Consolas,Lucida Console,Menlo,Monaco,Arial,Helvetica,monospace"}),list.push({name:"font-variant",value:"none"});break;case"cursive":list.push({name:"font-family",value:"Lucida Handwriting,Brush Script MT,Segoe Script,Arial,Helvetica"}),list.push({name:"font-variant",value:"none"});break;case"casual":list.push({name:"font-family",value:"Gabriola,Segoe Print,Comic Sans MS,Chalkboard,Arial,Helvetica,cursive"}),list.push({name:"font-variant",value:"none"});break;case"smallcaps":list.push({name:"font-family",value:"Copperplate Gothic,Copperplate Gothic Bold,Copperplate,Arial,Helvetica"}),list.push({name:"font-variant",value:"small-caps"});break;default:list.push({name:"font-family",value:"inherit"}),list.push({name:"font-variant",value:"none"})}return list}function getWindowStyles(settings){return[]}function getStyles(settings,isCue){return{text:getTextStyles(settings,isCue),window:getWindowStyles(settings)}}function applyStyleList(styles,elem){for(var i=0,length=styles.length;i"+culture.DisplayName+""}select.innerHTML=html}function getSubtitleAppearanceObject(context){var appearanceSettings={};return appearanceSettings.textSize=context.querySelector("#selectTextSize").value,appearanceSettings.dropShadow=context.querySelector("#selectDropShadow").value,appearanceSettings.font=context.querySelector("#selectFont").value,appearanceSettings.textBackground=context.querySelector("#inputTextBackground").value,appearanceSettings.textColor=context.querySelector("#inputTextColor").value,appearanceSettings}function loadForm(context,user,userSettings,appearanceSettings,apiClient){apiClient.getCultures().then(function(allCultures){var selectSubtitleLanguage=context.querySelector("#selectSubtitleLanguage");populateLanguages(selectSubtitleLanguage,allCultures),selectSubtitleLanguage.value=user.Configuration.SubtitleLanguagePreference||"",context.querySelector("#selectSubtitlePlaybackMode").value=user.Configuration.SubtitleMode||"",context.querySelector("#selectSubtitlePlaybackMode").dispatchEvent(new CustomEvent("change",{})),context.querySelector("#selectTextSize").value=appearanceSettings.textSize||"",context.querySelector("#selectDropShadow").value=appearanceSettings.dropShadow||"",context.querySelector("#inputTextBackground").value=appearanceSettings.textBackground||"transparent",context.querySelector("#inputTextColor").value=appearanceSettings.textColor||"#ffffff",context.querySelector("#selectFont").value=appearanceSettings.font||"",context.querySelector("#selectSubtitleBurnIn").value=appSettings.get("subtitleburnin")||"",onAppearanceFieldChange({target:context.querySelector("#selectTextSize")}),loading.hide()})}function refreshGlobalUserSettings(userSettingsInstance){require(["userSettings"],function(userSettings){userSettings.importFrom(userSettingsInstance)})}function saveUser(context,user,userSettingsInstance,appearanceKey,apiClient){var appearanceSettings=userSettingsInstance.getSubtitleAppearanceSettings(appearanceKey);return appearanceSettings=Object.assign(appearanceSettings,getSubtitleAppearanceObject(context)),userSettingsInstance.setSubtitleAppearanceSettings(appearanceKey,appearanceSettings),user.Id===apiClient.getCurrentUserId()&&refreshGlobalUserSettings(userSettingsInstance),user.Configuration.SubtitleLanguagePreference=context.querySelector("#selectSubtitleLanguage").value,user.Configuration.SubtitleMode=context.querySelector("#selectSubtitlePlaybackMode").value,apiClient.updateUserConfiguration(user.Id,user.Configuration)}function save(instance,context,userId,userSettings,apiClient,enableSaveConfirmation){loading.show(),appSettings.set("subtitleburnin",context.querySelector("#selectSubtitleBurnIn").value),apiClient.getUser(userId).then(function(user){saveUser(context,user,userSettings,instance.appearanceKey,apiClient).then(function(){loading.hide(),enableSaveConfirmation&&require(["toast"],function(toast){toast(globalize.translate("sharedcomponents#SettingsSaved"))}),events.trigger(instance,"saved")},function(){loading.hide()})})}function onSubmit(e){var self=this,apiClient=connectionManager.getApiClient(self.options.serverId),userId=self.options.userId,userSettings=self.options.userSettings;return userSettings.setUserInfo(userId,apiClient).then(function(){var enableSaveConfirmation=self.options.enableSaveConfirmation;save(self,self.options.element,userId,userSettings,apiClient,enableSaveConfirmation)}),e&&e.preventDefault(),!1}function onSubtitleModeChange(e){for(var view=dom.parentWithClass(e.target,"subtitlesettings"),subtitlesHelp=view.querySelectorAll(".subtitlesHelp"),i=0,length=subtitlesHelp.length;i"+culture.DisplayName+""}select.innerHTML=html}function getSubtitleAppearanceObject(context){var appearanceSettings={};return appearanceSettings.textSize=context.querySelector("#selectTextSize").value,appearanceSettings.dropShadow=context.querySelector("#selectDropShadow").value,appearanceSettings.font=context.querySelector("#selectFont").value,appearanceSettings.textBackground=context.querySelector("#inputTextBackground").value,appearanceSettings.textColor=context.querySelector("#inputTextColor").value,appearanceSettings}function loadForm(context,user,userSettings,appearanceSettings,apiClient){apiClient.getCultures().then(function(allCultures){var selectSubtitleLanguage=context.querySelector("#selectSubtitleLanguage");populateLanguages(selectSubtitleLanguage,allCultures),selectSubtitleLanguage.value=user.Configuration.SubtitleLanguagePreference||"",context.querySelector("#selectSubtitlePlaybackMode").value=user.Configuration.SubtitleMode||"",context.querySelector("#selectSubtitlePlaybackMode").dispatchEvent(new CustomEvent("change",{})),context.querySelector("#selectTextSize").value=appearanceSettings.textSize||"",context.querySelector("#selectDropShadow").value=appearanceSettings.dropShadow||"",context.querySelector("#inputTextBackground").value=appearanceSettings.textBackground||"transparent",context.querySelector("#inputTextColor").value=appearanceSettings.textColor||"#ffffff",context.querySelector("#selectFont").value=appearanceSettings.font||"",context.querySelector("#selectSubtitleBurnIn").value=appSettings.get("subtitleburnin")||"",onAppearanceFieldChange({target:context.querySelector("#selectTextSize")}),loading.hide()})}function refreshGlobalUserSettings(userSettingsInstance){require(["userSettings"],function(userSettings){userSettings.importFrom(userSettingsInstance)})}function saveUser(context,user,userSettingsInstance,appearanceKey,apiClient){var appearanceSettings=userSettingsInstance.getSubtitleAppearanceSettings(appearanceKey);return appearanceSettings=Object.assign(appearanceSettings,getSubtitleAppearanceObject(context)),userSettingsInstance.setSubtitleAppearanceSettings(appearanceSettings,appearanceKey),user.Id===apiClient.getCurrentUserId()&&refreshGlobalUserSettings(userSettingsInstance),user.Configuration.SubtitleLanguagePreference=context.querySelector("#selectSubtitleLanguage").value,user.Configuration.SubtitleMode=context.querySelector("#selectSubtitlePlaybackMode").value,apiClient.updateUserConfiguration(user.Id,user.Configuration)}function save(instance,context,userId,userSettings,apiClient,enableSaveConfirmation){loading.show(),appSettings.set("subtitleburnin",context.querySelector("#selectSubtitleBurnIn").value),apiClient.getUser(userId).then(function(user){saveUser(context,user,userSettings,instance.appearanceKey,apiClient).then(function(){loading.hide(),enableSaveConfirmation&&require(["toast"],function(toast){toast(globalize.translate("sharedcomponents#SettingsSaved"))}),events.trigger(instance,"saved")},function(){loading.hide()})})}function onSubmit(e){var self=this,apiClient=connectionManager.getApiClient(self.options.serverId),userId=self.options.userId,userSettings=self.options.userSettings;return userSettings.setUserInfo(userId,apiClient).then(function(){var enableSaveConfirmation=self.options.enableSaveConfirmation;save(self,self.options.element,userId,userSettings,apiClient,enableSaveConfirmation)}),e&&e.preventDefault(),!1}function onSubtitleModeChange(e){for(var view=dom.parentWithClass(e.target,"subtitlesettings"),subtitlesHelp=view.querySelectorAll(".subtitlesHelp"),i=0,length=subtitlesHelp.length;i',html+='
',html+='
',html+=name,html+="
",html+="
",html+='arrow_forward',html+="
"}function getEditorHtml(options,systemInfo){var html="";if(html+='
',html+='
',!options.pathReadOnly){var instruction=options.instruction?options.instruction+"

":"";html+='
',html+=instruction,html+=Globalize.translate("MessageDirectoryPickerInstruction").replace("{0}","\\\\server").replace("{1}","\\\\192.168.1.101"),"bsd"==systemInfo.OperatingSystem.toLowerCase()?(html+="
",html+="
",html+=Globalize.translate("MessageDirectoryPickerBSDInstruction"),html+="
",html+=''+Globalize.translate("ButtonMoreInformation")+""):"linux"==systemInfo.OperatingSystem.toLowerCase()&&(html+="
",html+="
",html+=Globalize.translate("MessageDirectoryPickerLinuxInstruction"),html+="
"),html+="
"}html+='
',html+='
',html+='
';var labelKey=options.includeFiles!==!0?"LabelFolder":"LabelPath",readOnlyAttribute=options.pathReadOnly?" readonly":"";return html+='',html+="
",readOnlyAttribute||(html+=''),html+="
",readOnlyAttribute||(html+='
'),options.enableNetworkSharePath&&(html+='
',html+='',html+='
',html+=Globalize.translate("LabelOptionalNetworkPathHelp"),html+="
",html+="
"),html+='
',html+='",html+="
",html+="
",html+="
",html+="
",html+="
"}function initEditor(content,options,fileOptions){content.addEventListener("click",function(e){var lnkPath=dom.parentWithClass(e.target,"lnkPath");if(lnkPath){var path=lnkPath.getAttribute("data-path");lnkPath.classList.contains("lnkFile")?content.querySelector("#txtDirectoryPickerPath").value=path:refreshDirectoryBrowser(content,path,fileOptions,!0)}}),content.addEventListener("click",function(e){var btnRefreshDirectories=dom.parentWithClass(e.target,"btnRefreshDirectories");if(btnRefreshDirectories){var path=content.querySelector("#txtDirectoryPickerPath").value;refreshDirectoryBrowser(content,path,fileOptions)}}),content.addEventListener("change",function(e){var txtDirectoryPickerPath=dom.parentWithTag(e.target,"INPUT");txtDirectoryPickerPath&&"txtDirectoryPickerPath"==txtDirectoryPickerPath.id&&refreshDirectoryBrowser(content,txtDirectoryPickerPath.value,fileOptions)}),content.querySelector("form").addEventListener("submit",function(e){if(options.callback){var networkSharePath=this.querySelector("#txtNetworkPath");networkSharePath=networkSharePath?networkSharePath.value:null,options.callback(this.querySelector("#txtDirectoryPickerPath").value,networkSharePath)}return e.preventDefault(),e.stopPropagation(),!1})}function getDefaultPath(options){return options.path?Promise.resolve(options.path):ApiClient.getJSON(ApiClient.getUrl("Environment/DefaultDirectoryBrowser")).then(function(result){return result.Path||""},function(){return""})}function directoryBrowser(){var currentDialog,self=this;self.show=function(options){options=options||{};var fileOptions={includeDirectories:!0};null!=options.includeDirectories&&(fileOptions.includeDirectories=options.includeDirectories),null!=options.includeFiles&&(fileOptions.includeFiles=options.includeFiles),Promise.all([getSystemInfo(),getDefaultPath(options)]).then(function(responses){var systemInfo=responses[0],initialPath=responses[1],dlg=dialogHelper.createDialog({size:"medium-tall",removeOnClose:!0,scrollY:!1});dlg.classList.add("ui-body-a"),dlg.classList.add("background-theme-a"),dlg.classList.add("directoryPicker"),dlg.classList.add("formDialog");var html="";html+='
',html+='',html+='

',html+=options.header||Globalize.translate("HeaderSelectPath"),html+="

",html+="
",html+=getEditorHtml(options,systemInfo),dlg.innerHTML=html,initEditor(dlg,options,fileOptions),dlg.addEventListener("close",onDialogClosed),dialogHelper.open(dlg),dlg.querySelector(".btnCloseDialog").addEventListener("click",function(){dialogHelper.close(dlg)}),currentDialog=dlg;var txtCurrentPath=dlg.querySelector("#txtDirectoryPickerPath");txtCurrentPath.value=initialPath;var txtNetworkPath=dlg.querySelector("#txtNetworkPath");txtNetworkPath&&(txtNetworkPath.value=options.networkSharePath||""),options.pathReadOnly||refreshDirectoryBrowser(dlg,txtCurrentPath.value,null,!0)})},self.close=function(){currentDialog&&dialogHelper.close(currentDialog)}}var systemInfo;return directoryBrowser}); \ No newline at end of file +define(["loading","dialogHelper","dom","listViewStyle","emby-input","emby-button","paper-icon-button-light","css!./directorybrowser","formDialogStyle","emby-linkbutton"],function(loading,dialogHelper,dom){"use strict";function getSystemInfo(){return systemInfo?Promise.resolve(systemInfo):ApiClient.getPublicSystemInfo().then(function(info){return systemInfo=info,info})}function onDialogClosed(){loading.hide()}function refreshDirectoryBrowser(page,path,fileOptions,updatePathOnError){if(path&&"string"!=typeof path)throw new Error("invalid path");loading.show();var promises=[];"Network"===path?promises.push(ApiClient.getNetworkDevices()):path?(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],parentPath=responses[1]||"";page.querySelector("#txtDirectoryPickerPath").value=path||"";var html="";path&&(html+=getItem("lnkPath lnkDirectory","",parentPath,"..."));for(var i=0,length=folders.length;i',html+='
',html+='
',html+=name,html+="
",html+="
",html+='arrow_forward',html+="
"}function getEditorHtml(options,systemInfo){var html="";if(html+='
',html+='
',!options.pathReadOnly){var instruction=options.instruction?options.instruction+"

":"";html+='
',html+=instruction,html+=Globalize.translate("MessageDirectoryPickerInstruction").replace("{0}","\\\\server").replace("{1}","\\\\192.168.1.101"),"bsd"==systemInfo.OperatingSystem.toLowerCase()?(html+="
",html+="
",html+=Globalize.translate("MessageDirectoryPickerBSDInstruction"),html+="
",html+=''+Globalize.translate("ButtonMoreInformation")+""):"linux"==systemInfo.OperatingSystem.toLowerCase()&&(html+="
",html+="
",html+=Globalize.translate("MessageDirectoryPickerLinuxInstruction"),html+="
"),html+="
"}html+='
',html+='
',html+='
';var labelKey=options.includeFiles!==!0?"LabelFolder":"LabelPath",readOnlyAttribute=options.pathReadOnly?" readonly":"";return html+='',html+="
",readOnlyAttribute||(html+=''),html+="
",readOnlyAttribute||(html+='
'),options.enableNetworkSharePath&&(html+='
',html+='',html+='
',html+=Globalize.translate("LabelOptionalNetworkPathHelp"),html+="
",html+="
"),html+='
',html+='",html+="
",html+="
",html+="
",html+="
",html+="
"}function alertText(text){alertTextWithOptions({text:text})}function alertTextWithOptions(options){require(["alert"],function(alert){alert(options)})}function validatePath(path,validateWriteable,apiClient){return apiClient.ajax({type:"POST",url:apiClient.getUrl("Environment/ValidatePath"),data:{ValidateWriteable:validateWriteable,Path:path}}).then(function(result){return Promise.resolve()},function(response){return response&&(404===response.status,500===response.status)?(alertText("Emby Server requires write access to this folder. Please ensure write access and try again."),Promise.reject()):Promise.resolve()})}function initEditor(content,options,fileOptions){content.addEventListener("click",function(e){var lnkPath=dom.parentWithClass(e.target,"lnkPath");if(lnkPath){var path=lnkPath.getAttribute("data-path");lnkPath.classList.contains("lnkFile")?content.querySelector("#txtDirectoryPickerPath").value=path:refreshDirectoryBrowser(content,path,fileOptions,!0)}}),content.addEventListener("click",function(e){var btnRefreshDirectories=dom.parentWithClass(e.target,"btnRefreshDirectories");if(btnRefreshDirectories){var path=content.querySelector("#txtDirectoryPickerPath").value;refreshDirectoryBrowser(content,path,fileOptions)}}),content.addEventListener("change",function(e){var txtDirectoryPickerPath=dom.parentWithTag(e.target,"INPUT");txtDirectoryPickerPath&&"txtDirectoryPickerPath"==txtDirectoryPickerPath.id&&refreshDirectoryBrowser(content,txtDirectoryPickerPath.value,fileOptions)}),content.querySelector("form").addEventListener("submit",function(e){if(options.callback){var networkSharePath=this.querySelector("#txtNetworkPath");networkSharePath=networkSharePath?networkSharePath.value:null;var path=this.querySelector("#txtDirectoryPickerPath").value;validatePath(path,options.validateWriteable,ApiClient).then(function(){options.callback(path,networkSharePath)})}return e.preventDefault(),e.stopPropagation(),!1})}function getDefaultPath(options){return options.path?Promise.resolve(options.path):ApiClient.getJSON(ApiClient.getUrl("Environment/DefaultDirectoryBrowser")).then(function(result){return result.Path||""},function(){return""})}function directoryBrowser(){var currentDialog,self=this;self.show=function(options){options=options||{};var fileOptions={includeDirectories:!0};null!=options.includeDirectories&&(fileOptions.includeDirectories=options.includeDirectories),null!=options.includeFiles&&(fileOptions.includeFiles=options.includeFiles),Promise.all([getSystemInfo(),getDefaultPath(options)]).then(function(responses){var systemInfo=responses[0],initialPath=responses[1],dlg=dialogHelper.createDialog({size:"medium-tall",removeOnClose:!0,scrollY:!1});dlg.classList.add("ui-body-a"),dlg.classList.add("background-theme-a"),dlg.classList.add("directoryPicker"),dlg.classList.add("formDialog");var html="";html+='
',html+='',html+='

',html+=options.header||Globalize.translate("HeaderSelectPath"),html+="

",html+="
",html+=getEditorHtml(options,systemInfo),dlg.innerHTML=html,initEditor(dlg,options,fileOptions),dlg.addEventListener("close",onDialogClosed),dialogHelper.open(dlg),dlg.querySelector(".btnCloseDialog").addEventListener("click",function(){dialogHelper.close(dlg)}),currentDialog=dlg;var txtCurrentPath=dlg.querySelector("#txtDirectoryPickerPath");txtCurrentPath.value=initialPath;var txtNetworkPath=dlg.querySelector("#txtNetworkPath");txtNetworkPath&&(txtNetworkPath.value=options.networkSharePath||""),options.pathReadOnly||refreshDirectoryBrowser(dlg,txtCurrentPath.value,null,!0)})},self.close=function(){currentDialog&&dialogHelper.close(currentDialog)}}var systemInfo;return directoryBrowser}); \ No newline at end of file diff --git a/dashboard-ui/dashboard/dashboardgeneral.js b/dashboard-ui/dashboard/dashboardgeneral.js index 25ea2f32fc..db927cb47b 100644 --- a/dashboard-ui/dashboard/dashboardgeneral.js +++ b/dashboard-ui/dashboard/dashboardgeneral.js @@ -1 +1 @@ -define(["jQuery","loading","fnchecked","emby-checkbox","emby-collapse","emby-textarea","emby-input","emby-select","emby-linkbutton"],function($,loading){"use strict";function loadPage(page,config,languageOptions,systemInfo){var os=systemInfo.OperatingSystem.toLowerCase();os.indexOf("windows")!==-1?$("#windowsStartupDescription",page).show():$("#windowsStartupDescription",page).hide(),systemInfo.SupportsAutoRunAtStartup?$("#fldRunAtStartup",page).show():$("#fldRunAtStartup",page).hide(),page.querySelector("#txtCachePath").value=config.CachePath||"",$("#selectLocalizationLanguage",page).html(languageOptions.map(function(l){return'"})).val(config.UICulture),currentLanguage=config.UICulture,$("#chkUsageData",page).checked(config.EnableAnonymousUsageReporting),$("#chkRunAtStartup",page).checked(config.RunAtStartup),systemInfo.CanSelfUpdate?$(".fldAutomaticUpdates",page).show():$(".fldAutomaticUpdates",page).hide(),$("#chkEnableAutomaticServerUpdates",page).checked(config.EnableAutoUpdate),$("#chkEnableAutomaticRestart",page).checked(config.EnableAutomaticRestart),systemInfo.CanSelfRestart?$("#fldEnableAutomaticRestart",page).show():$("#fldEnableAutomaticRestart",page).hide(),systemInfo.CanSelfRestart||systemInfo.CanSelfUpdate?$(".autoUpdatesContainer",page).removeClass("hide"):$(".autoUpdatesContainer",page).addClass("hide"),loading.hide()}function onSubmit(){loading.show();var form=this;$(form).parents(".page");return ApiClient.getServerConfiguration().then(function(config){config.UICulture=$("#selectLocalizationLanguage",form).val(),config.CachePath=form.querySelector("#txtCachePath").value;var requiresReload=!1;config.UICulture!==currentLanguage&&(requiresReload=!0),config.EnableAnonymousUsageReporting=$("#chkUsageData",form).checked(),config.RunAtStartup=$("#chkRunAtStartup",form).checked(),config.EnableAutomaticRestart=$("#chkEnableAutomaticRestart",form).checked(),config.EnableAutoUpdate=$("#chkEnableAutomaticServerUpdates",form).checked(),ApiClient.updateServerConfiguration(config).then(function(){ApiClient.getNamedConfiguration(brandingConfigKey).then(function(brandingConfig){brandingConfig.LoginDisclaimer=form.querySelector("#txtLoginDisclaimer").value,brandingConfig.CustomCss=form.querySelector("#txtCustomCss").value,currentBrandingOptions&&brandingConfig.CustomCss!==currentBrandingOptions.CustomCss&&(requiresReload=!0),ApiClient.updateNamedConfiguration(brandingConfigKey,brandingConfig).then(function(){Dashboard.processServerConfigurationUpdateResult(),requiresReload&&!AppInfo.isNativeApp&&window.location.reload(!0)})})})}),!1}var currentBrandingOptions,currentLanguage,brandingConfigKey="branding";return function(view,params){$("#btnSelectCachePath",view).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&(view.querySelector("#txtCachePath").value=path),picker.close()},header:Globalize.translate("HeaderSelectServerCachePath"),instruction:Globalize.translate("HeaderSelectServerCachePathHelp")})})}),$(".dashboardGeneralForm",view).off("submit",onSubmit).on("submit",onSubmit),view.addEventListener("viewshow",function(){var promise1=ApiClient.getServerConfiguration(),promise2=ApiClient.getJSON(ApiClient.getUrl("Localization/Options")),promise3=ApiClient.getSystemInfo();Promise.all([promise1,promise2,promise3]).then(function(responses){loadPage(view,responses[0],responses[1],responses[2])}),ApiClient.getNamedConfiguration(brandingConfigKey).then(function(config){currentBrandingOptions=config,view.querySelector("#txtLoginDisclaimer").value=config.LoginDisclaimer||"",view.querySelector("#txtCustomCss").value=config.CustomCss||""})})}}); \ No newline at end of file +define(["jQuery","loading","fnchecked","emby-checkbox","emby-collapse","emby-textarea","emby-input","emby-select","emby-linkbutton"],function($,loading){"use strict";function loadPage(page,config,languageOptions,systemInfo){var os=systemInfo.OperatingSystem.toLowerCase();os.indexOf("windows")!==-1?$("#windowsStartupDescription",page).show():$("#windowsStartupDescription",page).hide(),systemInfo.SupportsAutoRunAtStartup?$("#fldRunAtStartup",page).show():$("#fldRunAtStartup",page).hide(),page.querySelector("#txtCachePath").value=config.CachePath||"",$("#selectLocalizationLanguage",page).html(languageOptions.map(function(l){return'"})).val(config.UICulture),currentLanguage=config.UICulture,$("#chkUsageData",page).checked(config.EnableAnonymousUsageReporting),$("#chkRunAtStartup",page).checked(config.RunAtStartup),systemInfo.CanSelfUpdate?$(".fldAutomaticUpdates",page).show():$(".fldAutomaticUpdates",page).hide(),$("#chkEnableAutomaticServerUpdates",page).checked(config.EnableAutoUpdate),$("#chkEnableAutomaticRestart",page).checked(config.EnableAutomaticRestart),systemInfo.CanSelfRestart?$("#fldEnableAutomaticRestart",page).show():$("#fldEnableAutomaticRestart",page).hide(),systemInfo.CanSelfRestart||systemInfo.CanSelfUpdate?$(".autoUpdatesContainer",page).removeClass("hide"):$(".autoUpdatesContainer",page).addClass("hide"),loading.hide()}function onSubmit(){loading.show();var form=this;$(form).parents(".page");return ApiClient.getServerConfiguration().then(function(config){config.UICulture=$("#selectLocalizationLanguage",form).val(),config.CachePath=form.querySelector("#txtCachePath").value;var requiresReload=!1;config.UICulture!==currentLanguage&&(requiresReload=!0),config.EnableAnonymousUsageReporting=$("#chkUsageData",form).checked(),config.RunAtStartup=$("#chkRunAtStartup",form).checked(),config.EnableAutomaticRestart=$("#chkEnableAutomaticRestart",form).checked(),config.EnableAutoUpdate=$("#chkEnableAutomaticServerUpdates",form).checked(),ApiClient.updateServerConfiguration(config).then(function(){ApiClient.getNamedConfiguration(brandingConfigKey).then(function(brandingConfig){brandingConfig.LoginDisclaimer=form.querySelector("#txtLoginDisclaimer").value,brandingConfig.CustomCss=form.querySelector("#txtCustomCss").value,currentBrandingOptions&&brandingConfig.CustomCss!==currentBrandingOptions.CustomCss&&(requiresReload=!0),ApiClient.updateNamedConfiguration(brandingConfigKey,brandingConfig).then(function(){Dashboard.processServerConfigurationUpdateResult(),requiresReload&&!AppInfo.isNativeApp&&window.location.reload(!0)})})})}),!1}var currentBrandingOptions,currentLanguage,brandingConfigKey="branding";return function(view,params){$("#btnSelectCachePath",view).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&(view.querySelector("#txtCachePath").value=path),picker.close()},validateWriteable:!0,header:Globalize.translate("HeaderSelectServerCachePath"),instruction:Globalize.translate("HeaderSelectServerCachePathHelp")})})}),$(".dashboardGeneralForm",view).off("submit",onSubmit).on("submit",onSubmit),view.addEventListener("viewshow",function(){var promise1=ApiClient.getServerConfiguration(),promise2=ApiClient.getJSON(ApiClient.getUrl("Localization/Options")),promise3=ApiClient.getSystemInfo();Promise.all([promise1,promise2,promise3]).then(function(responses){loadPage(view,responses[0],responses[1],responses[2])}),ApiClient.getNamedConfiguration(brandingConfigKey).then(function(config){currentBrandingOptions=config,view.querySelector("#txtLoginDisclaimer").value=config.LoginDisclaimer||"",view.querySelector("#txtCustomCss").value=config.CustomCss||""})})}}); \ No newline at end of file diff --git a/dashboard-ui/dashboard/devicesupload.js b/dashboard-ui/dashboard/devicesupload.js index 837e212e50..c3c13158d2 100644 --- a/dashboard-ui/dashboard/devicesupload.js +++ b/dashboard-ui/dashboard/devicesupload.js @@ -1 +1 @@ -define(["jQuery","loading","libraryMenu","fnchecked"],function($,loading,libraryMenu){"use strict";function load(page,config){$("#txtUploadPath",page).val(config.CameraUploadPath||""),$("#chkSubfolder",page).checked(config.EnableCameraUploadSubfolders)}function loadData(page){loading.show(),ApiClient.getNamedConfiguration("devices").then(function(config){load(page,config),loading.hide()})}function save(page){ApiClient.getNamedConfiguration("devices").then(function(config){config.CameraUploadPath=$("#txtUploadPath",page).val(),config.EnableCameraUploadSubfolders=$("#chkSubfolder",page).checked(),ApiClient.updateNamedConfiguration("devices",config).then(Dashboard.processServerConfigurationUpdateResult)})}function onSubmit(){var form=this,page=$(form).parents(".page");return save(page),!1}$(document).on("pageinit","#devicesUploadPage",function(){var page=this;$("#btnSelectUploadPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtUploadPath",page).val(path),picker.close()},header:Globalize.translate("HeaderSelectUploadPath")})})}),$(".devicesUploadForm").off("submit",onSubmit).on("submit",onSubmit)}).on("pageshow","#devicesUploadPage",function(){var page=this;loadData(page)})}); \ No newline at end of file +define(["jQuery","loading","libraryMenu","fnchecked"],function($,loading,libraryMenu){"use strict";function load(page,config){$("#txtUploadPath",page).val(config.CameraUploadPath||""),$("#chkSubfolder",page).checked(config.EnableCameraUploadSubfolders)}function loadData(page){loading.show(),ApiClient.getNamedConfiguration("devices").then(function(config){load(page,config),loading.hide()})}function save(page){ApiClient.getNamedConfiguration("devices").then(function(config){config.CameraUploadPath=$("#txtUploadPath",page).val(),config.EnableCameraUploadSubfolders=$("#chkSubfolder",page).checked(),ApiClient.updateNamedConfiguration("devices",config).then(Dashboard.processServerConfigurationUpdateResult)})}function onSubmit(){var form=this,page=$(form).parents(".page");return save(page),!1}$(document).on("pageinit","#devicesUploadPage",function(){var page=this;$("#btnSelectUploadPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtUploadPath",page).val(path),picker.close()},validateWriteable:!0,header:Globalize.translate("HeaderSelectUploadPath")})})}),$(".devicesUploadForm").off("submit",onSubmit).on("submit",onSubmit)}).on("pageshow","#devicesUploadPage",function(){var page=this;loadData(page)})}); \ No newline at end of file diff --git a/dashboard-ui/dashboard/librarysettings.js b/dashboard-ui/dashboard/librarysettings.js index 531677bee8..c6004faf9b 100644 --- a/dashboard-ui/dashboard/librarysettings.js +++ b/dashboard-ui/dashboard/librarysettings.js @@ -1 +1 @@ -define(["jQuery","loading","libraryMenu","fnchecked","emby-checkbox","emby-linkbutton"],function($,loading,libraryMenu){"use strict";function loadPage(page,config){config.MergeMetadataAndImagesByName?$(".fldImagesByName",page).hide():$(".fldImagesByName",page).show(),$("#txtSeasonZeroName",page).val(config.SeasonZeroDisplayName),$("#chkSaveMetadataHidden",page).checked(config.SaveMetadataHidden),$("#txtMetadataPath",page).val(config.MetadataPath||""),$("#txtMetadataNetworkPath",page).val(config.MetadataNetworkPath||""),loading.hide()}function loadMetadataConfig(page,config){$("#selectDateAdded",page).val(config.UseFileCreationTimeForDateAdded?"1":"0")}function loadFanartConfig(page,config){$("#txtFanartApiKey",page).val(config.UserApiKey||"")}function saveFanart(form){ApiClient.getNamedConfiguration("fanart").then(function(config){config.UserApiKey=$("#txtFanartApiKey",form).val(),ApiClient.updateNamedConfiguration("fanart",config)})}function saveMetadata(form){ApiClient.getNamedConfiguration("metadata").then(function(config){config.UseFileCreationTimeForDateAdded="1"===$("#selectDateAdded",form).val(),ApiClient.updateNamedConfiguration("metadata",config)})}function alertText(options){require(["alert"],function(alert){alert(options)})}function onSubmitFail(response){loading.hide(),response&&404===response.status?alertText("The metadata path entered could not be found. Please ensure the path is valid and try again."):response&&500===response.status&&alertText("The metadata path entered is not valid. Please ensure the path exists and that Emby server has write access to the folder.")}function onSubmit(){loading.show();var form=this;return ApiClient.getServerConfiguration().then(function(config){config.SeasonZeroDisplayName=$("#txtSeasonZeroName",form).val(),config.SaveMetadataHidden=$("#chkSaveMetadataHidden",form).checked(),config.EnableTvDbUpdates=$("#chkEnableTvdbUpdates",form).checked(),config.EnableTmdbUpdates=$("#chkEnableTmdbUpdates",form).checked(),config.EnableFanArtUpdates=$("#chkEnableFanartUpdates",form).checked(),config.MetadataPath=$("#txtMetadataPath",form).val(),config.MetadataNetworkPath=$("#txtMetadataNetworkPath",form).val(),config.FanartApiKey=$("#txtFanartApiKey",form).val(),ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult,onSubmitFail)}),saveMetadata(form),saveFanart(form),!1}function getTabs(){return[{href:"library.html",name:Globalize.translate("HeaderLibraries")},{href:"librarydisplay.html",name:Globalize.translate("TabDisplay")},{href:"metadataimages.html",name:Globalize.translate("TabMetadata")},{href:"metadatanfo.html",name:Globalize.translate("TabNfoSettings")},{href:"librarysettings.html",name:Globalize.translate("TabAdvanced")}]}return function(view,params){$("#btnSelectMetadataPath",view).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({path:$("#txtMetadataPath",view).val(),networkSharePath:$("#txtMetadataNetworkPath",view).val(),callback:function(path,networkPath){path&&($("#txtMetadataPath",view).val(path),$("#txtMetadataNetworkPath",view).val(networkPath)),picker.close()},header:Globalize.translate("HeaderSelectMetadataPath"),instruction:Globalize.translate("HeaderSelectMetadataPathHelp"),enableNetworkSharePath:!0})})}),$(".librarySettingsForm").off("submit",onSubmit).on("submit",onSubmit),view.addEventListener("viewshow",function(){libraryMenu.setTabs("librarysetup",4,getTabs),loading.show();var page=this;ApiClient.getServerConfiguration().then(function(config){loadPage(page,config)}),ApiClient.getNamedConfiguration("metadata").then(function(metadata){loadMetadataConfig(page,metadata)}),ApiClient.getNamedConfiguration("fanart").then(function(metadata){loadFanartConfig(page,metadata)})})}}); \ No newline at end of file +define(["jQuery","loading","libraryMenu","fnchecked","emby-checkbox","emby-linkbutton"],function($,loading,libraryMenu){"use strict";function loadPage(page,config){config.MergeMetadataAndImagesByName?$(".fldImagesByName",page).hide():$(".fldImagesByName",page).show(),$("#txtSeasonZeroName",page).val(config.SeasonZeroDisplayName),$("#chkSaveMetadataHidden",page).checked(config.SaveMetadataHidden),$("#txtMetadataPath",page).val(config.MetadataPath||""),$("#txtMetadataNetworkPath",page).val(config.MetadataNetworkPath||""),loading.hide()}function loadMetadataConfig(page,config){$("#selectDateAdded",page).val(config.UseFileCreationTimeForDateAdded?"1":"0")}function loadFanartConfig(page,config){$("#txtFanartApiKey",page).val(config.UserApiKey||"")}function saveFanart(form){ApiClient.getNamedConfiguration("fanart").then(function(config){config.UserApiKey=$("#txtFanartApiKey",form).val(),ApiClient.updateNamedConfiguration("fanart",config)})}function saveMetadata(form){ApiClient.getNamedConfiguration("metadata").then(function(config){config.UseFileCreationTimeForDateAdded="1"===$("#selectDateAdded",form).val(),ApiClient.updateNamedConfiguration("metadata",config)})}function alertText(options){require(["alert"],function(alert){alert(options)})}function onSubmitFail(response){loading.hide(),response&&404===response.status?alertText("The metadata path entered could not be found. Please ensure the path is valid and try again."):response&&500===response.status&&alertText("The metadata path entered is not valid. Please ensure the path exists and that Emby server has write access to the folder.")}function onSubmit(){loading.show();var form=this;return ApiClient.getServerConfiguration().then(function(config){config.SeasonZeroDisplayName=$("#txtSeasonZeroName",form).val(),config.SaveMetadataHidden=$("#chkSaveMetadataHidden",form).checked(),config.EnableTvDbUpdates=$("#chkEnableTvdbUpdates",form).checked(),config.EnableTmdbUpdates=$("#chkEnableTmdbUpdates",form).checked(),config.EnableFanArtUpdates=$("#chkEnableFanartUpdates",form).checked(),config.MetadataPath=$("#txtMetadataPath",form).val(),config.MetadataNetworkPath=$("#txtMetadataNetworkPath",form).val(),config.FanartApiKey=$("#txtFanartApiKey",form).val(),ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult,onSubmitFail)}),saveMetadata(form),saveFanart(form),!1}function getTabs(){return[{href:"library.html",name:Globalize.translate("HeaderLibraries")},{href:"librarydisplay.html",name:Globalize.translate("TabDisplay")},{href:"metadataimages.html",name:Globalize.translate("TabMetadata")},{href:"metadatanfo.html",name:Globalize.translate("TabNfoSettings")},{href:"librarysettings.html",name:Globalize.translate("TabAdvanced")}]}return function(view,params){$("#btnSelectMetadataPath",view).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({path:$("#txtMetadataPath",view).val(),networkSharePath:$("#txtMetadataNetworkPath",view).val(),callback:function(path,networkPath){path&&($("#txtMetadataPath",view).val(path),$("#txtMetadataNetworkPath",view).val(networkPath)),picker.close()},validateWriteable:!0,header:Globalize.translate("HeaderSelectMetadataPath"),instruction:Globalize.translate("HeaderSelectMetadataPathHelp"),enableNetworkSharePath:!0})})}),$(".librarySettingsForm").off("submit",onSubmit).on("submit",onSubmit),view.addEventListener("viewshow",function(){libraryMenu.setTabs("librarysetup",4,getTabs),loading.show();var page=this;ApiClient.getServerConfiguration().then(function(config){loadPage(page,config)}),ApiClient.getNamedConfiguration("metadata").then(function(metadata){loadMetadataConfig(page,metadata)}),ApiClient.getNamedConfiguration("fanart").then(function(metadata){loadFanartConfig(page,metadata)})})}}); \ No newline at end of file diff --git a/dashboard-ui/itemdetails.html b/dashboard-ui/itemdetails.html index e19baf9958..a06e3f9df3 100644 --- a/dashboard-ui/itemdetails.html +++ b/dashboard-ui/itemdetails.html @@ -12,7 +12,7 @@
- +
diff --git a/dashboard-ui/scripts/device.js b/dashboard-ui/scripts/device.js index 427526ab41..2fff6e45ff 100644 --- a/dashboard-ui/scripts/device.js +++ b/dashboard-ui/scripts/device.js @@ -1 +1 @@ -define(["jQuery","loading","libraryMenu"],function($,loading,libraryMenu){"use strict";function load(page,device,capabilities){capabilities.SupportsContentUploading?$("#fldCameraUploadPath",page).removeClass("hide"):$("#fldCameraUploadPath",page).addClass("hide"),$("#txtCustomName",page).val(device.CustomName||""),$("#txtUploadPath",page).val(device.CameraUploadPath||""),$(".reportedName",page).html(device.ReportedName||"")}function loadData(page){loading.show();var id=getParameterByName("id"),promise1=ApiClient.getJSON(ApiClient.getUrl("Devices/Info",{Id:id})),promise2=ApiClient.getJSON(ApiClient.getUrl("Devices/Capabilities",{Id:id}));Promise.all([promise1,promise2]).then(function(responses){load(page,responses[0],responses[1]),loading.hide()})}function save(page){var id=getParameterByName("id");ApiClient.ajax({url:ApiClient.getUrl("Devices/Options",{Id:id}),type:"POST",data:JSON.stringify({CustomName:$("#txtCustomName",page).val(),CameraUploadPath:$("#txtUploadPath",page).val()}),contentType:"application/json"}).then(Dashboard.processServerConfigurationUpdateResult)}function onSubmit(){var form=this,page=$(form).parents(".page");return save(page),!1}$(document).on("pageinit","#devicePage",function(){var page=this;$("#btnSelectUploadPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtUploadPath",page).val(path),picker.close()},header:Globalize.translate("HeaderSelectUploadPath")})})}),$(".deviceForm").off("submit",onSubmit).on("submit",onSubmit)}).on("pageshow","#devicePage",function(){var page=this;loadData(page)})}); \ No newline at end of file +define(["jQuery","loading","libraryMenu"],function($,loading,libraryMenu){"use strict";function load(page,device,capabilities){capabilities.SupportsContentUploading?$("#fldCameraUploadPath",page).removeClass("hide"):$("#fldCameraUploadPath",page).addClass("hide"),$("#txtCustomName",page).val(device.CustomName||""),$("#txtUploadPath",page).val(device.CameraUploadPath||""),$(".reportedName",page).html(device.ReportedName||"")}function loadData(page){loading.show();var id=getParameterByName("id"),promise1=ApiClient.getJSON(ApiClient.getUrl("Devices/Info",{Id:id})),promise2=ApiClient.getJSON(ApiClient.getUrl("Devices/Capabilities",{Id:id}));Promise.all([promise1,promise2]).then(function(responses){load(page,responses[0],responses[1]),loading.hide()})}function save(page){var id=getParameterByName("id");ApiClient.ajax({url:ApiClient.getUrl("Devices/Options",{Id:id}),type:"POST",data:JSON.stringify({CustomName:$("#txtCustomName",page).val(),CameraUploadPath:$("#txtUploadPath",page).val()}),contentType:"application/json"}).then(Dashboard.processServerConfigurationUpdateResult)}function onSubmit(){var form=this,page=$(form).parents(".page");return save(page),!1}$(document).on("pageinit","#devicePage",function(){var page=this;$("#btnSelectUploadPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtUploadPath",page).val(path),picker.close()},validateWriteable:!0,header:Globalize.translate("HeaderSelectUploadPath")})})}),$(".deviceForm").off("submit",onSubmit).on("submit",onSubmit)}).on("pageshow","#devicePage",function(){var page=this;loadData(page)})}); \ No newline at end of file diff --git a/dashboard-ui/scripts/encodingsettings.js b/dashboard-ui/scripts/encodingsettings.js index 98b4112404..0119aa38a1 100644 --- a/dashboard-ui/scripts/encodingsettings.js +++ b/dashboard-ui/scripts/encodingsettings.js @@ -1 +1 @@ -define(["jQuery","loading"],function($,loading){"use strict";function loadPage(page,config,systemInfo){page.querySelector("#chkEnableThrottle").checked=config.EnableThrottling,page.querySelector("#chkHardwareDecoding").checked=config.EnableHardwareDecoding,page.querySelector("#chkHardwareEncoding").checked=config.EnableHardwareEncoding,$("#selectVideoDecoder",page).val(config.HardwareAccelerationType),$("#selectThreadCount",page).val(config.EncodingThreadCount),$("#txtDownMixAudioBoost",page).val(config.DownMixAudioBoost),page.querySelector(".txtEncoderPath").value=config.EncoderAppPath||"",$("#txtTranscodingTempPath",page).val(config.TranscodingTempPath||""),$("#txtVaapiDevice",page).val(config.VaapiDevice||""),page.querySelector("#selectH264Preset").value=config.H264Preset||"",page.querySelector("#txtH264Crf").value=config.H264Crf||"";var selectEncoderPath=page.querySelector("#selectEncoderPath");selectEncoderPath.value=systemInfo.EncoderLocationType,onSelectEncoderPathChange.call(selectEncoderPath),page.querySelector("#selectVideoDecoder").dispatchEvent(new CustomEvent("change",{bubbles:!0})),loading.hide()}function onSaveEncodingPathFailure(response){loading.hide();var msg="";msg=Globalize.translate("FFmpegSavePathNotFound"),require(["alert"],function(alert){alert(msg)})}function updateEncoder(form){return ApiClient.getSystemInfo().then(function(systemInfo){return ApiClient.ajax({url:ApiClient.getUrl("System/MediaEncoder/Path"),type:"POST",data:{Path:form.querySelector(".txtEncoderPath").value,PathType:form.querySelector("#selectEncoderPath").value}}).then(Dashboard.processServerConfigurationUpdateResult,onSaveEncodingPathFailure)})}function onSubmit(){var form=this,onDecoderConfirmed=function(){loading.show(),ApiClient.getNamedConfiguration("encoding").then(function(config){config.DownMixAudioBoost=$("#txtDownMixAudioBoost",form).val(),config.TranscodingTempPath=$("#txtTranscodingTempPath",form).val(),config.EncodingThreadCount=$("#selectThreadCount",form).val(),config.HardwareAccelerationType=$("#selectVideoDecoder",form).val(),config.VaapiDevice=$("#txtVaapiDevice",form).val(),config.H264Preset=form.querySelector("#selectH264Preset").value,config.H264Crf=parseInt(form.querySelector("#txtH264Crf").value||"0"),config.EnableHardwareDecoding=form.querySelector("#chkHardwareDecoding").checked,config.EnableHardwareEncoding=form.querySelector("#chkHardwareEncoding").checked,config.EnableThrottling=form.querySelector("#chkEnableThrottle").checked,ApiClient.updateNamedConfiguration("encoding",config).then(function(){updateEncoder(form)})})};return $("#selectVideoDecoder",form).val()?require(["alert"],function(alert){alert({title:Globalize.translate("TitleHardwareAcceleration"),text:Globalize.translate("HardwareAccelerationWarning")}).then(onDecoderConfirmed)}):onDecoderConfirmed(),!1}function onSelectEncoderPathChange(e){var page=$(this).parents(".page")[0];"Custom"==this.value?(page.querySelector(".fldEncoderPath").classList.remove("hide"),page.querySelector(".txtEncoderPath").setAttribute("required","required")):(page.querySelector(".fldEncoderPath").classList.add("hide"),page.querySelector(".txtEncoderPath").removeAttribute("required"))}$(document).on("pageinit","#encodingSettingsPage",function(){var page=this;page.querySelector("#selectVideoDecoder").addEventListener("change",function(){"vaapi"==this.value?(page.querySelector(".fldVaapiDevice").classList.remove("hide"),page.querySelector("#txtVaapiDevice").setAttribute("required","required")):(page.querySelector(".fldVaapiDevice").classList.add("hide"),page.querySelector("#txtVaapiDevice").removeAttribute("required")),this.value?page.querySelector(".hardwareAccelerationOptions").classList.remove("hide"):page.querySelector(".hardwareAccelerationOptions").classList.add("hide")}),$("#btnSelectEncoderPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({includeFiles:!0,callback:function(path){path&&$(".txtEncoderPath",page).val(path),picker.close()}})})}),$("#btnSelectTranscodingTempPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtTranscodingTempPath",page).val(path),picker.close()},header:Globalize.translate("HeaderSelectTranscodingPath"),instruction:Globalize.translate("HeaderSelectTranscodingPathHelp")})})}),$(".encodingSettingsForm").off("submit",onSubmit).on("submit",onSubmit),page.querySelector("#selectEncoderPath").addEventListener("change",onSelectEncoderPathChange)}).on("pageshow","#encodingSettingsPage",function(){loading.show();var page=this;ApiClient.getNamedConfiguration("encoding").then(function(config){ApiClient.getSystemInfo().then(function(systemInfo){"External"==systemInfo.EncoderLocationType?page.querySelector(".fldSelectEncoderPathType").classList.add("hide"):page.querySelector(".fldSelectEncoderPathType").classList.remove("hide"),loadPage(page,config,systemInfo)})})})}); \ No newline at end of file +define(["jQuery","loading"],function($,loading){"use strict";function loadPage(page,config,systemInfo){page.querySelector("#chkEnableThrottle").checked=config.EnableThrottling,page.querySelector("#chkHardwareDecoding").checked=config.EnableHardwareDecoding,page.querySelector("#chkHardwareEncoding").checked=config.EnableHardwareEncoding,$("#selectVideoDecoder",page).val(config.HardwareAccelerationType),$("#selectThreadCount",page).val(config.EncodingThreadCount),$("#txtDownMixAudioBoost",page).val(config.DownMixAudioBoost),page.querySelector(".txtEncoderPath").value=config.EncoderAppPath||"",$("#txtTranscodingTempPath",page).val(config.TranscodingTempPath||""),$("#txtVaapiDevice",page).val(config.VaapiDevice||""),page.querySelector("#selectH264Preset").value=config.H264Preset||"",page.querySelector("#txtH264Crf").value=config.H264Crf||"";var selectEncoderPath=page.querySelector("#selectEncoderPath");selectEncoderPath.value=systemInfo.EncoderLocationType,onSelectEncoderPathChange.call(selectEncoderPath),page.querySelector("#selectVideoDecoder").dispatchEvent(new CustomEvent("change",{bubbles:!0})),loading.hide()}function onSaveEncodingPathFailure(response){loading.hide();var msg="";msg=Globalize.translate("FFmpegSavePathNotFound"),require(["alert"],function(alert){alert(msg)})}function updateEncoder(form){return ApiClient.getSystemInfo().then(function(systemInfo){return ApiClient.ajax({url:ApiClient.getUrl("System/MediaEncoder/Path"),type:"POST",data:{Path:form.querySelector(".txtEncoderPath").value,PathType:form.querySelector("#selectEncoderPath").value}}).then(Dashboard.processServerConfigurationUpdateResult,onSaveEncodingPathFailure)})}function onSubmit(){var form=this,onDecoderConfirmed=function(){loading.show(),ApiClient.getNamedConfiguration("encoding").then(function(config){config.DownMixAudioBoost=$("#txtDownMixAudioBoost",form).val(),config.TranscodingTempPath=$("#txtTranscodingTempPath",form).val(),config.EncodingThreadCount=$("#selectThreadCount",form).val(),config.HardwareAccelerationType=$("#selectVideoDecoder",form).val(),config.VaapiDevice=$("#txtVaapiDevice",form).val(),config.H264Preset=form.querySelector("#selectH264Preset").value,config.H264Crf=parseInt(form.querySelector("#txtH264Crf").value||"0"),config.EnableHardwareDecoding=form.querySelector("#chkHardwareDecoding").checked,config.EnableHardwareEncoding=form.querySelector("#chkHardwareEncoding").checked,config.EnableThrottling=form.querySelector("#chkEnableThrottle").checked,ApiClient.updateNamedConfiguration("encoding",config).then(function(){updateEncoder(form)})})};return $("#selectVideoDecoder",form).val()?require(["alert"],function(alert){alert({title:Globalize.translate("TitleHardwareAcceleration"),text:Globalize.translate("HardwareAccelerationWarning")}).then(onDecoderConfirmed)}):onDecoderConfirmed(),!1}function onSelectEncoderPathChange(e){var page=$(this).parents(".page")[0];"Custom"==this.value?(page.querySelector(".fldEncoderPath").classList.remove("hide"),page.querySelector(".txtEncoderPath").setAttribute("required","required")):(page.querySelector(".fldEncoderPath").classList.add("hide"),page.querySelector(".txtEncoderPath").removeAttribute("required"))}$(document).on("pageinit","#encodingSettingsPage",function(){var page=this;page.querySelector("#selectVideoDecoder").addEventListener("change",function(){"vaapi"==this.value?(page.querySelector(".fldVaapiDevice").classList.remove("hide"),page.querySelector("#txtVaapiDevice").setAttribute("required","required")):(page.querySelector(".fldVaapiDevice").classList.add("hide"),page.querySelector("#txtVaapiDevice").removeAttribute("required")),this.value?page.querySelector(".hardwareAccelerationOptions").classList.remove("hide"):page.querySelector(".hardwareAccelerationOptions").classList.add("hide")}),$("#btnSelectEncoderPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({includeFiles:!0,callback:function(path){path&&$(".txtEncoderPath",page).val(path),picker.close()}})})}),$("#btnSelectTranscodingTempPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtTranscodingTempPath",page).val(path),picker.close()},validateWriteable:!0,header:Globalize.translate("HeaderSelectTranscodingPath"),instruction:Globalize.translate("HeaderSelectTranscodingPathHelp")})})}),$(".encodingSettingsForm").off("submit",onSubmit).on("submit",onSubmit),page.querySelector("#selectEncoderPath").addEventListener("change",onSelectEncoderPathChange)}).on("pageshow","#encodingSettingsPage",function(){loading.show();var page=this;ApiClient.getNamedConfiguration("encoding").then(function(config){ApiClient.getSystemInfo().then(function(systemInfo){"External"==systemInfo.EncoderLocationType?page.querySelector(".fldSelectEncoderPathType").classList.add("hide"):page.querySelector(".fldSelectEncoderPathType").classList.remove("hide"),loadPage(page,config,systemInfo)})})})}); \ No newline at end of file diff --git a/dashboard-ui/scripts/livetvsettings.js b/dashboard-ui/scripts/livetvsettings.js index 5c634ab9eb..3fe99c403f 100644 --- a/dashboard-ui/scripts/livetvsettings.js +++ b/dashboard-ui/scripts/livetvsettings.js @@ -1 +1 @@ -define(["jQuery","loading","libraryMenu","fnchecked"],function($,loading,libraryMenu){"use strict";function loadPage(page,config){$(".liveTvSettingsForm",page).show(),$(".noLiveTvServices",page).hide(),$("#selectGuideDays",page).val(config.GuideDays||""),$("#chkConvertRecordings",page).checked(config.EnableRecordingEncoding),$("#chkPreserveAudio",page).checked(config.EnableOriginalAudioWithEncodedRecordings||!1),$("#chkPreserveVideo",page).checked("copy"==config.RecordedVideoCodec),$("#txtPrePaddingMinutes",page).val(config.PrePaddingSeconds/60),$("#txtPostPaddingMinutes",page).val(config.PostPaddingSeconds/60),page.querySelector("#txtRecordingPath").value=config.RecordingPath||"",page.querySelector("#txtMovieRecordingPath").value=config.MovieRecordingPath||"",page.querySelector("#txtSeriesRecordingPath").value=config.SeriesRecordingPath||"",page.querySelector("#selectConversionFormat").value=config.RecordingEncodingFormat||"",page.querySelector("#txtPostProcessor").value=config.RecordingPostProcessor||"",page.querySelector("#txtPostProcessorArguments").value=config.RecordingPostProcessorArguments||"",loading.hide()}function onSubmit(){loading.show();var form=this;return ApiClient.getNamedConfiguration("livetv").then(function(config){config.GuideDays=$("#selectGuideDays",form).val()||null,config.EnableRecordingEncoding=$("#chkConvertRecordings",form).checked(),config.EnableOriginalAudioWithEncodedRecordings=$("#chkPreserveAudio",form).checked(),config.RecordedVideoCodec=$("#chkPreserveVideo",form).checked()?"copy":null;var recordingPath=form.querySelector("#txtRecordingPath").value||null,movieRecordingPath=form.querySelector("#txtMovieRecordingPath").value||null,seriesRecordingPath=form.querySelector("#txtSeriesRecordingPath").value||null,recordingPathChanged=recordingPath!=config.RecordingPath||movieRecordingPath!=config.MovieRecordingPath||seriesRecordingPath!=config.SeriesRecordingPath;config.RecordingPath=recordingPath,config.MovieRecordingPath=movieRecordingPath,config.SeriesRecordingPath=seriesRecordingPath,config.RecordingEncodingFormat=form.querySelector("#selectConversionFormat").value,config.PrePaddingSeconds=60*$("#txtPrePaddingMinutes",form).val(),config.PostPaddingSeconds=60*$("#txtPostPaddingMinutes",form).val(),config.RecordingPostProcessor=$("#txtPostProcessor",form).val(),config.RecordingPostProcessorArguments=$("#txtPostProcessorArguments",form).val(),ApiClient.updateNamedConfiguration("livetv",config).then(function(){Dashboard.processServerConfigurationUpdateResult(),showSaveMessage(recordingPathChanged)})}),!1}function showSaveMessage(recordingPathChanged){var msg="";recordingPathChanged&&(msg+=Globalize.translate("RecordingPathChangeMessage")),msg&&require(["alert"],function(alert){alert(msg)})}function getTabs(){return[{href:"livetvstatus.html",name:Globalize.translate("TabDevices")},{href:"livetvsettings.html",name:Globalize.translate("TabSettings")},{href:"appservices.html?context=livetv",name:Globalize.translate("TabServices")}]}$(document).on("pageinit","#liveTvSettingsPage",function(){var page=this;$(".liveTvSettingsForm").off("submit",onSubmit).on("submit",onSubmit),$("#btnSelectRecordingPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtRecordingPath",page).val(path),picker.close()}})})}),$("#btnSelectMovieRecordingPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtMovieRecordingPath",page).val(path),picker.close()}})})}),$("#btnSelectSeriesRecordingPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtSeriesRecordingPath",page).val(path),picker.close()}})})}),$("#btnSelectPostProcessorPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({includeFiles:!0,callback:function(path){path&&$("#txtPostProcessor",page).val(path),picker.close()}})})})}).on("pageshow","#liveTvSettingsPage",function(){libraryMenu.setTabs("livetvadmin",1,getTabs),loading.show();var page=this;ApiClient.getNamedConfiguration("livetv").then(function(config){loadPage(page,config)}),AppInfo.enableSupporterMembership?page.querySelector(".btnSupporterForConverting a").href="https://emby.media/premiere":page.querySelector(".btnSupporterForConverting a").href="#"})}); \ No newline at end of file +define(["jQuery","loading","libraryMenu","fnchecked"],function($,loading,libraryMenu){"use strict";function loadPage(page,config){$(".liveTvSettingsForm",page).show(),$(".noLiveTvServices",page).hide(),$("#selectGuideDays",page).val(config.GuideDays||""),$("#chkConvertRecordings",page).checked(config.EnableRecordingEncoding),$("#chkPreserveAudio",page).checked(config.EnableOriginalAudioWithEncodedRecordings||!1),$("#chkPreserveVideo",page).checked("copy"==config.RecordedVideoCodec),$("#txtPrePaddingMinutes",page).val(config.PrePaddingSeconds/60),$("#txtPostPaddingMinutes",page).val(config.PostPaddingSeconds/60),page.querySelector("#txtRecordingPath").value=config.RecordingPath||"",page.querySelector("#txtMovieRecordingPath").value=config.MovieRecordingPath||"",page.querySelector("#txtSeriesRecordingPath").value=config.SeriesRecordingPath||"",page.querySelector("#selectConversionFormat").value=config.RecordingEncodingFormat||"",page.querySelector("#txtPostProcessor").value=config.RecordingPostProcessor||"",page.querySelector("#txtPostProcessorArguments").value=config.RecordingPostProcessorArguments||"",loading.hide()}function onSubmit(){loading.show();var form=this;return ApiClient.getNamedConfiguration("livetv").then(function(config){config.GuideDays=$("#selectGuideDays",form).val()||null,config.EnableRecordingEncoding=$("#chkConvertRecordings",form).checked(),config.EnableOriginalAudioWithEncodedRecordings=$("#chkPreserveAudio",form).checked(),config.RecordedVideoCodec=$("#chkPreserveVideo",form).checked()?"copy":null;var recordingPath=form.querySelector("#txtRecordingPath").value||null,movieRecordingPath=form.querySelector("#txtMovieRecordingPath").value||null,seriesRecordingPath=form.querySelector("#txtSeriesRecordingPath").value||null,recordingPathChanged=recordingPath!=config.RecordingPath||movieRecordingPath!=config.MovieRecordingPath||seriesRecordingPath!=config.SeriesRecordingPath;config.RecordingPath=recordingPath,config.MovieRecordingPath=movieRecordingPath,config.SeriesRecordingPath=seriesRecordingPath,config.RecordingEncodingFormat=form.querySelector("#selectConversionFormat").value,config.PrePaddingSeconds=60*$("#txtPrePaddingMinutes",form).val(),config.PostPaddingSeconds=60*$("#txtPostPaddingMinutes",form).val(),config.RecordingPostProcessor=$("#txtPostProcessor",form).val(),config.RecordingPostProcessorArguments=$("#txtPostProcessorArguments",form).val(),ApiClient.updateNamedConfiguration("livetv",config).then(function(){Dashboard.processServerConfigurationUpdateResult(),showSaveMessage(recordingPathChanged)})}),!1}function showSaveMessage(recordingPathChanged){var msg="";recordingPathChanged&&(msg+=Globalize.translate("RecordingPathChangeMessage")),msg&&require(["alert"],function(alert){alert(msg)})}function getTabs(){return[{href:"livetvstatus.html",name:Globalize.translate("TabDevices")},{href:"livetvsettings.html",name:Globalize.translate("TabSettings")},{href:"appservices.html?context=livetv",name:Globalize.translate("TabServices")}]}$(document).on("pageinit","#liveTvSettingsPage",function(){var page=this;$(".liveTvSettingsForm").off("submit",onSubmit).on("submit",onSubmit),$("#btnSelectRecordingPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtRecordingPath",page).val(path),picker.close()},validateWriteable:!0})})}),$("#btnSelectMovieRecordingPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtMovieRecordingPath",page).val(path),picker.close()},validateWriteable:!0})})}),$("#btnSelectSeriesRecordingPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtSeriesRecordingPath",page).val(path),picker.close()},validateWriteable:!0})})}),$("#btnSelectPostProcessorPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({includeFiles:!0,callback:function(path){path&&$("#txtPostProcessor",page).val(path),picker.close()}})})})}).on("pageshow","#liveTvSettingsPage",function(){libraryMenu.setTabs("livetvadmin",1,getTabs),loading.show();var page=this;ApiClient.getNamedConfiguration("livetv").then(function(config){loadPage(page,config)}),AppInfo.enableSupporterMembership?page.querySelector(".btnSupporterForConverting a").href="https://emby.media/premiere":page.querySelector(".btnSupporterForConverting a").href="#"})}); \ No newline at end of file diff --git a/dashboard-ui/scripts/streamingsettings.js b/dashboard-ui/scripts/streamingsettings.js index 362289c31b..61dbe1ce6e 100644 --- a/dashboard-ui/scripts/streamingsettings.js +++ b/dashboard-ui/scripts/streamingsettings.js @@ -1 +1 @@ -define(["jQuery","libraryMenu","loading"],function($,libraryMenu,loading){"use strict";function loadPage(page,config){$("#txtRemoteClientBitrateLimit",page).val(config.RemoteClientBitrateLimit/1e6||""),ApiClient.getNamedConfiguration("channels").then(function(channelConfig){$("#selectChannelResolution",page).val(channelConfig.PreferredStreamingWidth||"")}),loading.hide()}function onSubmit(){loading.show();var form=this;return ApiClient.getServerConfiguration().then(function(config){config.RemoteClientBitrateLimit=parseInt(1e6*parseFloat($("#txtRemoteClientBitrateLimit",form).val()||"0")),ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult)}),ApiClient.getNamedConfiguration("channels").then(function(config){config.PreferredStreamingWidth=$("#selectChannelResolution",form).val()||null,ApiClient.updateNamedConfiguration("channels",config).then(Dashboard.processServerConfigurationUpdateResult)}),!1}function getTabs(){return[{href:"cinemamodeconfiguration.html",name:Globalize.translate("TabCinemaMode")},{href:"playbackconfiguration.html",name:Globalize.translate("TabResumeSettings")},{href:"streamingsettings.html",name:Globalize.translate("TabStreaming")}]}$(document).on("pageinit","#streamingSettingsPage",function(){var page=this;$("#btnSelectTranscodingTempPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtTranscodingTempPath",page).val(path),picker.close()},header:Globalize.translate("HeaderSelectTranscodingPath"),instruction:Globalize.translate("HeaderSelectTranscodingPathHelp")})})}),$(".streamingSettingsForm").off("submit",onSubmit).on("submit",onSubmit)}).on("pageshow","#streamingSettingsPage",function(){loading.show(),libraryMenu.setTabs("playback",2,getTabs);var page=this;ApiClient.getServerConfiguration().then(function(config){loadPage(page,config)})})}); \ No newline at end of file +define(["jQuery","libraryMenu","loading"],function($,libraryMenu,loading){"use strict";function loadPage(page,config){$("#txtRemoteClientBitrateLimit",page).val(config.RemoteClientBitrateLimit/1e6||""),ApiClient.getNamedConfiguration("channels").then(function(channelConfig){$("#selectChannelResolution",page).val(channelConfig.PreferredStreamingWidth||"")}),loading.hide()}function onSubmit(){loading.show();var form=this;return ApiClient.getServerConfiguration().then(function(config){config.RemoteClientBitrateLimit=parseInt(1e6*parseFloat($("#txtRemoteClientBitrateLimit",form).val()||"0")),ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult)}),ApiClient.getNamedConfiguration("channels").then(function(config){config.PreferredStreamingWidth=$("#selectChannelResolution",form).val()||null,ApiClient.updateNamedConfiguration("channels",config).then(Dashboard.processServerConfigurationUpdateResult)}),!1}function getTabs(){return[{href:"cinemamodeconfiguration.html",name:Globalize.translate("TabCinemaMode")},{href:"playbackconfiguration.html",name:Globalize.translate("TabResumeSettings")},{href:"streamingsettings.html",name:Globalize.translate("TabStreaming")}]}$(document).on("pageinit","#streamingSettingsPage",function(){var page=this;$("#btnSelectTranscodingTempPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtTranscodingTempPath",page).val(path),picker.close()},validateWriteable:!0,header:Globalize.translate("HeaderSelectTranscodingPath"),instruction:Globalize.translate("HeaderSelectTranscodingPathHelp")})})}),$(".streamingSettingsForm").off("submit",onSubmit).on("submit",onSubmit)}).on("pageshow","#streamingSettingsPage",function(){loading.show(),libraryMenu.setTabs("playback",2,getTabs);var page=this;ApiClient.getServerConfiguration().then(function(config){loadPage(page,config)})})}); \ No newline at end of file diff --git a/dashboard-ui/scripts/syncsettings.js b/dashboard-ui/scripts/syncsettings.js index 41dc0a4ef4..8d59185946 100644 --- a/dashboard-ui/scripts/syncsettings.js +++ b/dashboard-ui/scripts/syncsettings.js @@ -1 +1 @@ -define(["jQuery","loading","libraryMenu","fnchecked"],function($,loading,libraryMenu){"use strict";function loadPage(page,config){$("#txtSyncTempPath",page).val(config.TemporaryPath||""),$("#txtUploadSpeedLimit",page).val(config.UploadSpeedLimitBytes/1e6||""),$("#txtCpuCoreLimit",page).val(config.TranscodingCpuCoreLimit),$("#chkEnableFullSpeedConversion",page).checked(config.EnableFullSpeedTranscoding),loading.hide()}function onSubmit(){loading.show();var form=this;return ApiClient.getNamedConfiguration("sync").then(function(config){config.TemporaryPath=$("#txtSyncTempPath",form).val(),config.UploadSpeedLimitBytes=parseInt(1e6*parseFloat($("#txtUploadSpeedLimit",form).val()||"0")),config.TranscodingCpuCoreLimit=parseInt($("#txtCpuCoreLimit",form).val()),config.EnableFullSpeedTranscoding=$("#chkEnableFullSpeedConversion",form).checked(),ApiClient.updateNamedConfiguration("sync",config).then(Dashboard.processServerConfigurationUpdateResult)}),!1}function getTabs(){return[{href:"syncactivity.html",name:Globalize.translate("TabSyncJobs")},{href:"appservices.html?context=sync",name:Globalize.translate("TabServices")},{href:"syncsettings.html",name:Globalize.translate("TabSettings")}]}$(document).on("pageinit","#syncSettingsPage",function(){var page=this;$("#btnSelectSyncTempPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtSyncTempPath",page).val(path),picker.close()}})})}),$(".syncSettingsForm").off("submit",onSubmit).on("submit",onSubmit)}).on("pageshow","#syncSettingsPage",function(){loading.show(),libraryMenu.setTabs("syncadmin",2,getTabs);var page=this;ApiClient.getNamedConfiguration("sync").then(function(config){loadPage(page,config)})})}); \ No newline at end of file +define(["jQuery","loading","libraryMenu","fnchecked"],function($,loading,libraryMenu){"use strict";function loadPage(page,config){$("#txtSyncTempPath",page).val(config.TemporaryPath||""),$("#txtUploadSpeedLimit",page).val(config.UploadSpeedLimitBytes/1e6||""),$("#txtCpuCoreLimit",page).val(config.TranscodingCpuCoreLimit),$("#chkEnableFullSpeedConversion",page).checked(config.EnableFullSpeedTranscoding),loading.hide()}function onSubmit(){loading.show();var form=this;return ApiClient.getNamedConfiguration("sync").then(function(config){config.TemporaryPath=$("#txtSyncTempPath",form).val(),config.UploadSpeedLimitBytes=parseInt(1e6*parseFloat($("#txtUploadSpeedLimit",form).val()||"0")),config.TranscodingCpuCoreLimit=parseInt($("#txtCpuCoreLimit",form).val()),config.EnableFullSpeedTranscoding=$("#chkEnableFullSpeedConversion",form).checked(),ApiClient.updateNamedConfiguration("sync",config).then(Dashboard.processServerConfigurationUpdateResult)}),!1}function getTabs(){return[{href:"syncactivity.html",name:Globalize.translate("TabSyncJobs")},{href:"appservices.html?context=sync",name:Globalize.translate("TabServices")},{href:"syncsettings.html",name:Globalize.translate("TabSettings")}]}$(document).on("pageinit","#syncSettingsPage",function(){var page=this;$("#btnSelectSyncTempPath",page).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&$("#txtSyncTempPath",page).val(path),picker.close()},validateWriteable:!0})})}),$(".syncSettingsForm").off("submit",onSubmit).on("submit",onSubmit)}).on("pageshow","#syncSettingsPage",function(){loading.show(),libraryMenu.setTabs("syncadmin",2,getTabs);var page=this;ApiClient.getNamedConfiguration("sync").then(function(config){loadPage(page,config)})})}); \ No newline at end of file diff --git a/dashboard-ui/strings/de.json b/dashboard-ui/strings/de.json index 0a475da88d..3ed365671f 100644 --- a/dashboard-ui/strings/de.json +++ b/dashboard-ui/strings/de.json @@ -1820,8 +1820,8 @@ "DrmChannelsNotImported": "Verschl\u00fcsselte Kan\u00e4le werden nicht importiert.", "LabelAllowHWTranscoding": "Erlaube Hardware Transkodierung", "AllowHWTranscodingHelp": "Wenn aktiviert, erlaube dem tuner eine Transkodierung des Streams in Echtzeit vorzunehmen. Dadurch wird die Transkodierung des Emby Servers reduziert.", - "OptionRequirePerfectSubtitleMatch": "Lade nur Untertitel die perfekt zu meinen Videos passen", - "OptionRequirePerfectSubtitleMatchHelp": "Requiring a perfect match will filter subtitles to include only those that have been tested and verified with your exact video file. Unchecking this will increase the likelihood of subtitles being downloaded, but will increase the chances of mistimed or incorrect subtitle text.", + "OptionRequirePerfectSubtitleMatch": "Lade nur Untertitel mit einem perfekten Ergebnis zu meinen Videos.", + "OptionRequirePerfectSubtitleMatchHelp": "Perfektes Ergebnis w\u00e4hlt beim Filtern nur Untertitel, welche getestet und f\u00fcr deine exakte Videodatei verifiziert wurden. Die Abwahl dieser Option erh\u00f6ht die Chance, dass Untertitel heruntergeladen werden, die M\u00f6glichkeit falscher Untertitel oder dass Text an falschen Positionen angezeigt wird ist aber ebenfalls gr\u00f6\u00dfer.", "ErrorAddingGuestAccount1": "Ein Fehler trat beim Hinzuf\u00fcgen des Emby Connect Kontos auf. Hat einer Ihrer G\u00e4ste ein Emby Konto erstellt? Sie k\u00f6nnen sich hier anmelden {0}.", "ErrorAddingGuestAccount2": "Bitte stellen Sie sicher, dass Ihre G\u00e4ste die Aktivierung vervollst\u00e4ndigt haben, welche wir ihm in einer Email nach der Erstellung des Kontos zugesandt haben. Sollte diese Email nicht angekommen sein, senden Sie bitte eine Email an {0}. Bitte geben Sie Ihre Emailadresse und die des Gastes mit an.", "GuestUserNotFound": "Benutzer nicht gefunden. Bitte stellen Sie die korrekte Schreibweise sicher und versuchen Sie es erneut. Sie k\u00f6nnen auch die Emailadresse verwenden.", diff --git a/dashboard-ui/strings/es.json b/dashboard-ui/strings/es.json index cdcef8e24b..5c07068775 100644 --- a/dashboard-ui/strings/es.json +++ b/dashboard-ui/strings/es.json @@ -708,10 +708,10 @@ "ButtonRegister": "Registrar", "LabelSkipIfAudioTrackPresent": "Omitir si la pista de audio por defecto coincide con el idioma de descarga", "LabelSkipIfAudioTrackPresentHelp": "Desactive esta opci\u00f3n para asegurar que todos los v\u00eddeos tienen subt\u00edtulos, sin importar el idioma de audio.", - "SendMessage": "Send message", + "SendMessage": "Enviar mensaje", "HeaderSendMessage": "Enviar mensaje", "ButtonSend": "Enviar", - "ViewPlaybackInfo": "View playback info", + "ViewPlaybackInfo": "Ver info de la reproducci\u00f3n", "LabelMessageText": "Mensaje de texto:", "LabelMessageTitle": "T\u00edtulo del mensaje:", "MessageNoAvailablePlugins": "No hay plugins disponibles.", @@ -1821,7 +1821,7 @@ "LabelAllowHWTranscoding": "Permitir transcodificaci\u00f3n por hardware", "AllowHWTranscodingHelp": "Si est\u00e1 habilitado, permita que el sintonizador transcodifique secuencias sobre la marcha. Esto puede ayudar a reducir la transcodificaci\u00f3n requerida por Emby Server.", "OptionRequirePerfectSubtitleMatch": "S\u00f3lo descargar subt\u00edtulos que son una combinaci\u00f3n perfecta para mis archivos de v\u00eddeo", - "OptionRequirePerfectSubtitleMatchHelp": "Requiring a perfect match will filter subtitles to include only those that have been tested and verified with your exact video file. Unchecking this will increase the likelihood of subtitles being downloaded, but will increase the chances of mistimed or incorrect subtitle text.", + "OptionRequirePerfectSubtitleMatchHelp": "Requerir una coincidencia perfecta filtra los subt\u00edtulos para incluir s\u00f3lo aquellos que coinciden con el archivo de v\u00eddeo. Desmarcando esta opci\u00f3n, aumentar\u00e1 la probabilidad de que los subt\u00edtulos se descarguen, pero puede que el texto del subt\u00edtulo no coincida con el v\u00eddeo.", "ErrorAddingGuestAccount1": "Se ha producido un error al agregar la cuenta Emby Connect. \u00bfHa creado su invitado una cuenta de Emby? Pueden registrarse en {0}.", "ErrorAddingGuestAccount2": "Aseg\u00farese de que su invitado ha completado la activaci\u00f3n siguiendo las instrucciones del correo electr\u00f3nico enviado despu\u00e9s de crear la cuenta. Si no recibieron este correo electr\u00f3nico, env\u00ede un correo electr\u00f3nico a {0} e incluya su direcci\u00f3n de correo electr\u00f3nico, as\u00ed como la suya.", "GuestUserNotFound": "Usuario no encontrado. Aseg\u00farese de que el nombre es correcto y vuelva a intentarlo o intente ingresar su direcci\u00f3n de correo electr\u00f3nico.", @@ -1928,14 +1928,14 @@ "Downloading": "Descargando", "LabelCertificatePassword": "Contrase\u00f1a del certificado", "LabelCertificatePasswordHelp": "Si tu certificado requiere una contrase\u00f1a, por favor introducela aqui", - "Programs": "Programs", - "News": "News", - "HeaderDownloadSync": "Download & Sync", - "EnableHardwareDecoding": "Enable hardware decoding", - "EnableHardwareEncoding": "Enable hardware encoding", - "Rate": "Rate", - "ButtonScanAllLibraries": "Scan All Libraries", - "ScanLibrary": "Scan library", - "EnableStreamLooping": "Auto-loop live streams", - "EnableStreamLoopingHelp": "Enable this if live streams only contain a few seconds of data and need to be continuously requested." + "Programs": "Programas", + "News": "Noticias", + "HeaderDownloadSync": "Descargar y sincronizar", + "EnableHardwareDecoding": "Activar decodificaci\u00f3n por hardware", + "EnableHardwareEncoding": "Activar codificaci\u00f3n por hardware", + "Rate": "Califica", + "ButtonScanAllLibraries": "Escanear todas las bibliotecas", + "ScanLibrary": "Escanear biblioteca", + "EnableStreamLooping": "Bucle autom\u00e1tico de los streams en directo", + "EnableStreamLoopingHelp": "Habilite esto si las emisiones en directo s\u00f3lo contienen unos pocos segundos de datos y necesitan ser solicitados continuamente." } \ No newline at end of file diff --git a/dashboard-ui/strings/pl.json b/dashboard-ui/strings/pl.json index f53dedb9a8..a37edd62b7 100644 --- a/dashboard-ui/strings/pl.json +++ b/dashboard-ui/strings/pl.json @@ -11,7 +11,7 @@ "MoreUsersCanBeAddedLater": "Mo\u017cesz p\u00f3\u017aniej doda\u0107 kolejnych u\u017cytkownik\u00f3w u\u017cywaj\u0105c kokpitu.", "UserProfilesIntro": "Emby zawiera wbudowan\u0105 obs\u0142ug\u0119 profili u\u017cytkownik\u00f3w, umo\u017cliwiaj\u0105c ka\u017cdemu u\u017cytkownikowi personalizacj\u0119 ustawie\u0144 wy\u015bwietlania, stanu odtwarzania i kontroli rodzicielskiej.", "WizardCompleted": "To wszystko co teraz potrzebujemy. Emby zacz\u0105\u0142 zbiera\u0107 informacje o twojej bibliotece medi\u00f3w. Sprawd\u017a nasze aplikacje, a nast\u0119pnie kliknij Koniec<\/b> aby zobaczy\u0107 Kokpit<\/b>.", - "LabelConfigureSettings": "Konfiguruj ustawienia", + "LabelConfigureSettings": "Konfiguracja ustawienia", "HeaderTermsOfService": "Warunki Us\u0142ugi Emby", "MessagePleaseAcceptTermsOfService": "Prosimy o zaakceptowanie warunk\u00f3w u\u017cytkowania oraz polityki prywatno\u015bci przed kontynuowaniem.", "OptionIAcceptTermsOfService": "Akceptuj\u0119 warunki u\u017cytkowania", @@ -19,12 +19,12 @@ "ButtonTermsOfService": "Warunki u\u017cytkowania", "ButtonConvertMedia": "Konwertuj media", "ButtonOrganize": "Organizuj", - "HeaderSupporterBenefits": "Korzy\u015bci z u\u017cywania Emby Premiere", + "HeaderSupporterBenefits": "Korzy\u015bci z subskrypcji Premium", "HeaderAddUser": "Dodaj u\u017cytkownika", "LabelAddConnectSupporterHelp": "Dodanie u\u017cytkownika, kt\u00f3rego nie ma na li\u015bcie, wymaga po\u0142\u0105czenia jego konta, z poziomu jego profilu, z us\u0142ug\u0105 Emby Connect.", "LabelPinCode": "Kod PIN:", "OptionHideWatchedContentFromLatestMedia": "Ukrywaj obejrzan\u0105 zawarto\u015b\u0107 z listy ostatnio dodanych", - "DeleteMedia": "Usu\u0144 media", + "DeleteMedia": "Usu\u0144 pozycj\u0119", "HeaderSync": "Synchronizacja", "HeaderUpcomingNews": "Nadchodz\u0105ce nowo\u015bci", "ButtonOk": "Ok", @@ -40,15 +40,15 @@ "HeaderVideo": "Wideo", "HeaderPaths": "Foldery", "CategorySync": "Synchronizacja", - "TabPlaylist": "Lista", - "HeaderInstantMix": "Natychmiastowy mix", + "TabPlaylist": "Lista odtwarzania", + "HeaderInstantMix": "Szybki remiks", "HeaderEasyPinCode": "\u0141atwy Kod Pin", "HeaderInstalledServices": "Zainstalowane us\u0142ugi", "HeaderAvailableServices": "Dost\u0119pne us\u0142ugi", "MessageNoServicesInstalled": "Brak zainstalowanych us\u0142ug.", "HeaderToAccessPleaseEnterEasyPinCode": "Wprowad\u017a kod, aby uzyska\u0107 dost\u0119p", "ButtonConfigurePinCode": "Konfiguruj kod pin", - "RegisterWithPayPal": "Zarejestruj z PayPal", + "RegisterWithPayPal": "Zarejestruj za pomoc\u0105 PayPal", "LabelSyncTempPath": "Folder plik\u00f3w tymczasowych:", "LabelSyncTempPathHelp": "Okre\u015bla w\u0142asny folder synchronizacji. Skonwertowane media, utworzone podczas synchronizacji, b\u0119d\u0105 zapisywane tutaj.", "LabelCustomCertificatePath": "Folder w\u0142asnego certyfikatu:", @@ -90,9 +90,9 @@ "TabNotifications": "Powiadomienia", "TabCollectionTitles": "Tytu\u0142y", "HeaderDeviceAccess": "Dost\u0119p urz\u0105dze\u0144", - "OptionEnableAccessFromAllDevices": "Umo\u017cliwiaj dost\u0119p z wszystkich urz\u0105dze\u0144", - "OptionEnableAccessToAllChannels": "Umo\u017cliwiaj dost\u0119p do wszystkich kana\u0142\u00f3w", - "OptionEnableAccessToAllLibraries": "Umo\u017cliwiaj dost\u0119p do wszystkich bibliotek", + "OptionEnableAccessFromAllDevices": "Udost\u0119pniaj dla wszystkich urz\u0105dze\u0144", + "OptionEnableAccessToAllChannels": "Udost\u0119pniaj wszystkie kana\u0142y", + "OptionEnableAccessToAllLibraries": "Udost\u0119pniaj wszystkie biblioteki", "DeviceAccessHelp": "Dotyczy to tylko urz\u0105dze\u0144, kt\u00f3re mog\u0105 zosta\u0107 niepowtarzalnie zidentyfikowane i nie blokuje dost\u0119pu przez przegl\u0105dark\u0119. Filtrowanie dost\u0119pu urz\u0105dze\u0144 u\u017cytkownik\u00f3w, uniemo\u017cliwi im korzystanie z urz\u0105dze\u0144, do momentu zatwierdzenia dost\u0119pu.", "LabelDisplayMissingEpisodesWithinSeasons": "Wy\u015bwietlaj w sezonach brakuj\u0105ce odcinki", "LabelDisplayMissingEpisodesWithinSeasonsHelp": "Ta opcja, musi zosta\u0107 dodatkowo aktywowana, w bibliotece seriali w konfiguracji serwera Emby.", @@ -126,7 +126,7 @@ "LabelMaxParentalRating": "Maksymalnie dozwolona kategoria wiekowa:", "MaxParentalRatingHelp": "Zawarto\u015b\u0107, z wy\u017csz\u0105 kategori\u0105 wiekow\u0105, b\u0119dzie ukryta przed tym u\u017cytkownikiem.", "LibraryAccessHelp": "Wybierz foldery medi\u00f3w do udostepnienia temu u\u017cytkownikowi. Administratorzy b\u0119d\u0105 mogli edytowa\u0107 wszystkie foldery u\u017cywaj\u0105\u0107 menagera metadanych", - "ChannelAccessHelp": "Wybierz kana\u0142y do udost\u0119pnienia temu u\u017cytkownikowi. Administratorzy b\u0119d\u0105 mogli edytowa\u0107 wszystkie kana\u0142y u\u017cywaj\u0105\u0107 menagera metadanych", + "ChannelAccessHelp": "Wybierz kana\u0142y do udost\u0119pnienia temu u\u017cytkownikowi. Administratorzy b\u0119d\u0105 mogli edytowa\u0107 wszystkie kana\u0142y u\u017cywaj\u0105c menad\u017cera metadanych", "ButtonDeleteImage": "Usu\u0144 obraz", "LabelSelectUsers": "Wybierz u\u017cytkownik\u00f3w", "ButtonUpload": "Wy\u015blij", @@ -134,11 +134,11 @@ "ImageUploadAspectRatioHelp": "Zalecane proporcje 1:1. Tylko JPG\/PNG.", "MessageNothingHere": "Nic tutaj nie ma.", "MessagePleaseEnsureInternetMetadata": "Upewnij si\u0119, \u017ce pobieranie metadanych z internetu jest aktywne.", - "AlreadyPaidHelp1": "Je\u015bli zap\u0142aci\u0142e\u015b za instalacj\u0119 starszej wersji aplikacji Media Browser dla Androida, nie musisz p\u0142aci\u0107 ponownie \u017ceby aktywowa\u0107 t\u0105 wersj\u0119. Kliknij OK aby wys\u0142a\u0107 nam email na adres {0} a my aktywujemy j\u0105 dla Ciebie.", - "AlreadyPaidHelp2": "Posiadasz subskrybcj\u0119 Emby Premiere? Anuluj to okno, ustaw Emby Premiere w panelu swojego serwera Emby u\u017cywaj\u0105c Pomoc -> Emby Premiere. Aplikacja zostanie odblokowana automatycznie.", + "AlreadyPaidHelp1": "Je\u015bli zap\u0142aci\u0142e\u015b za instalacj\u0119 starszej wersji aplikacji Media Browser dla Androida, nie musisz p\u0142aci\u0107 ponownie \u017ceby aktywowa\u0107 t\u0105 wersj\u0119. Naci\u015bnij OK, aby wys\u0142a\u0107 nam wiadomo\u015b\u0107 na adres {0}, a my aktywujemy j\u0105 dla Ciebie.", + "AlreadyPaidHelp2": "Posiadasz subskrypcj\u0119 Emby Premium? Wystarczy, \u017ce zamkniesz to okno, ustawisz w Kokpicie serwera, w zak\u0142adce Premium, dane subskrypcji Premium a aplikacja zostanie odblokowana automatycznie.", "TabSuggestions": "Polecane", "TabLatest": "Ostatnio dodane", - "TabUpcoming": "Nadchodz\u0105ce", + "TabUpcoming": "Wkr\u00f3tce", "TabShows": "Seriale", "TabEpisodes": "Odcinki", "TabGenres": "Gatunki", @@ -150,7 +150,7 @@ "OptionLikes": "Lubie", "OptionDislikes": "Nie Lubie", "OptionActors": "Aktorzy", - "OptionGuestStars": "Wyst\u0119py Go\u015bcinne", + "OptionGuestStars": "Go\u015b\u0107 specjalny", "OptionDirectors": "Re\u017cyserzy", "OptionWriters": "Scenarzy\u015bci", "OptionProducers": "Producenci", @@ -163,8 +163,8 @@ "HeaderPersonTypes": "Typy Os\u00f3b:", "TabSongs": "Utwory", "TabAlbums": "Albumy", - "TabArtists": "Arty\u015bci", - "TabAlbumArtists": "Arty\u015bci albumu", + "TabArtists": "Wykonawcy", + "TabAlbumArtists": "Wykonawcy albumu", "TabMusicVideos": "Teledyski", "ButtonSort": "Sortuj", "OptionPlayed": "Obejrzany", @@ -176,8 +176,8 @@ "OptionPlayCount": "Liczba odtworze\u0144", "OptionDatePlayed": "Data odtwarzania", "OptionDateAdded": "Data dodania", - "OptionAlbumArtist": "Artysta albumu", - "OptionArtist": "Artysta", + "OptionAlbumArtist": "Wykonawca albumu", + "OptionArtist": "Wykonawca", "OptionAlbum": "Album", "OptionTrackName": "Nazwa utworu", "OptionCommunityRating": "Ocena spo\u0142eczno\u015bci", @@ -199,7 +199,7 @@ "TabMyPlugins": "Moje wtyczki", "TabCatalog": "Katalog", "TitlePlugins": "Wtyczki", - "HeaderAutomaticUpdates": "Automatyczne Aktualizacje", + "HeaderAutomaticUpdates": "Aktualizacje automatyczne", "HeaderNowPlaying": "Teraz Odtwarzane", "HeaderLatestAlbums": "Albumy ostatnio dodane", "HeaderLatestSongs": "Utwory ostatnio dodane", @@ -219,8 +219,8 @@ "TabMovies": "Filmy", "TabStudios": "Studia", "TabTrailers": "Zwiastuny", - "LabelArtists": "Arty\u015bci:", - "LabelArtistsHelp": "Oddziel wiele u\u017cywaj\u0105c ;", + "LabelArtists": "Wykonawcyi:", + "LabelArtistsHelp": "Oddziel u\u017cywaj\u0105c ;", "HeaderLatestTrailers": "Zwiastuny ostatnio dodane", "OptionHasSpecialFeatures": "Funkcje Specjalne", "OptionImdbRating": "Ocena IMDb", @@ -249,35 +249,35 @@ "LabelManagement": "Zarz\u0105dzanie:", "OptionMissingImdbId": "Brakuje identyfikatora IMDb", "OptionMissingTvdbId": "Brakuje identyfikatora TheTVDB", - "OptionMissingOverview": "Brakuje Opisu", + "OptionMissingOverview": "Brak opisu", "TabGeneral": "Og\u00f3lne", "TitleSupport": "Wsparcie", "TabAbout": "O programie", - "TabSupporterKey": "Wprowad\u017a Klucz Premiere", - "TabBecomeSupporter": "Zdob\u0105d\u017a Klucz Premiere", - "TabEmbyPremiere": "Emby Premiere", + "TabSupporterKey": "Klucz subskrypcji Premium", + "TabBecomeSupporter": "Zam\u00f3w subskrypcj\u0119 Emby Premium", + "TabEmbyPremiere": "Premium", "ProjectHasCommunity": "Emby ma kwitn\u0105c\u0105 spo\u0142eczno\u015b\u0107 u\u017cytkownik\u00f3w i tw\u00f3rc\u00f3w.", "SearchKnowledgeBase": "Przeszukaj Baz\u0119 Wiedzy", "VisitTheCommunity": "Odwied\u017a spo\u0142eczno\u015b\u0107", "VisitProjectWebsite": "Odwied\u017a stron\u0119 Emby", - "VisitProjectWebsiteLong": "Odwied\u017a stron\u0119 Emby i b\u0105d\u017a na bierz\u0105co z wiadomo\u015bciami i blogiem deweloper\u00f3w.", - "OptionHideUser": "Ukryj tego u\u017cytkownika z ekran\u00f3w logowania", - "OptionHideUserFromLoginHelp": "Przydatne dla prywatno\u015bci lub ukrycia kont administrator\u00f3w. Uzytkownik b\u0119dzie musia\u0142 wprowadzi\u0107 r\u0119cznie nazw\u0119 u\u017cytkownika i has\u0142o.", + "VisitProjectWebsiteLong": "Odwied\u017a stron\u0119 Emby i b\u0105d\u017a na bie\u017c\u0105co z wiadomo\u015bciami i blogiem deweloper\u00f3w.", + "OptionHideUser": "Ukrywaj tego u\u017cytkownika na ekranie logowania", + "OptionHideUserFromLoginHelp": "Przydatne dla prywatno\u015bci lub ukrycia kont administrator\u00f3w. U\u017cytkownik b\u0119dzie musia\u0142 wprowadzi\u0107 nazw\u0119 u\u017cytkownika i has\u0142o manualnie.", "OptionDisableUser": "Deaktywuj tego u\u017cytkownika", - "OptionDisableUserHelp": "Je\u015bli wy\u0142aczone serwer nie pozwoli na \u017cadne po\u0142aczenia od tego u\u017cytkownika. Istniej\u0105ce po\u0142aczenia bed\u0105 nagle zako\u0144czone.", + "OptionDisableUserHelp": "Je\u015bli aktywne, serwer nie pozwoli na \u017cadne po\u0142\u0105czenia tego u\u017cytkownika. Aktywne po\u0142\u0105czenia zostan\u0105 natychmiastowo zerwane.", "LabelName": "Nazwa:", "ButtonHelp": "Pomoc", - "OptionAllowUserToManageServer": "Pozw\u00f3l temu u\u017cytkownikowi na zarz\u0105dzanie serwerem", + "OptionAllowUserToManageServer": "Zezwalaj temu u\u017cytkownikowi na zarz\u0105dzanie serwerem", "HeaderFeatureAccess": "Dost\u0119p do Funckji", - "OptionAllowMediaPlayback": "Pozw\u00f3l na odtwarzanie medi\u00f3w", - "OptionAllowBrowsingLiveTv": "Pozw\u00f3l na dost\u0119p do Live TV", - "OptionAllowDeleteLibraryContent": "Pozw\u00f3l na usuwanie medi\u00f3w", - "OptionAllowManageLiveTv": "Pozw\u00f3l na zarz\u0105dzanie nagrywaniem Live TV", - "OptionAllowRemoteControlOthers": "Pozw\u00f3l na zdalne sterowanie innych uzytkownik\u00f3w", - "OptionAllowRemoteSharedDevices": "Pozw\u00f3l na zdalne sterowanie udostepnionymi urz\u0105dzeniami", - "OptionAllowRemoteSharedDevicesHelp": "Urz\u0105dzenia dlna s\u0105 uwa\u017canie jako udostepnione dop\u00f3ki u\u017cytkonik nie zacznie nimi sterowa\u0107.", - "OptionAllowLinkSharing": "Zezwala\u0144 na udost\u0119pnienie w sieciach spo\u0142eczno\u015bciowych", - "OptionAllowLinkSharingHelp": "Tylko strony zawieraj\u0105ce informacje o mediach s\u0105 udost\u0119pnione. Media nie s\u0105 udost\u0119pniane publicznie. Udost\u0119pnienia s\u0105 ograniczone czasowo i wygasn\u0105 po {0} dniach.", + "OptionAllowMediaPlayback": "Zezwalaj na odtwarzanie medi\u00f3w", + "OptionAllowBrowsingLiveTv": "Udost\u0119pniaj telewizj\u0119", + "OptionAllowDeleteLibraryContent": "Zezwalaj na usuwanie medi\u00f3w", + "OptionAllowManageLiveTv": "Zezwalaj na zarz\u0105dzanie nagrywaniem telewizji", + "OptionAllowRemoteControlOthers": "Zezwalaj na zdalne sterowanie innych u\u017cytkownik\u00f3w", + "OptionAllowRemoteSharedDevices": "Zezwalaj na zdalne sterowanie urz\u0105dzeniami wsp\u00f3\u0142dzielonymi", + "OptionAllowRemoteSharedDevicesHelp": "Urz\u0105dzenia DLNA uwa\u017cane s\u0105 wsp\u00f3\u0142dzielone, dop\u00f3ki u\u017cytkownik nie zacznie nimi sterowa\u0107.", + "OptionAllowLinkSharing": "Zezwalaj na udost\u0119pnienie w sieciach spo\u0142eczno\u015bciowych", + "OptionAllowLinkSharingHelp": "Tylko strony zawieraj\u0105ce informacje o mediach s\u0105 udost\u0119pnione. Media nigdy nie s\u0105 udost\u0119pniane publicznie. Udost\u0119pnienia s\u0105 ograniczone czasowo i wygasn\u0105 po {0} dniach.", "HeaderRemoteControl": "Zdalne Sterowanie", "OptionMissingTmdbId": "Brakuje Tmdb id", "OptionIsHD": "HD", @@ -293,18 +293,18 @@ "TabServer": "Serwer", "TabTranscoding": "Transkodowanie", "OptionRelease": "Oficjalne Wydanie", - "LabelAllowServerAutoRestart": "Pozw\u00f3l serwerowi na automatyczny restart aby zainstalowa\u0107 aktualizacj\u0119", + "LabelAllowServerAutoRestart": "Zezwalaj serwerowi na automatyczne ponowne uruchomienie, w celu instalacji aktualizacji", "LabelAllowServerAutoRestartHelp": "Serwer zrestartuj\u0119 si\u0119 tylko raz podczas okresu bezczynno\u015bci, kiedy nie ma aktywnych u\u017cytkownik\u00f3w.", "LabelRunServerAtStartup": "Uruchom serwer na starcie", "LabelRunServerAtStartupHelp": "Opcja uruchomi ikon\u0119 paska zada\u0144 na starcie systemu windows. Aby uruchomi\u0107 us\u0142ug\u0119 windows, odznacz t\u0105 opcj\u0119 i uruchom us\u0142ug\u0119 z panelu sterowania windows. Uwaga, nie mo\u017cna uruchomi\u0107 jednocze\u015bnie obu, nale\u017cy wy\u0142aczy\u0107 ikon\u0119 paska zada\u0144 przed startem us\u0142ugi.", - "ButtonSelectDirectory": "Wybierz Katalog", + "ButtonSelectDirectory": "Wybierz folder", "LabelCachePath": "Folder bufora:", "DefaultMetadataLangaugeDescription": "To s\u0105 twoje ustawienia domy\u015blne. Mo\u017cesz je zmieni\u0107 dla ka\u017cdej biblioteki osobno.", "LabelCachePathHelp": "Okre\u015bl w\u0142asn\u0105 lokalizacje dla plik\u00f3w cache serwera, takich jak obrazy. Pozostaw puste aby u\u017cy\u0107 domy\u015blnych serwera.", "LabelRecordingPath": "Folder domy\u015blny nagra\u0144:", "LabelMovieRecordingPath": "Folder nagrywania film\u00f3w (opcjonalne):", "LabelSeriesRecordingPath": "Folder nagrywania seriali (opcjonalne):", - "LabelRecordingPathHelp": "Okre\u015bl domy\u015bln\u0105 lokalizacj\u0119 zapisywania nagra\u0144. Je\u015bli pozostanie pusta, zostan\u0105 one zapisane w katalogu danych serwera.", + "LabelRecordingPathHelp": "Okre\u015bl domy\u015bln\u0105 lokalizacj\u0119 zapisywania nagra\u0144. Je\u015bli pozostanie pusta, zostan\u0105 one zapisane w folderze danych serwera.", "LabelMetadataPath": "Folder metadanych:", "LabelMetadataPathHelp": "Okre\u015bl w\u0142asn\u0105 lokalizacja dla pobranych artwork\u00f3w i metadanych.", "LabelTranscodingTempPath": "Folder tymczasowy transkodowania:", @@ -322,11 +322,11 @@ "ExtractChapterImagesHelp": "Wyodr\u0119bianie obraz\u00f3w rozdzia\u0142\u00f3w pozwoli aplikacjom Emby, na wy\u015bwietlanie graficznego menu wyboru scen. Proces ten mo\u017ce by\u0107 wolny, mocno wykorzystuj\u0105cy procesor i mo\u017ce wymaga\u0107 kilku gigabajt\u00f3w przestrzeni dyskowej. Jest uruchamiany gdy filmy s\u0105 wykrywane oraz podczas nocnych zaplanowanych zada\u0144. Zadania s\u0105 konfigurowalne w cz\u0119\u015bci zaplanowanych zada\u0144. Nie jest zalecane uruchamianie tego zadania podczas szczytowych godzin u\u017cycia serwera.", "LabelMetadataDownloadLanguage": "Preferowany j\u0119zyk metadanych:", "ButtonSignIn": "Zaloguj si\u0119", - "TitleSignIn": "Zaloguj si\u0119", + "TitleSignIn": "Zaloguj", "HeaderPleaseSignIn": "Prosz\u0119 zaloguj si\u0119", "LabelUser": "U\u017cytkownik:", "LabelPassword": "Has\u0142o:", - "ButtonManualLogin": "Logowanie R\u0119czne", + "ButtonManualLogin": "Logowanie manualne", "TabGuide": "Przewodnik", "TabChannels": "Kana\u0142y", "TabCollections": "Kolekcje", @@ -344,7 +344,7 @@ "ButtonRefresh": "Od\u015bwie\u017c", "OptionPriority": "Priorytet", "OptionRecordOnAllChannels": "Nagrywaj na wszystkich kana\u0142ach", - "OptionRecordAnytime": "Nagrywaj o ka\u017cdym czasie", + "OptionRecordAnytime": "Nagrywaj o dowolnej porze", "OptionRecordOnlyNewEpisodes": "Nagrywaj tylko nowe odcinki", "HeaderDays": "Dni", "HeaderActiveRecordings": "Aktywne Nagrania", @@ -354,11 +354,11 @@ "ButtonRecord": "Nagrywaj", "ButtonDelete": "Usu\u0144", "ButtonRemove": "Usu\u0144", - "OptionRecordSeries": "Nagrywaj Serial", + "OptionRecordSeries": "Nagrywaj serial", "HeaderDetails": "Szczeg\u00f3\u0142y", "TitleLiveTV": "Telewizja", - "LabelNumberOfGuideDays": "Liczba dni programu TV do \u015bci\u0105gni\u0119cia", - "LabelNumberOfGuideDaysHelp": "\u015aci\u0105gni\u0119cie wi\u0119kszej ilo\u015bci dni programu TV pozwoli na zaplanowanie zada\u0144 na d\u0142u\u017cszy okres i wy\u015bwietlenie wi\u0119kszej listy, ale wyd\u0142u\u017cy tak\u017ce czas na jego pobranie. Automatycznie wybierze na podstawie liczby kana\u0142\u00f3w.", + "LabelNumberOfGuideDays": "Liczba dni pobieranych danych przewodnika:", + "LabelNumberOfGuideDaysHelp": "Pobieranie wi\u0119kszej liczby dni danych przewodnika, pozwoli na zaplanowanie zada\u0144 na d\u0142u\u017cszy okres i wy\u015bwietlanie wi\u0119kszej listy, ale wyd\u0142u\u017cy tak\u017ce czas na jego pobranie. Automatycznie wybierze na podstawie liczby kana\u0142\u00f3w.", "OptionAutomatic": "Automatycznie", "HeaderServices": "Us\u0142ugi", "LabelCustomizeOptionsPerMediaType": "Dostosuj dla typu medi\u00f3w:", @@ -366,18 +366,18 @@ "OptionDownloadMenuImage": "Menu", "OptionDownloadLogoImage": "Logo", "OptionDownloadBoxImage": "Pude\u0142ko", - "OptionDownloadDiscImage": "P\u0142yta", + "OptionDownloadDiscImage": "Dysk", "OptionDownloadBannerImage": "Baner", "OptionDownloadBackImage": "Wstecz", "OptionDownloadArtImage": "Grafika", "OptionDownloadPrimaryImage": "Podstawowy", "HeaderFetchImages": "Pobierz Obrazy:", - "HeaderImageSettings": "Ustawienia Obraz\u00f3w", + "HeaderImageSettings": "Ustawienia obraz\u00f3w", "TabOther": "Inne", "LabelMaxBackdropsPerItem": "Maksymalna liczba te\u0142 na pozycj\u0119:", "LabelMaxScreenshotsPerItem": "Maksymalna ilo\u015b\u0107 zrzut\u00f3w ekranu na pozycj\u0119:", "LabelMinBackdropDownloadWidth": "Minimalna szeroko\u015b\u0107 pobieranego t\u0142a :", - "LabelMinScreenshotDownloadWidth": "Minimalny szeroko\u015b\u0107 pobieranego zrzut ekranu:", + "LabelMinScreenshotDownloadWidth": "Minimalna szeroko\u015b\u0107 pobieranego zrzutu ekranu:", "ButtonAddScheduledTaskTrigger": "Dodaj Wyzwalacz", "HeaderAddScheduledTaskTrigger": "Dodaj Wyzwalacz", "ButtonAdd": "Dodaj", @@ -411,7 +411,7 @@ "HeaderThemeVideos": "Video Motyw\u00f3w", "HeaderThemeSongs": "Motywy muzyczne", "HeaderScenes": "Sceny", - "HeaderAwardsAndReviews": "Nagrody i Recenzje", + "HeaderAwardsAndReviews": "Nagrody i recenzje", "HeaderMusicVideos": "Teledyski", "HeaderSpecialFeatures": "Funkcje specjalne", "HeaderCastCrew": "Obsada i ekipa", @@ -424,19 +424,19 @@ "OptionUnairedEpisode": "Odcinki o planowanej emisji", "OptionEpisodeSortName": "Kr\u00f3tka Nazwa Odcinka", "OptionTvdbRating": "Ocena Tvdb", - "HeaderAddTitles": "Dodaj Tytu\u0142y", + "HeaderAddTitles": "Dodaj tytu\u0142y", "LabelEnableDlnaPlayTo": "Aktywuj funkcj\u0119 DLNA Play To", "LabelEnableDlnaPlayToHelp": "Emby mo\u017ce wykrywa\u0107 urz\u0105dzenia w twojej sieci i proponowa\u0107 mo\u017cliwo\u015b\u0107 ich zdalnej kontroli", "LabelEnableDlnaDebugLogging": "Rejestruj komunikaty diagnostyczne DLNA", - "LabelEnableDlnaDebugLoggingHelp": "To tworzy bardzo du\u017ce pliki log\u00f3w i jest tylko wymagane dla potrzeb troubleshootingu.", - "LabelEnableDlnaClientDiscoveryInterval": "Interwa\u0142 wykrywania klient\u00f3w (sekundy)", - "LabelEnableDlnaClientDiscoveryIntervalHelp": "Okre\u015bl czas w sekundach pomi\u0119dzy wyszukiwaniami SSDP wykonywanymi przez Emby.", - "HeaderCustomDlnaProfiles": "Profile W\u0142asne", - "HeaderSystemDlnaProfiles": "Profile Systemowe", - "CustomDlnaProfilesHelp": "Utw\u00f3rz w\u0142asny profil dla nowego urz\u0105dzenia lub nadpisz profil systemowy.", - "SystemDlnaProfilesHelp": "Profil systemowy jest tylko do odczytu. Zmiany do profilu systemowego b\u0119dzie zapisane jako nowy profil w\u0142asny.", + "LabelEnableDlnaDebugLoggingHelp": "Spowoduje to tworzenie ogromnych plik\u00f3w dziennika diagnostycznego i powinno by\u0107 u\u017cywane tylko w przypadku rozwi\u0105zywania problem\u00f3w.", + "LabelEnableDlnaClientDiscoveryInterval": "Cz\u0119stotliwo\u015b\u0107 wykrywania klient\u00f3w (sekundy)", + "LabelEnableDlnaClientDiscoveryIntervalHelp": "Okre\u015bla czas w sekundach, pomi\u0119dzy wyszukiwaniami SSDP, wykonywanymi przez Emby.", + "HeaderCustomDlnaProfiles": "Profile niestandardowe", + "HeaderSystemDlnaProfiles": "Profile systemowe", + "CustomDlnaProfilesHelp": "Utw\u00f3rz niestandardowy profil dla nowego urz\u0105dzenia lub nadpisz profil systemowy.", + "SystemDlnaProfilesHelp": "Profile systemowe s\u0105 dost\u0119pne tylko do odczytu. Zmiany w profilu systemowym b\u0119d\u0105 zapisane do nowego profilu niestandardowy.", "TabHome": "Start", - "TabInfo": "Info", + "TabInfo": "Informacje", "HeaderLinks": "Likni", "LinkCommunity": "Spo\u0142eczno\u015b\u0107", "LinkGithub": "Github", @@ -464,13 +464,13 @@ "LabelEnableAutomaticPortMapHelp": "Pr\u00f3bowa\u0107 automatycznie zmapowa\u0107 publiczny nr portu do lokalnego numeru portu przez UPnP. Opcja ta mo\u017ce nie dzia\u0142a z niekt\u00f3rymi modelami router\u00f3w.", "LabelExternalDDNS": "Domena zewn\u0119trzna:", "LabelExternalDDNSHelp": "Je\u015bli masz dynamiczne DNS wprowad\u017a je tutaj. Aplikacje Emby u\u017cyj\u0105 jej podczas po\u0142\u0105czenia. To pole jest wymagane kiedy u\u017cywasz niestandardowego certyfikatu SSL.", - "TitleAppSettings": "Ustawienia Aplikacji", + "TitleAppSettings": "Ustawienia aplikacji", "LabelMinResumePercentage": "Minimalny procent dla wznowienia", "LabelMaxResumePercentage": "Maksymalny procent dla wznowienia", "LabelMinResumeDuration": "Minimalny czas dla wznowienia (sekundy)", "LabelMinResumePercentageHelp": "Tytu\u0142y s\u0105 traktowane jako nieobejrzane, je\u015bli zosta\u0142y zatrzymane przed tym czasem", "LabelMaxResumePercentageHelp": "Tytu\u0142y s\u0105 traktowane jako w pe\u0142ni obejrzane, je\u015bli zosta\u0142y zatrzymane po tym czasie", - "LabelMinResumeDurationHelp": "Tytu\u0142y kr\u00f3tsze ni\u017c nie b\u0119d\u0105 wznawiane", + "LabelMinResumeDurationHelp": "Umo\u017cliwiaj wznawianie tytu\u0142\u00f3w d\u0142u\u017cszych ni\u017c", "TabActivityLog": "Dziennik Aktywno\u015bci", "TabSmartMatches": "Inteligentne dopasowania", "TabSmartMatchInfo": "Zarz\u0105dzaj inteligentnymi dopasowaniami, kt\u00f3re zosta\u0142y dodane przy u\u017cyciu dodatku Organizator.", @@ -490,9 +490,9 @@ "LabelEndingEpisodeNumber": "Numer ostatniego odcinka:", "LabelEndingEpisodeNumberHelp": "Wymagane tylko dla wielo-odcinkowych plik\u00f3w", "OptionRememberOrganizeCorrection": "Zapisz i zastosuj t\u0119 korekcj\u0119 na plikach z podobnymi nazwami dodanymi w przysz\u0142o\u015bci", - "HeaderSupportTheTeam": "Wesprzyj dru\u017cyn\u0119 Emby", + "HeaderSupportTheTeam": "Wesprzyj zesp\u00f3\u0142 Emby", "HeaderSupportTheTeamHelp": "Pom\u00f3\u017c zapewni\u0107 kontynuowanie rozwoju tego projektu poprzez zakup Emby Premiere. Cz\u0119\u015b\u0107 ca\u0142ego dochodu b\u0119dzie przekazana na wsparcie innych narz\u0119dzi na kt\u00f3rych Emby polega.", - "DonationNextStep": "Po zako\u0144czeniu, prosz\u0119 wr\u00f3\u0107 i wprowad\u017a klucz Emby Premiere, kt\u00f3ry otrzymasz na email.", + "DonationNextStep": "Po zako\u0144czeniu, prosz\u0119 wr\u00f3\u0107 i wprowad\u017a klucz Emby Premium, kt\u00f3ry otrzymasz na wiadomo\u015bci\u0105 pocztow\u0105.", "AutoOrganizeHelp": "Organizator monitoruje foldery pobierania pod k\u0105tem nowych plik\u00f3w i przenosi je do odpowiednich folder\u00f3w medi\u00f3w.", "OptionEnableEpisodeOrganization": "W\u0142\u0105cz organizacj\u0119 nowego serialu", "LabelWatchFolder": "Obserwowany folder:", @@ -505,7 +505,7 @@ "LabelEpisodePattern": "Wz\u00f3r odcinka:", "LabelMultiEpisodePattern": "Wz\u00f3r wieloodcinkowi:", "HeaderSupportedPatterns": "Wzory Wspierane", - "HeaderTerm": "Termin", + "HeaderTerm": "Wyra\u017cenie", "HeaderPattern": "Wz\u00f3r", "HeaderResult": "Wynik", "LabelDeleteEmptyFolders": "Usuwaj puste foldery po organizacji", @@ -516,7 +516,7 @@ "LabelTransferMethod": "Metoda transferu", "OptionCopy": "Kopiuj", "OptionMove": "Przenie\u015b", - "LabelTransferMethodHelp": "Kopiuj lub przenie\u015b pliki z obserwowanego katalogu", + "LabelTransferMethodHelp": "Kopiuj lub przenie\u015b pliki z obserwowanego folderu", "HeaderLatestNews": "Najnowsze wiadomo\u015bci", "HeaderRunningTasks": "Aktywne Zadania", "HeaderActiveDevices": "Aktywne Urz\u0105dzenia", @@ -525,37 +525,37 @@ "ButtonRestart": "Uruchom ponownie", "ButtonShutdown": "Zamknij", "ButtonUpdateNow": "Aktualizuj Teraz", - "TabHosting": "Hosting", + "TabHosting": "Us\u0142uga", "PleaseUpdateManually": "Prosz\u0119 zamknij serwer i zainstaluj najnowsz\u0105 wersj\u0119 manualnie.", "NewServerVersionAvailable": "Nowa wersja Serwera Emby jest dost\u0119pna!", "ServerUpToDate": "Serwer Emby jest aktualny", "LabelComponentsUpdated": "Nast\u0119puj\u0105ce elementy zosta\u0142y zainstalowane lub zaktualizowane:", - "MessagePleaseRestartServerToFinishUpdating": "Prosz\u0119 zrestartuj serwer aby uko\u0144czy\u0107 aktualizacje.", + "MessagePleaseRestartServerToFinishUpdating": "Uruchom serwer ponownie, aby zako\u0144czy\u0107 stosowanie aktualizacji.", "LabelDownMixAudioScale": "Wzmocnienie audio podczas downmixingu:", "LabelDownMixAudioScaleHelp": "Wzmocnij audio podczas downmixingu. Ustaw 1 aby zachowa\u0107 oryginaln\u0105 warto\u015b\u0107 g\u0142o\u015bno\u015bci.", "HeaderMultipleKeyLinking": "Przenie\u015b do Nowego Klucza", - "MultipleKeyLinkingHelp": "Je\u015bli otrzyma\u0142e\u015b nowy klucz Emby Premiere, u\u017cyj tego formularza aby przenie\u015b\u0107 rejestracje starego klucza do nowego.", + "MultipleKeyLinkingHelp": "Je\u015bli otrzyma\u0142e\u015b nowy klucz Emby Premium, u\u017cyj tego formularza, aby przenie\u015b\u0107 rejestracj\u0119 starego klucza do nowego.", "LabelCurrentEmailAddress": "Aktualny adres email", "LabelCurrentEmailAddressHelp": "Aktualny adres email na kt\u00f3ry zosta\u0142 przes\u0142any nowy klucz.", "HeaderForgotKey": "Zapomnia\u0142e\u015b Klucz", "LabelEmailAddress": "Adres email", "LabelSupporterEmailAddress": "Adres email kt\u00f3ry by\u0142 u\u017cyty do zakupu klucza.", "ButtonRetrieveKey": "Odzyskaj Klucz", - "LabelSupporterKey": "Wprowad\u017a klucz Emby Premiere (wklej z emaila):", - "LabelSupporterKeyHelp": "Wprowad\u017a sw\u00f3j klucz Emby Premiere i zacznij korzysta\u0107 z dodatkowych korzy\u015bci, kt\u00f3re stworzy\u0142a spo\u0142eczno\u015b\u0107 dla Emby.", - "MessageInvalidKey": "Klucz Emby Premiere jest nieobecny lub nieprawid\u0142owy.", - "ErrorMessageInvalidKey": "Aby jakakolwiek zawarto\u015b\u0107 premium by\u0142a zarejestrowana, musisz posiada\u0107 aktywn\u0105 subskrypcje Emby Premiere.", + "LabelSupporterKey": "Wprowad\u017a klucz Emby Premium (wklej z wiadomo\u015bci pocztowej):", + "LabelSupporterKeyHelp": "Wprowad\u017a sw\u00f3j klucz Emby Premium i zacznij korzysta\u0107 z korzy\u015bci, jakie stworzy\u0142a spo\u0142eczno\u015b\u0107 dla Emby.", + "MessageInvalidKey": "Klucz Emby Premium nie istnieje lub jest nieprawid\u0142owy.", + "ErrorMessageInvalidKey": "Aby jakakolwiek zawarto\u015b\u0107 premium by\u0142a zarejestrowana, musisz posiada\u0107 aktywn\u0105 subskrypcje Emby Premium.", "HeaderDisplaySettings": "Ustawienia wy\u015bwietlania", - "LabelEnableDlnaServer": "Aktywuj serwer Dlna", - "LabelEnableDlnaServerHelp": "Zezwalaj urz\u0105dzeniom UPnP w twojej sieci na przegl\u0105danie i odtwarzanie zawarto\u015bci Emby.", + "LabelEnableDlnaServer": "Aktywuj serwer DLNA", + "LabelEnableDlnaServerHelp": "Umo\u017cliwia urz\u0105dzeniom UPnP w sieci domowej, na przegl\u0105danie i odtwarzanie zawarto\u015bci Emby.", "LabelEnableBlastAliveMessages": "Przesy\u0142aj komunikaty o dost\u0119pno\u015bci", "LabelEnableBlastAliveMessagesHelp": "W\u0142\u0105cz to je\u017celi serwer nie jest odpowiednio wykrywany przez inne urz\u0105dzenia UPnP w twojej sieci.", "LabelBlastMessageInterval": "Cz\u0119stotliwo\u015b\u0107 komunikat\u00f3w o dost\u0119pno\u015bci (sekundy)", "LabelBlastMessageIntervalHelp": "Okre\u015bla cz\u0119stotliwo\u015b\u0107, wyra\u017con\u0105 w sekundach, przesy\u0142ania komunikat\u00f3w o dost\u0119pno\u015bci serwera.", "LabelDefaultUser": "Domy\u015blny u\u017cytkownik:", "LabelDefaultUserHelp": "Okre\u015bla kt\u00f3re biblioteki u\u017cytkownika powinny by\u0107 wy\u015bwietlane na pod\u0142\u0105czonych urz\u0105dzeniach. Mo\u017ce to by\u0107 nadpisane dla ka\u017cdego urz\u0105dzenia u\u017cywaj\u0105c profili.", - "HeaderServerSettings": "Ustawienia Serwera", - "HeaderRequireManualLogin": "Wymagaj r\u0119cznego wprowadzenia nazwy u\u017cytkownika dla:", + "HeaderServerSettings": "Ustawienia serwera", + "HeaderRequireManualLogin": "Wymagaj manualnego wprowadzania nazwy u\u017cytkownika dla:", "HeaderRequireManualLoginHelp": "Je\u015bli nieaktywne, aplikacje Emby mog\u0105 wy\u015bwietla\u0107 ekran logowania, z wizualnym wyborem u\u017cytkownika.", "OptionOtherApps": "Inne aplikacje", "OptionMobileApps": "Aplikacje Mobilne", @@ -569,7 +569,7 @@ "CategoryPlugin": "Wtyczka", "LabelAvailableTokens": "Dost\u0119pne tokeny:", "AdditionalNotificationServices": "Przegl\u0105daj katalog wtyczek, aby zainstalowa\u0107 dodatkowe us\u0142ugi powiadomie\u0144.", - "OptionAllUsers": "Wszyscy U\u017cytkownicy", + "OptionAllUsers": "Wszyscy u\u017cytkownicy", "OptionAdminUsers": "Administratorzy", "OptionCustomUsers": "W\u0142asne", "ButtonArrowUp": "G\u00f3ra", @@ -577,7 +577,7 @@ "ButtonArrowLeft": "Lewa", "ButtonArrowRight": "Prawa", "ButtonBack": "Wstecz", - "ButtonInfo": "Info", + "ButtonInfo": "Informacje", "ButtonOsd": "Menu ekranowe", "ButtonHome": "Start", "ButtonSearch": "Szukaj", @@ -589,11 +589,11 @@ "Audio": "D\u017awi\u0119k", "Rewind": "Do ty\u0142u", "Fullscreen": "Pe\u0142ny ekran", - "ExitFullscreen": "Wy\u0142\u0105cz pe\u0142ny ekran", + "ExitFullscreen": "Opu\u015b\u0107 pe\u0142ny ekran", "PictureInPicture": "Obraz w obrazie", "PlayOnAnotherDevice": "Odtw\u00f3rz na innym urz\u0105dzeniu", "FastForward": "Do przodu", - "ButtonTakeScreenshot": "Zrzut Ekranu", + "ButtonTakeScreenshot": "Zapisz zrzut ekranu", "LetterButtonAbbreviation": "A", "TabNowPlaying": "Odtwarzane teraz", "TabNavigation": "Nawigacja", @@ -610,10 +610,10 @@ "ButtonVolumeUp": "G\u0142o\u015bno\u015b\u0107 w g\u00f3re", "ButtonVolumeDown": "G\u0142o\u015bno\u015b\u0107 w d\u00f3\u0142", "HeaderLatestMedia": "Ostatnio dodane", - "OptionNoSubtitles": "Bez Napis\u00f3w", + "OptionNoSubtitles": "Brak napis\u00f3w", "HeaderCollections": "Kolekcje", "LabelProfileCodecsHelp": "Oddzielone przecinkiem. Zostaw puste aby zastosowa\u0107 wszystkie kodeki.", - "LabelProfileContainersHelp": "Oddzielone przecinkiem. Zostaw puste aby zastosowa\u0107 wszystkie kontenery.", + "LabelProfileContainersHelp": "Oddzielone przecinkiem. Pozostaw puste, aby zastosowa\u0107 dla wszystkich kontener\u00f3w.", "HeaderResponseProfile": "Profil Odpowiedzi", "LabelType": "Typ:", "LabelProfileContainer": "Kontener:", @@ -625,15 +625,15 @@ "HeaderCodecProfile": "Profil Kodek\u00f3w", "HeaderContainerProfile": "Profil Kontenera", "OptionProfileVideo": "Wideo", - "OptionProfileAudio": "Audio", + "OptionProfileAudio": "D\u017awi\u0119k", "OptionProfileVideoAudio": "Wideo Audio", "OptionProfilePhoto": "Zdj\u0119cie", "LabelUserLibrary": "Biblioteka u\u017cytkownika:", "LabelUserLibraryHelp": "Wybierz, kt\u00f3r\u0105 bibliotek\u0119 u\u017cytkownika wy\u015bwietla\u0107 na urz\u0105dzeniu. Zostaw puste, aby odziedziczy\u0107 domy\u015blne ustawienia.", "OptionPlainStorageFolders": "Wy\u015bwietlaj wszystkie foldery jako zwyczajne foldery", - "OptionPlainStorageFoldersHelp": "Je\u017celi w\u0142\u0105czone, wszystkie foldery s\u0105 reprezentowane w DIDL jako \"object.container.storageFolder\" zamiast bardziej dok\u0142adnych typ\u00f3w takich jak \"object.container.person.musicArtist\".", + "OptionPlainStorageFoldersHelp": "Je\u017celi aktywne, wszystkie foldery s\u0105 reprezentowane w DIDL jako \"object.container.storageFolder\" zamiast bardziej dok\u0142adnych typ\u00f3w takich jak \"object.container.person.musicArtist\".", "OptionPlainVideoItems": "Wy\u015bwietlaj wszystkie wideo jako zwyczajne pozycje", - "OptionPlainVideoItemsHelp": "Je\u017celi w\u0142\u0105czone, wszystkie wideo s\u0105 reprezentowane w DIDL jako \"object.item.videoitem\" zamiast bardziej dok\u0142adnych typ\u00f3w takich jak \"object.item.videoitem.movie\".", + "OptionPlainVideoItemsHelp": "Je\u017celi Aktywne, wszystkie wideo s\u0105 reprezentowane w DIDL jako \"object.item.videoitem\" zamiast bardziej dok\u0142adnych typ\u00f3w takich jak \"object.item.videoitem.movie\".", "LabelSupportedMediaTypes": "Wspierane Typy Medi\u00f3w", "HeaderIdentification": "Identyfikacja", "TabDirectPlay": "Odtwarzanie Bezposrednie", @@ -695,17 +695,17 @@ "OptionEstimateContentLength": "Okre\u015bl d\u0142ugo\u015b\u0107 zawarto\u015bci podczas transkodowania", "OptionReportByteRangeSeekingWhenTranscoding": "Zg\u0142o\u015b wsparcie serwera dla przeszukiwania podczas transkodowania", "OptionReportByteRangeSeekingWhenTranscodingHelp": "To jest wymagane tylko dla niekt\u00f3rych urz\u0105dze\u0144 kt\u00f3re nie wspieraj\u0105 przeszukiwania zbyt dobrze.", - "HeaderDownloadSubtitlesFor": "\u015aci\u0105gnij napisy dla:", + "HeaderDownloadSubtitlesFor": "Pobieraj napisy dla:", "LabelSkipIfGraphicalSubsPresent": "Pomijaj, je\u017celi film posiada wbudowane napisy", "LabelSkipIfGraphicalSubsPresentHelp": "Utrzymywanie wersji tekstowych napis\u00f3w spowoduje sprawniejsze dostarczanie i zmniejszeni prawdopodobie\u0144stwa transkodowania wideo.", "TabSubtitles": "Napisy", "TabChapters": "Rodzia\u0142y", "LabelOpenSubtitlesUsername": "Nazwa u\u017cytkownika Open Subtitles:", - "LabelOpenSubtitlesPassword": "Has\u0142o Open Subtitles:", + "LabelOpenSubtitlesPassword": "Has\u0142o u\u017cytkownika Open Subtitles:", "LabelPlayDefaultAudioTrack": "Odtwarzaj domy\u015bln\u0105 \u015bcie\u017ck\u0119 d\u017awi\u0119kow\u0105 niezale\u017cnie od j\u0119zyka", "LabelSubtitlePlaybackMode": "Tryb napis\u00f3w:", "LabelDownloadLanguages": "J\u0119zyki pobierania:", - "ButtonRegister": "Rejestruj", + "ButtonRegister": "Rejestracja", "LabelSkipIfAudioTrackPresent": "Pomijaj, je\u017celi domy\u015blna \u015bcie\u017cka d\u017awi\u0119kowa jest w j\u0119zyku pobierania", "LabelSkipIfAudioTrackPresentHelp": "Odznacz, aby upewni\u0107 si\u0119, \u017ce wszystkie wideo maj\u0105 napisy, niezale\u017cnie od j\u0119zyka \u015bcie\u017cki d\u017awi\u0119kowej.", "SendMessage": "Wy\u015blij wiadomo\u015b\u0107", @@ -716,7 +716,7 @@ "LabelMessageTitle": "Tytu\u0142 wiadomo\u015bci:", "MessageNoAvailablePlugins": "Brak dost\u0119pnych wtyczek.", "LabelDisplayPluginsFor": "Wy\u015bwietlaj wtyczki dla:", - "PluginTabAppClassic": "Emby Classic", + "PluginTabAppClassic": "Klasyczne Emby", "LabelEpisodeNamePlain": "Nazwa odcinka", "LabelSeriesNamePlain": "Nazwa serialu", "ValueSeriesNamePeriod": "Serial.nazwa", @@ -728,9 +728,9 @@ "LabelEndingEpisodeNumberPlain": "Numer ostatniego odcinka", "HeaderTypeText": "Wprowad\u017a tekst", "LabelTypeText": "Tekst", - "TabDisplay": "Wy\u015bwietl", + "TabDisplay": "Wy\u015bwietlanie", "TabLanguages": "J\u0119zyki", - "TabAppSettings": "Ustawienia Aplikacji", + "TabAppSettings": "Ustawienia aplikacji", "LabelEnableThemeSongs": "Aktywuj motywy muzyczne", "LabelEnableBackdrops": "Aktywuj fototapety", "LabelEnableThemeSongsHelp": "Je\u017celi aktywne, motywy muzyczne b\u0119d\u0105 odtwarzane w tle, podczas przegl\u0105dania biblioteki.", @@ -747,17 +747,17 @@ "OptionLatestMedia": "Ostatnio dodane", "OptionLatestChannelMedia": "Ostatnie pozycje kana\u0142\u00f3w", "HeaderLatestChannelItems": "Ostatnie Pozycje Kana\u0142\u00f3w", - "OptionNone": "\u017baden", + "OptionNone": "Brak", "HeaderLiveTv": "Telewizja", "HeaderReports": "Raporty", "HeaderSettings": "Ustawienia", "OptionDefaultSort": "Domy\u015blny", "TabNextUp": "Nast\u0119pny", - "HeaderBecomeProjectSupporter": "Uzyskaj Emby Premiere", + "HeaderBecomeProjectSupporter": "Zam\u00f3w subskrypcj\u0119 Emby Premium", "MessageNoMovieSuggestionsAvailable": "Brak aktualnie polecanych film\u00f3w. Zacznij ogl\u0105da\u0107 i ocenia\u0107 filmy, nast\u0119pnie wr\u00f3\u0107, aby obejrze\u0107 swoje rekomendacje.", "MessageNoCollectionsAvailable": "Kolekcje pozwalaj\u0105 na cieszenie si\u0119 personalizowanym grupowaniem Film\u00f3w, seriali, Album\u00f3w, Ksi\u0105\u017cek oraz Gier. Kliknij przycisk + aby zacz\u0105\u0107 tworzy\u0107 kolekcje.", - "MessageNoPlaylistsAvailable": "Playlisty pozwalaj\u0105 na tworzenie list z zawarto\u015bci\u0105 do odtwarzania kolejno w czasie. Aby doda\u0107 pozycje do playlisty, kliknij prawym guzikiem lub naci\u015bnij i przytrzymaj, a nast\u0119pnie wybierz dodaj do Playlisty.", - "MessageNoPlaylistItemsAvailable": "Playlista jest obecnie pusta.", + "MessageNoPlaylistsAvailable": "Listy odtwarzania pozwalaj\u0105 na tworzenie list z zawarto\u015bci\u0105 odtwarzanych w kolejno\u015bci. W celu dodania pozycji do listy odtwarzania, naci\u015bnij prawy przycisk lub naci\u015bnij palcem i przytrzymaj, a nast\u0119pnie wybierz z menu Dodaj do listy.", + "MessageNoPlaylistItemsAvailable": "Lista odtwarzania jest obecnie pusta.", "ButtonEditOtherUserPreferences": "Edytuj profil, obrazy i ustawienia osobiste tego u\u017cytkownika.", "LabelChannelStreamQuality": "Preferowana jako\u015b\u0107 kana\u0142u internetowego:", "LabelChannelStreamQualityHelp": "W \u015brodowisku ze s\u0142abym \u0142\u0105czem, ograniczenie jako\u015bci mo\u017ce zapewni\u0107 p\u0142ynniejsz\u0105 transmisj\u0119.", @@ -769,13 +769,13 @@ "HeaderOtherDisplaySettings": "Ustawienia wy\u015bwietlania", "ViewTypeMusicSongs": "Utwory", "ViewTypeMusicFavorites": "Ulubione", - "ViewTypeMusicFavoriteAlbums": "Ulubione Albumy", - "ViewTypeMusicFavoriteArtists": "Ulubieni Arty\u015bci", - "ViewTypeMusicFavoriteSongs": "Ulubione Utwory", - "HeaderMyViews": "Moje Widoki", + "ViewTypeMusicFavoriteAlbums": "Albumy ulubione", + "ViewTypeMusicFavoriteArtists": "Wykonawcy ulubieni", + "ViewTypeMusicFavoriteSongs": "Utwory ulubione", + "HeaderMyViews": "Moje widoki", "OptionDisplayAdultContent": "Wy\u015bwietlaj zawarto\u015b\u0107 dla doros\u0142ych", - "OptionLibraryFolders": "Foldery Medi\u00f3w", - "TitleRemoteControl": "Zdalne Sterowanie", + "OptionLibraryFolders": "Foldery medi\u00f3w", + "TitleRemoteControl": "Zdalne sterowanie", "OptionLatestTvRecordings": "Nagrania ostatnio dodane", "LabelProtocolInfo": "Protok\u00f3\u0142 Info:", "LabelProtocolInfoHelp": "Warto\u015b\u0107, kt\u00f3ra b\u0119dzie u\u017cywana jako odpowied\u017a na \u017c\u0105danie GetProtocolInfo z urz\u0105dze\u0144.", @@ -784,7 +784,7 @@ "LabelKodiMetadataUser": "Zapisuj do NFO dane o obejrzanych u\u017cytkownika:", "LabelKodiMetadataUserHelp": "W\u0142\u0105cz aby zapisywa\u0107 dane o obejrzanych do plik\u00f3w NFO, w celu wykorzystania przez inne aplikacj\u0119.", "LabelKodiMetadataDateFormat": "Format daty wydania:", - "LabelKodiMetadataDateFormatHelp": "Wszystkie daty w nfo b\u0119d\u0105 czytane i zapisywane wed\u0142ug tego formatu.", + "LabelKodiMetadataDateFormatHelp": "Wszystkie daty w plikach nfo b\u0119d\u0105 czytane i zapisywane wed\u0142ug tego formatu.", "LabelKodiMetadataSaveImagePaths": "Zapisuj \u015bcie\u017ck\u0119 obrazu w plikach nfo", "LabelKodiMetadataSaveImagePathsHelp": "To jest rekomendowane je\u017celi masz pliki obraz\u00f3w z nazwami nie kompatybilnymi z wytycznymi kodi.", "LabelKodiMetadataEnablePathSubstitution": "Aktywuj mapowanie folder\u00f3w", @@ -794,9 +794,9 @@ "LabelDisplayCollectionsView": "Wy\u015bwietlaj widok kolekcji z list\u0105 kolekcji filmowych", "LabelDisplayCollectionsViewHelp": "To stworzy osobny widok do wy\u015bwietlenia kolekcji filmowej. Aby stworzy\u0107 kolekcje, naci\u015bnij prawy przycisk myszy, lub naci\u015bnij i przytrzymaj dowolny film i wybierz 'Dodaj do kolekcji'. ", "LabelKodiMetadataEnableExtraThumbs": "Kopiuj obrazy z folderu \"extrafanart\" do folderu \"extrathumbs\"", - "LabelKodiMetadataEnableExtraThumbsHelp": "\u015aci\u0105gni\u0119te obrazy mog\u0105 by\u0107 zapisane zar\u00f3wno w folderze \"extrafanart\" jak i \"extrathumbs\" w celu zachowania maksymalnej kompatybilno\u015bci z Kodi.", + "LabelKodiMetadataEnableExtraThumbsHelp": "Pobrane obrazy mog\u0105 by\u0107 zapisane zar\u00f3wno w folderze \"extrafanart\" jak i \"extrathumbs\" w celu zachowania maksymalnej kompatybilno\u015bci z Kodi.", "TabServices": "Us\u0142ugi", - "TabLogs": "Logi", + "TabLogs": "Dziennik zdarze\u0144", "TabBranding": "W\u0142asna marka", "HeaderBrandingHelp": "Dostosuj wygl\u0105d Emby, aby dopasowa\u0107 do potrzeb Twojej grupy lub organizacji.", "LabelLoginDisclaimer": "Zastrze\u017cenie odpowiedzialno\u015bci:", @@ -805,7 +805,7 @@ "TabDashboard": "Kokpit", "TitleServer": "Serwer", "LabelCache": "Bufor:", - "LabelLogs": "Logi:", + "LabelLogs": "Dziennik zdarze\u0144:", "LabelMetadata": "Metadane:", "LabelTranscodingTemporaryFiles": "Tymczasowe pliki transkodowania:", "HeaderLatestMusic": "Muzyka ostatnio dodane", @@ -834,16 +834,16 @@ "HeaderFeatures": "Cechy", "HeaderAdvanced": "Zaawansowane", "ButtonSync": "Synchronizuj", - "TabScheduledTasks": "Zaplanowane Zadania", + "TabScheduledTasks": "Harmonogram zada\u0144", "HeaderChapters": "Rozdzia\u0142y", - "HeaderResumeSettings": "Ustawienia Wznawiania", + "HeaderResumeSettings": "Ustawienia wznawiania", "TabSync": "Synchronizuj", "TitleUsers": "U\u017cytkownicy", "LabelProtocol": "Protok\u00f3\u0142:", "OptionProtocolHttp": "Http", - "OptionProtocolHls": "Transmisja za pomoc\u0105 protoko\u0142u HTTP", + "OptionProtocolHls": "Transmisja za pomoc\u0105 HTTP", "LabelContext": "Kontekst:", - "TabPlaylists": "Playlista", + "TabPlaylists": "Lista odtwarzania", "ButtonClose": "Zamknij", "LabelAllLanguages": "Wszystkie j\u0119zyki", "LabelSource": "\u0179r\u00f3d\u0142o", @@ -911,15 +911,15 @@ "ViewTypeLiveTvChannels": "Kana\u0142y", "LabelEasyPinCode": "\u0141atwy kod pin:", "EasyPasswordHelp": "Tw\u00f3j \u0142atwy kod pin jest u\u017cywany dla dost\u0119pu offline z wspieranych aplikacji Emby, i tak\u017ce mo\u017ce by\u0107 u\u017cyty dla \u0142atwego logowania z wewn\u0105trz sieci.", - "LabelInNetworkSignInWithEasyPassword": "W\u0142\u0105cz logowanie \u0142atwym kodem pin z sieci wewnetrznej", + "LabelInNetworkSignInWithEasyPassword": "Aktywuj logowanie prostym kodem PIN w sieci wewn\u0119trznej", "LabelInNetworkSignInWithEasyPasswordHelp": "Je\u017celi w\u0142\u0105czone, b\u0119dzie mo\u017cliwe u\u017cywanie prostego kodu PIN, w celu logowania do aplikacji Emby, wewn\u0105trz swojej sieci domowej. Twoje standardowe has\u0142o b\u0119dzie potrzebne tylko z dala od domu. Je\u017celi kod PIN jest pusty, nie b\u0119dziesz musia\u0142 podawa\u0107 has\u0142a w sieci domowej.", "HeaderPassword": "Has\u0142o", "HeaderViewOrder": "Zobacz kolejno\u015b\u0107", "ButtonResetEasyPassword": "Reset \u0142atwego kodu pin", "HeaderPersonInfo": "Informacje o osobie", "HeaderConfirmDeletion": "Potwierd\u017a usuni\u0119cie", - "LabelAlbumArtist": "Wykonawca albumu", - "LabelAlbumArtists": "Wynonawcy albumu", + "LabelAlbumArtist": "Wykonawca albumu:", + "LabelAlbumArtists": "Wykonawcy albumu:", "LabelAlbum": "Album", "LabelCommunityRating": "Ocena spo\u0142eczno\u015bci:", "LabelReleaseDate": "Data wydania:", @@ -932,7 +932,7 @@ "HeaderGenres": "Gatunki", "HeaderStudios": "Studia", "HeaderTags": "Tagi", - "OptionNoTrailer": "Bez Trailera", + "OptionNoTrailer": "Brak zwiastuna", "ButtonPurchase": "Kup", "OptionActor": "Aktor", "OptionComposer": "Kompozytor", @@ -940,13 +940,13 @@ "OptionProducer": "Producent", "LabelAirDays": "Dni transmisji:", "LabelAirTime": "Czas transmisji:", - "HeaderMediaInfo": "Informacje o medium", + "HeaderMediaInfo": "O mediach", "HeaderPhotoInfo": "Informacje o Zdj\u0119ciu", "HeaderInstall": "Zainstaluj", "LabelSelectVersionToInstall": "Wybierz wersj\u0119 do instalacji", - "LinkLearnMoreAboutSubscription": "Dowiedz si\u0119 wi\u0119cej o Emby Premiere", - "MessagePluginRequiresSubscription": "Ta wtyczka wymaga aktywnej subskrypcji Emby Premiere po 14 dniach okresu pr\u00f3bnego.", - "MessagePremiumPluginRequiresMembership": "Ta wtyczka wymaga zakupu aktywnej subskrypcji Emby Premiere po 14 dniach okresu pr\u00f3bnego.", + "LinkLearnMoreAboutSubscription": "Dowiedz si\u0119 wi\u0119cej o Emby Premium", + "MessagePluginRequiresSubscription": "Ta wtyczka, po mini\u0119ciu 14 dni okresu pr\u00f3bnego, b\u0119dzie wymaga\u0107 aktywnej subskrypcji Emby Premium.", + "MessagePremiumPluginRequiresMembership": "Ta wtyczka, po mini\u0119ciu 14 dni okresu pr\u00f3bnego, b\u0119dzie wymaga\u0107 aktywnej subskrypcji Emby Premium.", "HeaderReviews": "Recenzje", "HeaderDeveloperInfo": "Info Dewelopera", "HeaderRevisionHistory": "Historia zmian", @@ -958,7 +958,7 @@ "OptionSaveMetadataAsHidden": "Zapisuj metadane i obrazy jako pliki ukryte", "LabelExtractChaptersDuringLibraryScan": "Wydobywaj obrazy rozdzia\u0142\u00f3w podczas skanowania biblioteki", "LabelExtractChaptersDuringLibraryScanHelp": "Je\u017celi w\u0142\u0105czone, obrazy rozdzia\u0142\u00f3w b\u0119d\u0105 wydobywane gdy widea s\u0105 importowane podczas skanowania biblioteki. Je\u017celi wy\u0142\u0105czone b\u0119d\u0105 one wydobywane podczas z zaplanowanego zadania obraz\u00f3w rozdzia\u0142\u00f3w, pozwalaj\u0105c aby zwyk\u0142e skanowanie biblioteki wykona\u0142o si\u0119 szybciej.", - "LabelConnectGuestUserName": "Ich nazwa u\u017cytkownika Emby lub adres email:", + "LabelConnectGuestUserName": "Ich nazwa u\u017cytkownika Emby lub adres pocztowy:", "LabelConnectUserName": "Nazwa u\u017cytkownika emby b\u0105d\u017a adres e-mail:", "LabelConnectUserNameHelp": "Po\u0142\u0105cz tego u\u017cytkownika z kontem Emby aby umo\u017cliwi\u0107 \u0142atwy dost\u0119p z ka\u017cdej aplikacji Emby, bez potrzeby wpisywania adresu IP serwera.", "ButtonLearnMoreAboutEmbyConnect": "Dowiedz si\u0119 wi\u0119cej o Emby Connect", @@ -966,36 +966,36 @@ "LabelNativeExternalPlayersHelp": "Odtwarzaj media w zewn\u0119trznych odtwarzaczach.", "HeaderSubtitleProfile": "Profil napis\u00f3w", "HeaderSubtitleProfiles": "Profile napis\u00f3w", - "HeaderSubtitleProfilesHelp": "Profile napis\u00f3w okre\u015blaj\u0105 formaty wspierane przez urz\u0105dzenie.", + "HeaderSubtitleProfilesHelp": "Profile napis\u00f3w okre\u015blaj\u0105 formaty obs\u0142ugiwane przez urz\u0105dzenie.", "LabelFormat": "Format:", "LabelMethod": "Metoda:", "LabelDidlMode": "Ustawienie Didl:", "OptionCaptionInfoExSamsung": "CaptionInfoEx (Samsung)", "OptionResElement": "Element res", - "OptionEmbedSubtitles": "Wklej w film", - "OptionExternallyDownloaded": "Pobierz zewn\u0119trzne", + "OptionEmbedSubtitles": "Dodawaj do kontenera", + "OptionExternallyDownloaded": "Pobieranie zewn\u0119trzne", "OptionHlsSegmentedSubtitles": "Napisy dostosowane do HLS", "LabelSubtitleFormatHelp": "Przyk\u0142ad: srt", "ButtonLearnMore": "Dowiedz si\u0119 wi\u0119cej", "TabPlayback": "Odtwarzanie", - "HeaderAudioSettings": "Ustawienia audio", + "HeaderAudioSettings": "Ustawienia d\u017awi\u0119ku", "HeaderSubtitleSettings": "Ustawienia napis\u00f3w", "TabCinemaMode": "Tryb kinowy", "TitlePlayback": "Odtwarzanie", "LabelEnableCinemaModeFor": "Aktywuj tryb kinowy dla:", - "CinemaModeConfigurationHelp": "Tryb kinowy wniesie filmowe prze\u017cycia wprost do Twojego salonu z mo\u017cliwo\u015bci\u0105 odtwarzania zwiastun\u00f3w i w\u0142asnych intro przez seansem.", - "OptionTrailersFromMyMovies": "Do\u0142\u0105cz zwiastuny film\u00f3w do mojej biblioteki", - "OptionUpcomingMoviesInTheaters": "Do\u0142\u0105cz zwiastuny z nowych i nadchodz\u0105cych film\u00f3w", + "CinemaModeConfigurationHelp": "Tryb kinowy, wniesie kinowe do\u015bwiadczenia wprost do Twojego salonu, z mo\u017cliwo\u015bci\u0105 odtwarzania zwiastun\u00f3w i w\u0142asnych introdukcji przez seansem.", + "OptionTrailersFromMyMovies": "Uwzgl\u0119dniaj zwiastuny film\u00f3w z mojej biblioteki", + "OptionUpcomingMoviesInTheaters": "Uwzgl\u0119dniaj zwiastuny z nowych i nadchodz\u0105cych film\u00f3w", "LabelLimitIntrosToUnwatchedContent": "Odtwarzaj zwiastuny tylko dla pozycji nieobejrzanych", "LabelEnableIntroParentalControl": "Aktywuj inteligentny system kontroli rodzicielskiej", "LabelEnableIntroParentalControlHelp": "Zostan\u0105 wy\u015bwietlone tylko zwiastuny z kategori\u0105 wiekow\u0105 mniejsz\u0105 lub r\u00f3wn\u0105 kategorii ogl\u0105danego filmu.", - "LabelTheseFeaturesRequireSubscriptionHelpAndTrailers": "Te opcje wymagaj\u0105 aktywnej subskrypcji Emby Premiere oraz instalacji plugin'u Trailer Channel.", - "OptionTrailersFromMyMoviesHelp": "Wymaga ustawienia lokalnych trailer\u00f3w.", + "LabelTheseFeaturesRequireSubscriptionHelpAndTrailers": "Te funkcje wymagaj\u0105 aktywnej subskrypcji Emby Premium oraz instalacji wtyczki Trailer Channel.", + "OptionTrailersFromMyMoviesHelp": "Wymaga konfiguracji lokalnych zwiastun\u00f3w.", "LabelCustomIntrosPath": "Folder w\u0142asnego wideo powitalnego:", "LabelCustomIntrosPathHelp": "Folder zawieraj\u0105cy pliki wideo. Film zostanie losowo wybrany, a jego odtwarzanie rozpocznie si\u0119 po zako\u0144czeniu odtwarzania zwiastun\u00f3w.", "LabelSelectInternetTrailersForCinemaMode": "Zwiastuny internetowe:", - "OptionUpcomingDvdMovies": "Do\u0142\u0105cz zwiastuny z nowych i nadchodz\u0105cych film\u00f3w DVD i Blu-Ray", - "OptionUpcomingStreamingMovies": "Do\u0142\u0105cz zwiastuny z nowych i nadchodz\u0105cych film\u00f3w z Netflix", + "OptionUpcomingDvdMovies": "Uwzgl\u0119dniaj zwiastuny z nowych i nadchodz\u0105cych film\u00f3w na DVD i Blu-Ray", + "OptionUpcomingStreamingMovies": "Uwzgl\u0119dniaj zwiastuny z nowych i nadchodz\u0105cych film\u00f3w w us\u0142udze Netflix", "CinemaModeConfigurationHelp2": "Aplikacje Emby pozwalaj\u0105 na w\u0142\u0105czenie lub wy\u0142\u0105czenie cinema mode. Aplikacje TV w\u0142\u0105czaj\u0105 t\u0105 opj\u0119 automatycznie.", "LabelEnableCinemaMode": "Aktywuj tryb kinowy", "HeaderCinemaMode": "Tryb kinowy", @@ -1007,14 +1007,14 @@ "TitleDevices": "Urz\u0105dzenia", "TabCameraUpload": "Upload z Aparatu", "TabDevices": "Urz\u0105dzenia", - "HeaderLibrarySettings": "Ustawienia bilbioteki", - "HeaderChapterSettings": "Ustawienia rozdzia\u0142u", + "HeaderLibrarySettings": "Ustawienia biblioteki", + "HeaderChapterSettings": "Ustawienia rozdzia\u0142\u00f3w", "HeaderCameraUploadHelp": "Aplikacja Emby mo\u017ce automatycznie przekazywa\u0107 zdj\u0119cia i wideo, z Twojego urz\u0105dzenia mobilnego, do serwera Emby.", "LabelCameraUploadPath": "Folder przesy\u0142anych zdj\u0119\u0107:", "LabelCameraUploadPathHelp": "Wybierz w\u0142asny folder przesy\u0142ania, w przypadku takiej potrzeby. Je\u015bli pozostawisz puste, u\u017cywany b\u0119dzie domy\u015blny folder. Je\u017celi u\u017cywasz w\u0142asnego folderu - wymagane b\u0119dzie dodanie go tak\u017ce w ustawieniach biblioteki.", "LabelCreateCameraUploadSubfolder": "Utw\u00f3rz podfolder dla ka\u017cdego urz\u0105dzenia", "LabelCreateCameraUploadSubfolderHelp": "Konkretne foldery mog\u0105 by\u0107 przydzielone do urz\u0105dze\u0144 przez klikni\u0119cie ich na stronie urz\u0105dzenia.", - "LabelCustomDeviceDisplayName": "Wy\u015bwietlaj nazw\u0119:", + "LabelCustomDeviceDisplayName": "Nazwa wy\u015bwietlana:", "LabelCustomDeviceDisplayNameHelp": "Dostarcz w\u0142asn\u0105 nazw\u0119 wy\u015bwietlania lub zostaw puste i u\u017cyj nazwy dostarczonej przez urz\u0105dzenie.", "HeaderInviteUser": "Zapro\u015b U\u017cytkownika", "LabelConnectGuestUserNameHelp": "To jest nazwa u\u017cytkownika kt\u00f3r\u0105 tw\u00f3j znajomy u\u017cywa do logowania si\u0119 na stron\u0119 Emby lub ich adres email.", @@ -1035,8 +1035,8 @@ "OptionWeekends": "Weekendy", "MessageProfileInfoSynced": "Informacje profilu u\u017cytkownika synchronizowane z Emby Connect.", "HeaderOptionalLinkEmbyAccount": "Opcjonalne: Po\u0142\u0105cz swoje konto Emby", - "ButtonTrailer": "Trailer", - "MessageNoTrailersFound": "Brak dost\u0119pnych zwiastun\u00f3w. Zainstaluj kana\u0142 zwiastun\u00f3w, aby ulepszy\u0107 swoje do\u015bwiadczenie kinowe, dodaj\u0105c zwiastuny z internetu do biblioteki.", + "ButtonTrailer": "Zwiastun", + "MessageNoTrailersFound": "Brak dost\u0119pnych zwiastun\u00f3w. Zainstaluj wtyczk\u0119 Trailer Channel, aby ulepszy\u0107 swoje do\u015bwiadczenie kinowe, dodaj\u0105c zwiastuny z internetu do biblioteki.", "HeaderNewUsers": "Nowi U\u017cytkownicy", "ButtonSignUp": "Zaloguj si\u0119", "ButtonForgotPassword": "Zapomnia\u0142e\u015b has\u0142o", @@ -1044,13 +1044,13 @@ "OptionDisableUserPreferencesHelp": "Je\u017celi w\u0142\u0105czone, tylko administratorzy b\u0119d\u0105 mogli konfigurowa\u0107 u\u017cytkownikowi profil obraz\u00f3w, hase\u0142 i j\u0119zyka.", "HeaderSelectServer": "Wybierz Serwer", "MessageNoServersAvailableToConnect": "Brak dost\u0119pnych serwer\u00f3w, z kt\u00f3rymi mo\u017cna si\u0119 po\u0142\u0105czy\u0107. Je\u017celi zosta\u0142e\u015b zaproszony do wsp\u00f3\u0142dzielenia serwera, upewnij si\u0119, \u017ce je zaakceptowa\u0142e\u015b poni\u017cej lub klikaj\u0105c \u0142\u0105cze w wiadomo\u015bci pocztowej.", - "TitleNewUser": "Nowy U\u017cytkownik", + "TitleNewUser": "Nowy u\u017cytkownik", "ButtonConfigurePassword": "Konfiguruj Has\u0142o", "HeaderDashboardUserPassword": "Has\u0142a u\u017cytkownik\u00f3w s\u0105 zarz\u0105dzane z osobistych ustawie\u0144 profilu ka\u017cdego z u\u017cytkownik\u00f3w.", "HeaderLibraryAccess": "Dost\u0119p do Bibliotek", "HeaderChannelAccess": "Dost\u0119p do Kana\u0142\u00f3w", "HeaderLatestItems": "Ostatnio dodane", - "HeaderShareMediaFolders": "Udost\u0119pnij foldery z mediami", + "HeaderShareMediaFolders": "Udost\u0119pniaj foldery medi\u00f3w", "MessageGuestSharingPermissionsHelp": "Wi\u0119kszo\u015b\u0107 opcji jest wst\u0119pnie nieaktywna dla go\u015bci ale mo\u017ce zosta\u0107 aktywowana wedle potrzeby.", "HeaderInvitations": "Zaproszenia", "Invitations": "Zaproszenia", @@ -1068,8 +1068,8 @@ "LabelEnableSingleImageInDidlLimitHelp": "Niekt\u00f3re urz\u0105dzenie nie pokarz\u0105 prawid\u0142owo wielu obraz\u00f3w z Didl.", "TabActivity": "Aktywno\u015b\u0107", "TitleSync": "Synchronizuj", - "OptionAllowSyncContent": "Zezwalaj na Sync", - "OptionAllowContentDownloading": "Pozw\u00f3l na pobieranie medi\u00f3w", + "OptionAllowSyncContent": "Zezwalaj na synchronizacj\u0119", + "OptionAllowContentDownloading": "Zezwalaj na pobieranie medi\u00f3w", "NameSeasonUnknown": "Sezon nieznany", "NameSeasonNumber": "Sezon {0}", "LabelNewUserNameHelp": "Nazwy u\u017cytkownik\u00f3w mog\u0105 zawiera\u0107 litery (a-z), numery (0-9), my\u015blniki (-), podkre\u015blniki (_), apostrofy (') i kropki (.)", @@ -1078,33 +1078,33 @@ "HeaderThisUserIsCurrentlyDisabled": "Ten u\u017cytkownik jest aktualnie zablokowany", "MessageReenableUser": "Zobacz poni\u017cej aby aktywowa\u0107 ponownie", "OptionTVMovies": "Seriale i Filmy", - "HeaderUpcomingMovies": "Przysz\u0142e filmy", + "HeaderUpcomingMovies": "Filmy wkr\u00f3tce w kinach", "HeaderUpcomingSports": "Przysz\u0142e wydarzenia sportowe", "HeaderUpcomingPrograms": "Przysz\u0142e programy", "ButtonMoreItems": "Wi\u0119cej", "OptionEnableTranscodingThrottle": "W\u0142\u0105cz CPU throttling serwera", - "OptionEnableTranscodingThrottleHelp": "CPU Throttling automatycznie dostosuje pr\u0119dko\u015b\u0107 transkodowania tak aby zminimalizowa\u0107 u\u017cycie procesora serwera podczas odtwarzania.", - "LabelUploadSpeedLimit": "Limit pr\u0119dko\u015bci upload (Mbps):", - "OptionAllowSyncTranscoding": "Zgadzaj si\u0119 na pobierania wymagaj\u0105ce transkodowania", + "OptionEnableTranscodingThrottleHelp": "Dynamiczne taktowanie procesora dostosuje pr\u0119dko\u015b\u0107 transkodowania tak, aby zminimalizowa\u0107 u\u017cycie procesora serwera podczas odtwarzania.", + "LabelUploadSpeedLimit": "Limit pr\u0119dko\u015bci wysy\u0142ania (Mbps):", + "OptionAllowSyncTranscoding": "Zezwalaj na pobieranie wymagaj\u0105ce transkodowania", "HeaderPlayback": "Odtwarzanie medi\u00f3w", - "OptionAllowAudioPlaybackTranscoding": "Zgadzaj si\u0119 na odtwarzanie audio, kt\u00f3re wymaga transkodowania", - "OptionAllowVideoPlaybackTranscoding": "Zgadzaj si\u0119 na odtwarzanie video, kt\u00f3re wymaga transkodowania", - "OptionAllowVideoPlaybackRemuxing": "Pozw\u00f3l na wy\u015bwietlanie video, kt\u00f3re wymagaj\u0105 konwersji, bez ponownego kodowania", + "OptionAllowAudioPlaybackTranscoding": "Zezwalaj na odtwarzanie d\u017awi\u0119ku, kt\u00f3re wymaga transkodowania", + "OptionAllowVideoPlaybackTranscoding": "Zezwalaj na odtwarzanie wideo, kt\u00f3re wymaga transkodowania", + "OptionAllowVideoPlaybackRemuxing": "Zezwalaj na odtwarzanie video, kt\u00f3re wymaga konwersji, bez ponownego kodowania", "OptionAllowMediaPlaybackTranscodingHelp": "U\u017cytkownicy otrzymaj\u0105 wiadomo\u015b\u0107, o braku mo\u017cliwo\u015bci odtwarzania zawarto\u015bci, ze wzgl\u0119du na polityk\u0119 bezpiecze\u0144stwa serwera.", - "TabStreaming": "Streaming", + "TabStreaming": "Transmisja", "LabelRemoteClientBitrateLimit": "Limit przep\u0142ywno\u015bci transmisji (Mbps):", "LabelRemoteClientBitrateLimitHelp": "Opcjonalny limit przep\u0142ywno\u015bci transmisji dla urz\u0105dze\u0144 z poza sieci domowej. U\u017cywaj tej opcji, w celu zapobiegania \u017c\u0105daniom o wy\u017csze przep\u0142ywno\u015bci, ni\u017c Twojej po\u0142\u0105czenie internetowe mo\u017ce obs\u0142u\u017cy\u0107.", "LabelConversionCpuCoreLimit": "Limit rdzeni procesora:", "LabelConversionCpuCoreLimitHelp": "Okre\u015bl limit rdzeni procesora kt\u00f3re b\u0119d\u0105 u\u017cyte podczas konwersji przy synchronizacji.", "OptionEnableFullSpeedConversion": "Konwertuj z pe\u0142n\u0105 pr\u0119dko\u015bci\u0105", "OptionEnableFullSpeedConversionHelp": "Domy\u015blnie, synchronizacja konwersji jest wykonywana przy niskiej pr\u0119dko\u015bci tak, aby minimalizowa\u0107 u\u017cycie zasob\u00f3w.", - "HeaderPlaylists": "Playllisty", - "HeaderViewStyles": "Widok Styl\u00f3w", + "HeaderPlaylists": "Listy odtwarzania", + "HeaderViewStyles": "Style widok\u00f3w", "TabPhotos": "Zdj\u0119cia", "HeaderWelcomeToEmby": "Witaj w Emby", "EmbyIntroMessage": "Przy pomocy Emby mo\u017cesz \u0142atwo transmitowa\u0107 wideo, muzyk\u0119 i zdj\u0119cia do smartfon\u00f3w, tablet\u00f3w i innych urz\u0105dze\u0144, ze swojego serwera Emby.", "ButtonSkip": "Pomi\u0144", - "TextConnectToServerManually": "Pod\u0142\u0105cz do serwera r\u0119cznie", + "TextConnectToServerManually": "Po\u0142\u0105cz z serwerem manualnie", "ButtonSignInWithConnect": "Zaloguj si\u0119 z Emby Connect", "ButtonConnect": "Po\u0142acz", "LabelServerHost": "Host:", @@ -1113,24 +1113,24 @@ "HeaderNewServer": "Nowy Serwer", "ButtonChangeServer": "Zmie\u0144 Serwer", "HeaderConnectToServer": "Pod\u0142\u0105cz do Serwera", - "OptionReportList": "Widok Listy", + "OptionReportList": "Lista", "OptionReportStatistics": "Statystyki", "OptionReportGrouping": "Grupowanie", - "HeaderExport": "Export", + "HeaderExport": "Eksport", "HeaderColumns": "Kolumny", - "ButtonReset": "Reset", + "ButtonReset": "Wyczy\u015b\u0107", "OptionEnableExternalVideoPlayers": "Aktywuj zewn\u0119trzne odtwarzacze wideo", "LabelEnableFullScreen": "Aktywuj tryb pe\u0142noekranowy", - "LabelEmail": "Email:", + "LabelEmail": "Adres pocztowy:", "LabelUsername": "Nazwa u\u017cytkownika:", "HeaderSignUp": "Zaloguj si\u0119", "LabelPasswordConfirm": "Has\u0142o (potwierd\u017a):", "ButtonAddServer": "Dodaj Serwer", "TabHomeScreen": "Ekran startowy", - "HeaderDisplay": "Wy\u015bwietl", + "HeaderDisplay": "Wy\u015bwietlanie", "HeaderNavigation": "Nawigacja", "OptionEnableAutomaticServerUpdates": "Aktualizuj serwer automatycznie", - "OptionOtherTrailers": "Do\u0142\u0105cz zwiastuny z starszych film\u00f3w", + "OptionOtherTrailers": "Uwzgl\u0119dniaj zwiastuny ze starszych film\u00f3w", "HeaderOverview": "Opis", "HeaderShortOverview": "Streszczenie", "HeaderType": "Typ", @@ -1144,11 +1144,11 @@ "AddGuideProviderHelp": "Pokazuj \u017ar\u00f3d\u0142o danych przewodnika", "LabelZipCode": "Kod pocztowy:", "GuideProviderSelectListings": "Pokazuj oferty", - "GuideProviderLogin": "Login", + "GuideProviderLogin": "Logowanie", "LabelLineup": "Kolejka:", - "MessageTunerDeviceNotListed": "Twojego tunera nie ma na li\u015bcie? Spr\u00f3buj zainstalowa\u0107 zewn\u0119trznego dostawc\u0119 us\u0142ugi, aby zobaczy\u0107 wi\u0119cej dost\u0119pnych opcji.", - "LabelImportOnlyFavoriteChannels": "Ogranicz do kana\u0142\u00f3w oznaczonych jako ulubione", - "ImportFavoriteChannelsHelp": "Opcja powoduje zaimportowanie tylko kana\u0142\u00f3w oznaczonych jako ulubione w tunerze.", + "MessageTunerDeviceNotListed": "Twojego tunera nie ma na li\u015bcie? Spr\u00f3buj zainstalowa\u0107 zewn\u0119trznego dostawc\u0119 us\u0142ug, aby uzyska\u0107 wi\u0119cej dost\u0119pnych transmisji telewizyjnych.", + "LabelImportOnlyFavoriteChannels": "Ograniczaj do kana\u0142\u00f3w oznaczonych jako ulubione", + "ImportFavoriteChannelsHelp": "Je\u015bli aktywne, tylko kana\u0142y oznaczone jako ulubione na tunerze, b\u0119d\u0105 importowane.", "ButtonRepeat": "Powt\u00f3rz", "LabelEnableThisTuner": "Aktywuj tuner", "LabelEnableThisTunerHelp": "Odznacz aby nie importowa\u0107 kana\u0142\u00f3w z tego tunera.", @@ -1161,13 +1161,13 @@ "HeaderHomeScreenSettings": "Ustawienia ekranu startowego", "HeaderProfile": "Profil", "HeaderLanguage": "J\u0119zyk", - "LabelTranscodingThreadCount": "Ilo\u015b\u0107 w\u0105tk\u00f3w dekodowania:", - "LabelTranscodingThreadCountHelp": "Wybierz maksymaln\u0105 ilo\u015b\u0107 w\u0105tk\u00f3w dla dekodowania. Zredukowanie ich ilo\u015bci obni\u017cy poziom zu\u017cycia procesora ale mo\u017ce niekorzystnie wp\u0142yn\u0105\u0107 na p\u0142ynno\u015b\u0107 odtwarzania.", + "LabelTranscodingThreadCount": "Liczba w\u0105tk\u00f3w transkodowania:", + "LabelTranscodingThreadCountHelp": "Wybierz maksymaln\u0105 liczb\u0119 w\u0105tk\u00f3w dla transkodowania. Ograniczenie ich liczby, obni\u017cy poziom u\u017cycia procesora, ale mo\u017ce niekorzystnie wp\u0142yn\u0105\u0107 na p\u0142ynno\u015b\u0107 odtwarzania.", "OptionMax": "Maksymalny", "LabelSyncPath": "Folder zawarto\u015bci zsynchronizowanej:", "OptionSyncOnlyOnWifi": "Synchronizuj tylko przez Wifi", "OptionSyncLosslessAudioOriginal": "Synchronizuj bezstratne audio w oryginalnej jako\u015bci", - "HeaderUpcomingForKids": "Nadchodz\u0105ce dla dzieci", + "HeaderUpcomingForKids": "Filmy dla dzieci wkr\u00f3tce w kinach", "HeaderSetupLiveTV": "Konfiguracja telewizji", "LabelTunerType": "Typ tunera:", "HeaderSetupTVGuide": "Konfiguracja przewodnika", @@ -1187,15 +1187,15 @@ "ButtonClear": "Wyczy\u015b\u0107", "LabelFolder": "Folder:", "HeadersFolders": "Foldery", - "LabelDisplayName": "Wy\u015bwietlaj nazw\u0119:", + "LabelDisplayName": "Nazwa wy\u015bwietlana:", "LabelCodecIntrosPath": "\u015acie\u017cka do intro kodeka:", - "LabelCodecIntrosPathHelp": "Folder zawieraj\u0105cy pliki wideo. Je\u015bli nazwa pliku intra odpowiada nazwie kodeka wideo, d\u017awi\u0119ku, profilowi d\u017awi\u0119ku lub znacznikowi, plik b\u0119dzie odtwarzany przed filmem.", - "OptionConvertRecordingsToStreamingFormat": "Automatycznie konwertuj nagrania do formatu przyjaznego strumieniowaniu.", + "LabelCodecIntrosPathHelp": "Folder zawieraj\u0105cy pliki wideo. Je\u015bli nazwa pliku intra odpowiada nazwie kodeka wideo, d\u017awi\u0119ku, profilowi d\u017awi\u0119ku lub znacznikowi, plik zostanie odtwarzony przed filmem.", + "OptionConvertRecordingsToStreamingFormat": "Konwertuj nagrania do formatu przyjaznego transmisji", "OptionConvertRecordingsToStreamingFormatHelp": "Nagrania zostan\u0105 skonwertowane w locie do formatu MP4 lub MKV, aby umo\u017cliwi\u0107 ich odtwarzanie na wi\u0119kszo\u015bci urz\u0105dze\u0144.", - "FeatureRequiresEmbyPremiere": "Ta funkcja wymaga aktywnej subskrypcji Emby Premiere.", + "FeatureRequiresEmbyPremiere": "Ta funkcja wymaga aktywnej subskrypcji Emby Premium.", "FileExtension": "Rozszerzenie pliku", "OptionPlayNextEpisodeAutomatically": "Odtwarzaj nast\u0119pny odcinek automatycznie", - "OptionDownloadImagesInAdvance": "Pobieraj zdj\u0119cia z wyprzedzeniem", + "OptionDownloadImagesInAdvance": "Pobieraj obrazy z wyprzedzeniem", "SettingsSaved": "Ustawienia zapisane.", "OptionDownloadImagesInAdvanceHelp": "Domy\u015blnie, wi\u0119kszo\u015b\u0107 obraz\u00f3w jest pobierana tylko kiedy jest wymagana przez aplikacje Emby. Aktywuj t\u0105 opcj\u0119, aby pobiera\u0107 wszystkie obrazy z wyprzedzeniem, podczas importowania multimedi\u00f3w. Mo\u017ce powodowa\u0107 znacz\u0105co d\u0142u\u017csze skanowanie biblioteki.", "Users": "U\u017cytkownicy", @@ -1208,7 +1208,7 @@ "FileNotFound": "Plik nie znaleziony.", "FileReadError": "Wyst\u0105pi\u0142 b\u0142\u0105d podczas odczytywania pliku.", "DeleteUser": "Usu\u0144 u\u017cytkownika", - "DeleteUserConfirmation": "Czy na pewno chcesz skasowa\u0107 tego u\u017cytkownika?", + "DeleteUserConfirmation": "Czy na pewno chcesz usun\u0105\u0107 tego u\u017cytkownika?", "PasswordResetHeader": "Zresetuj has\u0142o", "PasswordResetComplete": "Has\u0142o zosta\u0142o zresetowane.", "PinCodeResetComplete": "Kod pin zosta\u0142 zresetowany.", @@ -1220,7 +1220,7 @@ "UninstallPluginHeader": "Usu\u0144 wtyczk\u0119", "UninstallPluginConfirmation": "Czy na pewno chcesz usun\u0105\u0107 {0}?", "NoPluginConfigurationMessage": "Ta wtyczka nie ma \u017cadnych ustawie\u0144.", - "NoPluginsInstalledMessage": "Nie masz \u017cadnych wtyczek zainstalowanych.", + "NoPluginsInstalledMessage": "Brak zainstalowanych wtyczek.", "BrowsePluginCatalogMessage": "Przejrzyj nasz katalog wtyczek \u017ceby zobaczy\u0107 dost\u0119pne wtyczki.", "HeaderNewApiKey": "Nowy Klucz Api", "LabelAppName": "Nazwa Aplikacji", @@ -1229,25 +1229,25 @@ "MessageKeyEmailedTo": "Klucz wys\u0142any do {0}.", "MessageKeysLinked": "Klucz po\u0142\u0105czony.", "HeaderConfirmation": "Potwierdzenie", - "MessageKeyUpdated": "Dzi\u0119kujemy. Tw\u00f3j klucz Emby Premiere zosta\u0142 aktualizowany.", - "MessageKeyRemoved": "Dzi\u0119kujemy. Tw\u00f3j klucz Emby Premiere zosta\u0142 usuni\u0119ty.", + "MessageKeyUpdated": "Dzi\u0119kujemy. Tw\u00f3j klucz Emby Premium zosta\u0142 aktualizowany.", + "MessageKeyRemoved": "Dzi\u0119kujemy. Tw\u00f3j klucz Emby Premium zosta\u0142 usuni\u0119ty.", "TextEnjoyBonusFeatures": "Sprawd\u017a Funkcje Specjalne", "HeaderAddTag": "Dodaj tag", - "LabelTag": "Tag:", + "LabelTag": "Znacznik:", "ButtonSelectView": "Wybierz widok", "HeaderSelectDate": "Wybierz Dat\u0119", "ServerUpdateNeeded": "Ten serwer Emby wymaga aktualizacji. Do pobrania najnowszej wersji odwied\u017a {0}", "LabelFromHelp": "Przyk\u0142ad: {0} (na serwerze)", "HeaderMyMedia": "Moje Media", "ErrorLaunchingChromecast": "Wyst\u0105pi\u0142 b\u0142\u0105d podczas uruchamiania ChromeCast. Upewnij si\u0119, \u017ce Twoje urz\u0105dzenie jest pod\u0142\u0105czone do sieci bezprzewodowej.", - "MessageErrorLoadingSupporterInfo": "Wyst\u0105pi\u0142 b\u0142\u0105d podczas \u0142adowania informacji Emby Premiere. Spr\u00f3buj ponownie p\u00f3\u017aniej.", + "MessageErrorLoadingSupporterInfo": "Wyst\u0105pi\u0142 b\u0142\u0105d podczas wczytywania danych subskrypcji Emby Premium. Spr\u00f3buj ponownie p\u00f3\u017aniej.", "HeaderConfirmRemoveUser": "Usu\u0144 u\u017cytkownika", "ValueTimeLimitSingleHour": "Limit czasu: 1 godzina", "ValueTimeLimitMultiHour": "Limit czasu: {0} godzin", "PluginCategoryGeneral": "Og\u00f3lne", - "PluginCategoryContentProvider": "\u0179r\u00f3d\u0142a zawarto\u015bci", + "PluginCategoryContentProvider": "Dostawcy zawarto\u015bci", "PluginCategoryScreenSaver": "Wygaszacze ekranu", - "PluginCategoryTheme": "Sk\u00f3rki", + "PluginCategoryTheme": "Motywy", "PluginCategorySync": "Synchronizuj", "PluginCategorySocialIntegration": "Portale spo\u0142eczno\u015bciowe", "PluginCategoryNotifications": "Powiadomienia", @@ -1275,10 +1275,10 @@ "SyncJobItemStatusReadyToTransfer": "Gotowe do transferu", "LabelCollection": "Zbiory", "HeaderDevices": "Urz\u0105dzenia", - "ButtonScheduledTasks": "Zaplanowane zadania", + "ButtonScheduledTasks": "Harmonogram zada\u0144", "MessageItemsAdded": "Obiekty dodane", "HeaderSelectCertificatePath": "Wybierz folder certyfikatu", - "HeaderSupporterBenefit": "Aktywa subskrypcja Emby Premiere daje dodatkowe korzy\u015bci np: dost\u0119p nagrywania telewizji (DVR), media offline, pluginy premium i wi\u0119cej. {0} Dowiedz si\u0119 wi\u0119cej {1}.", + "HeaderSupporterBenefit": "Aktywa subskrypcja Emby Premium daje dodatkowe korzy\u015bci np: mo\u017cliwo\u015b\u0107 nagrywania telewizji (DVR), media w trybie offline, wtyczki premium i wi\u0119cej. {0} Dowiedz si\u0119 wi\u0119cej {1}.", "HeaderWelcomeToProjectServerDashboard": "Witaj w kokpicie serwera Emby!", "HeaderWelcomeToProjectWebClient": "Witamy w Emby", "ButtonTakeTheTour": "Dowiedz si\u0119 wi\u0119cej", @@ -1293,26 +1293,26 @@ "LabelScheduledTaskLastRan": "Ostatnio uruchomiono {0}, czas trwania {1}.", "HeaderDeleteTaskTrigger": "Usu\u0144 wyzwalacz zadania", "MessageDeleteTaskTrigger": "Czy na pewno chcesz usun\u0105\u0107 ten wyzwalacz zadania?", - "MessageNoPluginsInstalled": "Nie masz \u017cadnych wtyczek zainstalowanych.", - "MessageNoPluginsDueToAppStore": "Prosz\u0119 u\u017cy\u0107 aplikacji internetowej Emby aby zarz\u0105dza\u0107 pluginami.", + "MessageNoPluginsInstalled": "Brak zainstalowanych wtyczek.", + "MessageNoPluginsDueToAppStore": "U\u017cy\u0107 aplikacji internetowej Emby, aby zarz\u0105dza\u0107 wtyczkami.", "LabelVersionInstalled": "{0} zainstalowanych", - "LabelNumberReviews": "{0} Recenzji", + "LabelNumberReviews": "{0} recenzji", "LabelFree": "Darmowe", "HeaderSelectAudio": "Wybierz Audio", - "HeaderSelectSubtitles": "Wybierz Napisy", + "HeaderSelectSubtitles": "Wybierz napisy", "LabelDefaultStream": "(Domy\u015blne)", "LabelForcedStream": "(Wymuszone)", "LabelDefaultForcedStream": "(Domy\u015blne\/Wymuszone)", "LabelUnknownLanguage": "Nieznany j\u0119zyk", "ButtonMute": "Wycisz", "ButtonUnmute": "(OD)Wycisz", - "ButtonPlaylist": "Playlista", + "ButtonPlaylist": "Lista odtwarzania", "LabelEnabled": "Aktywne", "LabelDisabled": "Wy\u0142\u0105czone", "ButtonMoreInformation": "Wi\u0119cej Informacji", "LabelNoUnreadNotifications": "Brak nieprzeczytanych powiadomie\u0144.", "MessageInvalidUser": "Nieprawid\u0142owa nazwa u\u017cytkownika lub has\u0142o. Spr\u00f3buj ponownie.", - "HeaderLoginFailure": "B\u0142\u0105d Logowania", + "HeaderLoginFailure": "B\u0142\u0105d logowania", "RecommendationBecauseYouLike": "Bo polubi\u0142e\u015b {0}", "RecommendationBecauseYouWatched": "Bo obejrza\u0142e\u015b {0}", "RecommendationDirectedBy": "Re\u017cyserowane przez {0}", @@ -1320,7 +1320,7 @@ "HeaderConfirmRecordingCancellation": "Potwierd\u017a Anulowanie Nagrania", "MessageRecordingCancelled": "Nagranie anulowane.", "MessageRecordingScheduled": "Nagranie zosta\u0142o zaplanowane.", - "HeaderConfirmSeriesCancellation": "Potwierd\u017a Anulowanie Serialu", + "HeaderConfirmSeriesCancellation": "Potwierdzenie anulowania nagrywania serialu", "HeaderConfirmRecordingDeletion": "Potwierd\u017a usuni\u0119cie nagrania", "MessageRecordingSaved": "Nagranie zapisane", "OptionWeekend": "Weekendy", @@ -1330,9 +1330,9 @@ "ButtonResetTuner": "Resetuj tuner", "HeaderResetTuner": "Resetuj Tuner", "MessageConfirmResetTuner": "Czy na pewno chcesz zresetowa\u0107 ten tuner? Wszystkie aktywne procesy odtwarzania i nagrywania zostan\u0119 przerwane.", - "ButtonCancelSeries": "Anuluj Serial", - "HeaderSeriesRecordings": "Nagrania Seriali", - "LabelAnytime": "O ka\u017cdym czasie", + "ButtonCancelSeries": "Anuluj nagrywanie serialu", + "HeaderSeriesRecordings": "Nagrania seriali", + "LabelAnytime": "O dowolnej porze", "StatusRecording": "Nagrania", "StatusWatching": "Ogl\u0105dane", "StatusRecordingProgram": "Nagrania {0}", @@ -1341,11 +1341,11 @@ "MessageConfirmSplitMedia": "Czy na pewno chcesz rozdzieli\u0107 \u017ar\u00f3d\u0142a medi\u00f3w na oddzielne pozycje?", "HeaderError": "B\u0142\u0105d", "MessageChromecastConnectionError": "Tw\u00f3j odbiornik Chromecast nie jest wstanie pod\u0142\u0105czy\u0107 si\u0119 do serwera Emby. Prosz\u0119 sprawd\u017a jego po\u0142\u0105czenie i spr\u00f3buj ponownie.", - "HeaderLibraryFolders": "Foldery Medi\u00f3w", - "HeaderFavoriteMovies": "Ulubione Filmy", - "HeaderFavoriteShows": "Ulubione Seriale", - "HeaderFavoriteEpisodes": "Ulubione Odcinki", - "HeaderFavoriteGames": "Ulubione Gry", + "HeaderLibraryFolders": "Foldery medi\u00f3w", + "HeaderFavoriteMovies": "Filmy ulubione", + "HeaderFavoriteShows": "Seriale ulubione", + "HeaderFavoriteEpisodes": "Odcinki ulubione", + "HeaderFavoriteGames": "Gry ulubione", "HeaderConfirmProfileDeletion": "Potwierd\u017a usuni\u0119cie profilu", "MessageConfirmProfileDeletion": "Czy na pewno chcesz usun\u0105\u0107 ten profil?", "HeaderSelectServerCachePath": "Wybierz folder bufora serwera", @@ -1354,7 +1354,7 @@ "HeaderSelectServerCachePathHelp": "Przegl\u0105daj lub wprowad\u017a folder plik\u00f3w bufora serwera. Folder musi umo\u017cliwia\u0107 zapis plik\u00f3w.", "HeaderSelectTranscodingPathHelp": "Przegl\u0105daj lub wprowad\u017a folder plik\u00f3w tymczasowych transkodowania. Folder musi umo\u017cliwia\u0107 zapis plik\u00f3w.", "HeaderSelectMetadataPathHelp": "Przegl\u0105daj lub wprowad\u017a folder plik\u00f3w przechowywania metadanych. Folder musi umo\u017cliwia\u0107 zapis plik\u00f3w.", - "HeaderFavoriteAlbums": "Ulubione Albumy", + "HeaderFavoriteAlbums": "Albumy ulubione", "HeaderLatestChannelMedia": "Ostatnie Pozycje Kana\u0142\u00f3w", "ButtonOrganizeFile": "Organizuj Pliki", "ButtonDeleteFile": "Usu\u0144 plik", @@ -1384,7 +1384,7 @@ "VersionXIsAvailableForDownload": "Wersja {0} jest dost\u0119pna do pobrania.", "LabelVersionNumber": "Wersja {0}", "LabelPlayMethodTranscoding": "Transkodowanie", - "LabelPlayMethodDirectStream": "Streaming bezpo\u015bredni", + "LabelPlayMethodDirectStream": "Transmisja bezpo\u015brednia", "LabelPlayMethodDirectPlay": "Odtwarzanie bezpo\u015brednie", "LabelAudioCodec": "D\u017awi\u0119k: {0}", "LabelVideoCodec": "Wideo: {0}", @@ -1460,7 +1460,7 @@ "OptionTags": "Tagi", "OptionStudios": "Studia", "OptionName": "Nazwa", - "OptionOverview": "Podgl\u0105d", + "OptionOverview": "Opis", "OptionGenres": "Gatunek", "OptionPeople": "Ludzie", "OptionProductionLocations": "Lokalizacja produkcji", @@ -1468,7 +1468,7 @@ "HeaderChangeFolderType": "Zmie\u0144 typ zawarto\u015bci", "HeaderChangeFolderTypeHelp": "W celu zmiany typu, usu\u0144 bibliotek\u0119, a nast\u0119pnie dodaj j\u0105 okre\u015blaj\u0105c nowy typ.", "HeaderAlert": "Alarm", - "MessagePleaseRestart": "Prosz\u0119 zresetowa\u0107 aby uko\u0144czy\u0107 aktualizacj\u0119.", + "MessagePleaseRestart": "Uruchom ponownie, aby zako\u0144czy\u0107 aktualizacj\u0119.", "ButtonHide": "Ukryj", "MessageSettingsSaved": "Ustawienia zapisane.", "TabLibrary": "Biblioteka", @@ -1482,7 +1482,7 @@ "ButtonQuality": "Jako\u015b\u0107", "HeaderNotifications": "Powiadomienia", "HeaderSelectPlayer": "Wybierz odtwarzacz", - "ButtonViewSeriesRecording": "Ogl\u0105daj nagrania seriali", + "ButtonViewSeriesRecording": "Podejrzyj nagrania seriali", "HeaderSpecials": "Specjalne", "HeaderTrailers": "Zwiastuny", "HeaderResolution": "Rozdzielczo\u015b\u0107", @@ -1501,7 +1501,7 @@ "OptionSeasons": "Sezony", "OptionGames": "Gry", "OptionGameSystems": "Systemy Gier Wideo", - "OptionMusicArtists": "Arty\u015bci muzyczni", + "OptionMusicArtists": "Wykonawcy muzyki", "OptionMusicAlbums": "Albumy muzyczne", "OptionMusicVideos": "Teledyski", "OptionSongs": "Utwory", @@ -1535,17 +1535,17 @@ "FolderTypeUnset": "Nieokre\u015blone (zawarto\u015b\u0107 mieszana)", "BirthPlaceValue": "Miejsce urodzenia: {0}", "DeathDateValue": "Zmar\u0142y: {0}", - "BirthDateValue": "Urodzony: {0}", + "BirthDateValue": "Data urodzenia: {0}", "HeaderLatestReviews": "Ostatnie recenzje", "HeaderPluginInstallation": "Instalacja wtyczki", "MessageAlreadyInstalled": "Ta wersja jest ju\u017c zainstalowana", - "ValueReviewCount": "{0} Recenzji", + "ValueReviewCount": "{0} recenzji", "MessageYouHaveVersionInstalled": "Masz aktualnie zainstalowan\u0105 wersj\u0119 {0}.", "MessageTrialExpired": "Zako\u0144czy\u0142 si\u0119 okres pr\u00f3bny dla tej opcji", "MessageTrialWillExpireIn": "Okres pr\u00f3bny dla tej funkcji wyga\u015bnie za {0} dni.", - "MessageInstallPluginFromApp": "Wtyczka musi by\u0107 zainstalowana bezpo\u015brednio z aplikacji w kt\u00f3rej ma by\u0107 u\u017cywana.", + "MessageInstallPluginFromApp": "Wtyczka musi by\u0107 zainstalowana bezpo\u015brednio z aplikacji, w kt\u00f3rej ma by\u0107 u\u017cywana.", "ValuePriceUSD": "Cena: {0} (USD)", - "MessageFeatureIncludedWithSupporter": "Jeste\u015b zarejestrowany jako u\u017cytkownik tej opcji i b\u0119dziesz m\u00f3g\u0142 kontynuowa\u0107 jej u\u017cywanie z aktywn\u0105 subskrypcj\u0105 Emby Premiere.", + "MessageFeatureIncludedWithSupporter": "Jeste\u015b zarejestrowany jako u\u017cytkownik tej opcji i b\u0119dziesz m\u00f3g\u0142 kontynuowa\u0107 jej u\u017cywanie z aktywn\u0105 subskrypcj\u0105 Emby Premium.", "HeaderEmbyAccountAdded": "Dodano Konto Emby", "MessageEmbyAccountAdded": "Konto Emby zosta\u0142o dodane dla tego u\u017cytkownika.", "MessagePendingEmbyAccountAdded": "Konto Emby zosta\u0142o dodane dla tego u\u017cytkownika. Zostanie wys\u0142any email do w\u0142a\u015bciciela konta. Zaproszenie musi zosta\u0107 potwierdzone poprzez klikni\u0119cie linku w emailu.", @@ -1626,7 +1626,7 @@ "MediaInfoFile": "Plik", "MediaInfoFormat": "Format", "MediaInfoContainer": "Kontener", - "MediaInfoDefault": "Domy\u015blnie", + "MediaInfoDefault": "Domy\u015blne", "MediaInfoForced": "Wymuszone", "MediaInfoExternal": "Zewn\u0119trzny", "MediaInfoTimestamp": "Znacznik czasu", @@ -1663,10 +1663,10 @@ "WebClientTourMouseOver": "zatrzymaj mysz nad plakatem aby uzyska\u0107 szybk\u0105 informacj\u0119", "WebClientTourTapHold": "Naci\u015bnij i przytrzymaj lub kliknij prawym dla menu kontekstowego", "WebClientTourMetadataManager": "Kliknij edytuj aby otworzy\u0107 managera metadanych", - "WebClientTourPlaylists": "\u0141atwo tw\u00f3rz playlisty i natychmiastowe mix-y i odtwarzaj je na dowolnym urz\u0105dzeniu", + "WebClientTourPlaylists": "Proste tworzenie list odtwarzania i szybkie remiksy ,a nast\u0119pnie odtwarzaj je na dowolnym urz\u0105dzeniu", "WebClientTourCollections": "Tw\u00f3rz kolekcje film\u00f3w i grupuj je w box set-y", "WebClientTourUserPreferences1": "Preferencje u\u017cytkownika pozwalaj\u0105 ci na dostosowywanie sposobu w jaki biblioteka prezentowana jest na wszystkich aplikacjach Emby", - "WebClientTourUserPreferences2": "Konfiguruj swoje ustawienia j\u0119zyka dla audio i napis\u00f3w dla wszystkich swoich aplikacji Emby", + "WebClientTourUserPreferences2": "Jednorazowa konfiguracja ustawie\u0144 j\u0119zyka \u015bcie\u017cki d\u017awi\u0119kowej i napis\u00f3w, dla wszystkich aplikacji Emby", "WebClientTourUserPreferences3": "Dostosuj stron\u0119 startow\u0105 klienta web do swoich upodoba\u0144", "WebClientTourUserPreferences4": "Konfiguruj fototapety, motywy muzyczne i zewn\u0119trzne odtwarzacze", "WebClientTourMobile1": "Ten klient webowy dzia\u0142a \u015bwietnie na smartfonach i tabletach...", @@ -1674,15 +1674,15 @@ "WebClientTourMySync": "Synchronizuj swoje osobiste media do twoich urz\u0105dze\u0144 dla ogl\u0105dania offline.", "MessageEnjoyYourStay": "Mi\u0142ego pobytu", "DashboardTourDashboard": "Kokpit serwera pozwala ci na monitorowanie twojego serwera i u\u017cytkownik\u00f3w. Zawsze b\u0119dziesz wiedzia\u0142 co kto robi i gdzie si\u0119 znajduje.", - "DashboardTourHelp": "Pomoc w aplikacji dostarcza \u0142atwe guziki do otwierania stron wiki powi\u0105zanych z zawarto\u015bci\u0105 strony.", + "DashboardTourHelp": "Wbudowana pomoc, dostarcza przyciski do otwierania stron Wiki, powi\u0105zanych z zawarto\u015bci\u0105 strony.", "DashboardTourUsers": "\u0141atwe tworzenie kont u\u017cytkownik\u00f3w dla przyjaci\u00f3\u0142 i rodziny, z w\u0142asnymi uprawnieniami, dost\u0119pem do biblioteki, kontrol\u0105 rodzicielsk\u0105 i wi\u0119cej.", - "DashboardTourCinemaMode": "Tryb kinowy wniesie kinowe prze\u017cycia wprost do Twojego salonu z mo\u017cliwo\u015bci\u0105 odtwarzania zwiastun\u00f3w i w\u0142asnego intra przez seansem.", + "DashboardTourCinemaMode": "Tryb kinowy, wniesie kinowe do\u015bwiadczenia wprost do Twojego salonu, z mo\u017cliwo\u015bci\u0105 odtwarzania zwiastun\u00f3w i w\u0142asnych introdukcji przez seansem.", "DashboardTourChapters": "Umo\u017cliwia generowanie obraz\u00f3w rozdzia\u0142\u00f3w dla twoich wideo dla \u0142adniejszej prezentacji podczas przegl\u0105dania.", - "DashboardTourSubtitles": "Automatycznie pobieraj napisy dla twojego wideo w dowolnym j\u0119zyku.", + "DashboardTourSubtitles": "Umo\u017cliwia automatyczne pobieranie napis\u00f3w dla Twoich wideo w dowolnym j\u0119zyku.", "DashboardTourPlugins": "Zainstaluj wtyczki takie, jak: przegl\u0105darka kana\u0142\u00f3w internetowych, telewizja, dostawcy metadanych i inne.", "DashboardTourNotifications": "Automatycznie wysy\u0142aj powiadomienia o zdarzeniach na serwerze do swoich urz\u0105dze\u0144 mobilnym, maila i wi\u0119cej.", "DashboardTourScheduledTasks": "\u0141awo zarz\u0105dzaj d\u0142ugo trwaj\u0105cymi operacjami za pomoc\u0105 zaplanowanych zada\u0144. Decyduj kiedy s\u0105 uruchamiane i jak cz\u0119sto.", - "DashboardTourMobile": "Kokpit Emby dzia\u0142a \u015bwietnie na smartfonach i tabletach. Zarz\u0105dzaj swoim serwerem ze swojej d\u0142oni kiedykolwiek, gdziekolwiek chcesz.", + "DashboardTourMobile": "Kokpit Emby dzia\u0142a \u015bwietnie na smartfonach i tabletach. Zarz\u0105dzaj swoim serwerem, z poziomu swojej d\u0142oni, kiedykolwiek i gdziekolwiek chcesz.", "DashboardTourSync": "Synchronizuj swoje osobiste multimedia z swoimi urz\u0105dzeniami do ogl\u0105dania offline.", "TabExtras": "Dodatki", "HeaderUploadImage": "Wy\u015blij obrazek", @@ -1711,7 +1711,7 @@ "MessageForgotPasswordFileCreated": "Plik zawieraj\u0105cy instrukcje z dalszymi krokami zosta\u0142 utworzony na serwerze:", "MessageForgotPasswordFileExpiration": "Numer PIN wyga\u015bnie za {0}.", "MessageInvalidForgotPasswordPin": "Nieprawid\u0142owy lub wygas\u0142y PIN. Prosz\u0119 spr\u00f3bowa\u0107 ponownie.", - "MessagePasswordResetForUsers": "Has\u0142a nast\u0119puj\u0105cych u\u017cytkownik\u00f3w zosta\u0142y uzuni\u0119te. Aby si\u0119 zalogowa\u0107 prosz\u0119 u\u017cy\u0107 pustego has\u0142a.", + "MessagePasswordResetForUsers": "Has\u0142a nast\u0119puj\u0105cych u\u017cytkownik\u00f3w zosta\u0142y usuni\u0119te. W celu zalogowania, u\u017cyj pustego has\u0142a.", "ButtonLinkMyEmbyAccount": "Po\u0142\u0105cz moje konto teraz", "MessageConnectAccountRequiredToInviteGuest": "Aby zaprasza\u0107 go\u015bci, musisz najpierw po\u0142\u0105czy\u0107 swoje konto Emby z tym serwerem.", "SyncMedia": "Synchronizuj media", @@ -1747,8 +1747,8 @@ "NoResultsFound": "Nic nie znaleziono.", "ButtonManageServer": "Zarz\u0105dzaj Serwerem", "ButtonPreferences": "Preferencje", - "ButtonViewArtist": "Zobacz artyst\u00f3w", - "ButtonViewAlbum": "Zobacz album", + "ButtonViewArtist": "Podejrzyj wykonawc\u0119", + "ButtonViewAlbum": "Podejrzyj album", "ButtonEditImages": "Edytuj obrazy", "ErrorMessagePasswordNotMatchConfirm": "Has\u0142o i potwierdzenie has\u0142a musz\u0105 by\u0107 takie same.", "ErrorMessageUsernameInUse": "Nazwa u\u017cytkownika jest aktualnie zaj\u0119ta. Wybierz inna nazw\u0119 i spr\u00f3buj ponownie.", @@ -1765,9 +1765,9 @@ "ErrorGettingTvLineups": "Wyst\u0105pi\u0142 b\u0142\u0105d podczas pobierania programu telewizyjnego. Upewnij si\u0119, \u017ce informacje s\u0105 poprawne i spr\u00f3buj ponownie.", "MessageCreateAccountAt": "Utw\u00f3rz konto na {0}", "ErrorPleaseSelectLineup": "Wybierz program i spr\u00f3buj ponownie, je\u015bli \u017cadne programy nie s\u0105 dost\u0119pne, sprawd\u017a czy tw\u00f3j login, has\u0142o i kod pocztowy jest poprawny.", - "HeaderTryEmbyPremiere": "Wypr\u00f3buj Emby Premiere", - "OptionEnableDisplayMirroring": "W\u0142\u0105cz wy\u015bwietlanie lustrzane", - "ErrorValidatingSupporterInfo": "Wyst\u0105pi\u0142 b\u0142\u0105d podczas sprawdzania twoich informacji Emby Premiere. Spr\u00f3buj ponownie p\u00f3\u017aniej.", + "HeaderTryEmbyPremiere": "Wypr\u00f3buj Emby Premium", + "OptionEnableDisplayMirroring": "Aktywuj klonowanie wy\u015bwietlania", + "ErrorValidatingSupporterInfo": "Wyst\u0105pi\u0142 b\u0142\u0105d podczas sprawdzania informacji o subskrypcji Emby Premium. Spr\u00f3buj ponownie p\u00f3\u017aniej.", "LabelLocalSyncStatusValue": "Stan: {0}", "MessageSyncStarted": "Synchronizacja rozpocz\u0119ta", "OptionBackdropSlideshow": "Pokaz zrzut\u00f3w", @@ -1785,19 +1785,19 @@ "HeaderLatestMovies": "Ostatnie filmy", "HeaderEmailAddress": "Adres e-mail", "LoginDisclaimer": "Emby jest zaprojektowane tak, aby pomaga\u0107 w zarz\u0105dzaniu bibliotek\u0105 domow\u0105 - filmami, muzyk\u0105 czy zdj\u0119ciami. Zapoznaj si\u0119 z zasadami u\u017cytkowania. U\u017cywanie oprogramowania Emby wymaga pe\u0142nego zaakceptowania zasad.", - "TermsOfUse": "Zasady u\u017cytkowania", + "TermsOfUse": "Warunki u\u017cytkowania", "NumLocationsValue": "{0} foldery", "ButtonAddMediaLibrary": "Dodaj media do biblioteki", "ButtonManageFolders": "Zarz\u0105dzaj folderami", - "ErrorAddingListingsToSchedulesDirect": "Wyst\u0105pi\u0142 b\u0142\u0105d podczas dodawanie sk\u0142adu do twojego konta Schedules Direct. Schedules Direct pozwala na limitowana ilo\u015b\u0107 sk\u0142ad\u00f3w na konto. Mo\u017ce by\u0107 wymagane zalogowanie si\u0119 na stron\u0119 Schedules Direct i usuni\u0119cie innych sk\u0142ad\u00f3w aby kontunuowa\u0107.", + "ErrorAddingListingsToSchedulesDirect": "Wyst\u0105pi\u0142 b\u0142\u0105d podczas dodawanie sk\u0142adu do twojego konta Schedules Direct. Schedules Direct pozwala na limitowana ilo\u015b\u0107 sk\u0142ad\u00f3w na konto. Mo\u017ce by\u0107 wymagane zalogowanie si\u0119 na stron\u0119 Schedules Direct i usuni\u0119cie innych sk\u0142ad\u00f3w przed kontynuacj\u0105.", "PleaseAddAtLeastOneFolder": "Prosz\u0119 dodaj przynajmniej jeden folder do tej listy poprzez klikni\u0119cie guzika Dodaj", "ErrorAddingMediaPathToVirtualFolder": "Wyst\u0105pi\u0142 b\u0142\u0105d podczas dodawania folderu medi\u00f3w. Upewnij si\u0119, \u017ce folder jest prawid\u0142owy a serwer Emby ma dost\u0119p do tej lokalizacji.", "ErrorRemovingEmbyConnectAccount": "Podczas pr\u00f3by usuwania konta Emby Connect wyst\u0105pi\u0142 b\u0142\u0105d. Upewnij si\u0119, \u017ce Twoje po\u0142\u0105czenie internetowe dzia\u0142a prawid\u0142owo i spr\u00f3buj ponownie.", "ErrorAddingEmbyConnectAccount1": "Wyst\u0105pi\u0142 b\u0142\u0105d podczas dodawania konta Emby Connect. Czy utworzy\u0142e\u015b konto Emby? Zarejestruj si\u0119 na {0}.", "ErrorAddingEmbyConnectAccount2": "Upewnij si\u0119, \u017ce konto Emby zosta\u0142o aktywowane, post\u0119puj\u0105c zgodnie z instrukcjami zawartymi w wiadomo\u015bci pocztowej, wys\u0142anej po utworzeniu konta. Je\u015bli nie otrzyma\u0142e\u015b tej wiadomo\u015bci, wy\u015blij wiadomo\u015b\u0107 na adres {0} z adresu pocztowego u\u017cytego do rejestracji konta Emby.", "ErrorAddingEmbyConnectAccount3": "Konto Emby jest ju\u017c po\u0142\u0105czone z innym u\u017cytkownikiem lokalnym. Konto Emby mo\u017ce by\u0107 po\u0142\u0105czone tylko z jednym u\u017cytkownikiem lokalnym w danym czasie.", - "HeaderFavoriteArtists": "Ulubieni arty\u015bci", - "HeaderFavoriteSongs": "Ulubione utwory", + "HeaderFavoriteArtists": "Wykonawcy ulubieni", + "HeaderFavoriteSongs": "Utwory ulubione", "HeaderConfirmPluginInstallation": "Potwierd\u017a instalacj\u0119 pluginu", "PleaseConfirmPluginInstallation": "Kliknij OK aby potwierdzi\u0107, i\u017c zapozna\u0142e\u015b si\u0119 z powy\u017cszym i chcesz zainstalowa\u0107 plugin.", "MessagePluginInstallDisclaimer": "Wtyczki tworzone przez cz\u0142onk\u00f3w spo\u0142eczno\u015bci Emby s\u0105 doskona\u0142ym sposobem, aby zwi\u0119kszy\u0107 swoje prze\u017cycia z dodatkowymi funkcjami i zaletami Emby. Przed instalacj\u0105 nale\u017cy zdawa\u0107 sobie spraw\u0119 jakie efekty mog\u0105 mie\u0107 na tw\u00f3j serwer Emby, takie jak d\u0142u\u017cszy skan biblioteki, dodatkowe przetwarzanie w tle, a tak\u017ce obni\u017cenie stabilno\u015bci systemu.", @@ -1816,28 +1816,28 @@ "HeaderTuners": "Tunery", "LabelOptionalM3uUrl": "Adres url M3U (opcjonalny)", "LabelOptionalM3uUrlHelp": "Niekt\u00f3re urz\u0105dzenia wspieraj\u0105 list\u0119 kana\u0142\u00f3w M3U.", - "TabResumeSettings": "Ustawienia Wznawiania", + "TabResumeSettings": "Ustawienia wznawiania", "DrmChannelsNotImported": "Kana\u0142y z DRM nie zostan\u0105 zaimportowane.", "LabelAllowHWTranscoding": "Zezwalaj na sprz\u0119towe transkodowanie", "AllowHWTranscodingHelp": "Je\u015bli w\u0142\u0105czone, zezwalaj tunerowi na transkodowanie strumieni w locie. To mo\u017ce pom\u00f3c zmniejszy\u0107 pro\u015bby serwera Emby na transkodowanie.", "OptionRequirePerfectSubtitleMatch": "Pobieraj tylko napisy, kt\u00f3re pasuj\u0105 idealnie do plik\u00f3w wideo", - "OptionRequirePerfectSubtitleMatchHelp": "Requiring a perfect match will filter subtitles to include only those that have been tested and verified with your exact video file. Unchecking this will increase the likelihood of subtitles being downloaded, but will increase the chances of mistimed or incorrect subtitle text.", + "OptionRequirePerfectSubtitleMatchHelp": "Wymaganie perfekcyjnego dopasowania ograniczy list\u0119 napis\u00f3w tylko do tych, kt\u00f3re zosta\u0142y przetestowane i zweryfikowane jako dok\u0142adnie pasuj\u0105ce. Odznaczenie tej opcji zwi\u0119kszy szans\u0119 pobrania napis\u00f3w, ale zwi\u0119kszy tak\u017ce szans\u0119 na pobranie napis\u00f3w b\u0142\u0119dnych lub o b\u0142\u0119dnej sygnaturze czasowej.", "ErrorAddingGuestAccount1": "Wyst\u0105pi\u0142 b\u0142\u0105d podczas dodawania konta Emby Connect. Czy tw\u00f3j go\u015b\u0107 posiada konto Emby? Mo\u017ce zarejestrowa\u0107 si\u0119 na {0}.", "ErrorAddingGuestAccount2": "Upewnij si\u0119, \u017ce tw\u00f3j go\u015b\u0107 zako\u0144czy\u0142 aktywacj\u0119 post\u0119puj\u0105c zgodnie z instrukcjami zawartymi w wiadomo\u015bci e-mail wysy\u0142anej po utworzeniu konta. Je\u015bli nie otrzyma\u0142 tej wiadomo\u015bci, prosz\u0119 wy\u015blij e-mail na {0} z zawieraj\u0105cego tw\u00f3j adres e-mail, jak i jego.", "GuestUserNotFound": "Brak u\u017cytkownika o podanej nazwie. Upewnij si\u0119, \u017ce nazwa jest poprawna i spr\u00f3buj ponownie albo wprowad\u017a jego adres pocztowy.", "Yesterday": "Wczoraj", "DownloadImagesInAdvanceWarning": "Pobieranie wszystkich obraz\u00f3w z wyprzedzeniem mo\u017ce skutkowa\u0107 d\u0142u\u017cszym czasem skanowania biblioteki", - "MetadataSettingChangeHelp": "Zmiana ustawie\u0144 metadanych wp\u0142ynie ns now\u0105 tre\u015b\u0107, kt\u00f3ra b\u0119dzie dodawana w przysz\u0142o\u015bci. Aby od\u015bwie\u017cy\u0107 istniej\u0105c\u0105 zawarto\u015b\u0107, otw\u00f3rz ekran szczeg\u00f3\u0142\u00f3w, a nast\u0119pnie kliknij przycisk Od\u015bwie\u017c lub wykonaj od\u015bwie\u017canie zbiorcze, korzystaj\u0105c z mened\u017cera metadanych.", + "MetadataSettingChangeHelp": "Zmiana ustawie\u0144 metadanych wp\u0142ynie na now\u0105 tre\u015b\u0107, kt\u00f3ra b\u0119dzie dodawana w przysz\u0142o\u015bci. Aby od\u015bwie\u017cy\u0107 istniej\u0105c\u0105 zawarto\u015b\u0107, otw\u00f3rz ekran szczeg\u00f3\u0142\u00f3w, a nast\u0119pnie kliknij przycisk Od\u015bwie\u017c lub wykonaj od\u015bwie\u017canie zbiorcze, korzystaj\u0105c z mened\u017cera metadanych.", "OptionConvertRecordingPreserveAudio": "Zachowaj oryginalne audio przy konwersji nagra\u0144 (je\u015bli to mo\u017cliwe)", "OptionConvertRecordingPreserveAudioHelp": "Zapewni to lepszy d\u017awi\u0119k, ale mo\u017ce wymaga\u0107 transkodowania podczas odtwarzania na niekt\u00f3rych urz\u0105dzeniach.", "OptionConvertRecordingPreserveVideo": "Zachowaj oryginalne wideo przy konwersji nagra\u0144", "OptionConvertRecordingPreserveVideoHelp": "Zapewni to lepszy obraz, ale mo\u017ce wymaga\u0107 transkodowania podczas odtwarzania na niekt\u00f3rych urz\u0105dzeniach.", "AddItemToCollectionHelp": "Dodaj obiekty do kolekcji wyszukuj\u0105c je i u\u017cyj prawy przycisk myszy lub dotknij menu, aby doda\u0107 je do kolekcji.", "HeaderHealthMonitor": "Monitor stanu", - "HealthMonitorNoAlerts": "Nie ma aktywnych alert\u00f3w.", - "RecordingPathChangeMessage": "Zmiana katalogu z nagraniami nie spowoduje przeniesienia ju\u017c istniej\u0105cych nagra\u0107 ze starej lokalizacji do nowej. Je\u015bli jest to wymagane, nale\u017cy to zrobi\u0107 r\u0119cznie.", - "VisualLoginFormHelp": "Wybierz u\u017cytkownika, albo zaloguj si\u0119 r\u0119cznie", - "LabelSportsCategories": "Kategorie sportowe:", + "HealthMonitorNoAlerts": "Brak aktywnych alarm\u00f3w.", + "RecordingPathChangeMessage": "Zmiana folderu z nagraniami nie spowoduje przeniesienia ju\u017c istniej\u0105cych nagra\u0144, ze starej lokalizacji do nowej. Je\u015bli jest to wymagane, nale\u017cy to zrobi\u0107 manualnie.", + "VisualLoginFormHelp": "Wybierz u\u017cytkownika albo zaloguj si\u0119 manualnie", + "LabelSportsCategories": "Kategorie wydarze\u0144 sportowych:", "XmlTvSportsCategoriesHelp": "Programy z tymi kategoriami, b\u0119d\u0105 wy\u015bwietlane jako sportowe. Oddziel je u\u017cywaj\u0105c '|'.", "LabelNewsCategories": "Kategorie wiadomo\u015bci:", "XmlTvNewsCategoriesHelp": "Programy z tymi kategoriami, b\u0119d\u0105 wy\u015bwietlane jako wiadomo\u015bci. Oddziel je u\u017cywaj\u0105c '|'.", @@ -1848,7 +1848,7 @@ "XmlTvPathHelp": "Folder pliku xml tv. Emby b\u0119dzie wczytywa\u0107 ten plik i okresowo sprawdza\u0107 aktualizacje. Jeste\u015b odpowiedzialny za utworzenie i aktualizowanie tego pliku.", "LabelBindToLocalNetworkAddress": "Przypisz do lokalnego adresu sieciowego:", "LabelBindToLocalNetworkAddressHelp": "Opcjonalne. Zast\u0105pi to lokalny adres IP adresem serwera HTTP Je\u015bli pozostanie puste, serwer b\u0119dzie wi\u0105za\u0107 si\u0119 z wszystkimi dost\u0119pnymi adresami. Zmiana tej warto\u015bci wymaga ponownego uruchomienia serwera Emby.", - "TitleHostingSettings": "Ustawienia Hosting", + "TitleHostingSettings": "Ustawienia us\u0142ugi", "SettingsWarning": "Zmiana tych warto\u015bci mo\u017ce spowodowa\u0107 niestabilno\u015b\u0107 lub awari\u0119 po\u0142\u0105czenia. Je\u015bli wyst\u0105pi\u0105 jakiekolwiek problemy, zalecamy powr\u00f3t do ustawie\u0144 ich na domy\u015blne.", "MapChannels": "Mapuj kana\u0142y", "LabelffmpegPath": "Folder aplikacji FFmpeg:", @@ -1864,73 +1864,73 @@ "OptionUseSystemInstalledVersion": "U\u017cywaj wersji systemowej", "OptionUseMyCustomVersion": "U\u017cywaj wersji niestandardowej", "FFmpegSavePathNotFound": "Nieudana lokalizacja aplikacji FFmpeg przy u\u017cyciu wprowadzonego folderu. Aplikacja FFprobe jest r\u00f3wnie\u017c wymagana i musi znajdowa\u0107 si\u0119 w tym samym folderze. Komponenty te s\u0105 zwykle zawarte w jednym pakiecie. Sprawd\u017a folder i spr\u00f3buj ponownie.", - "XmlTvPremiere": "Domy\u015blnie Emby zaimportuje {0} godzin programu. Importowanie nieograniczonej danych wymaga aktywnego subskrypcji Emby Premiere.", - "MoreFromValue": "Wi\u0119cej w {0}", + "XmlTvPremiere": "Domy\u015blnie, Emby zaimportuje {0} godzin przewodnika. Import nieograniczony czasowo wymaga aktywnego subskrypcji Emby Premium.", + "MoreFromValue": "Wi\u0119cej z {0}", "OptionSaveMetadataAsHiddenHelp": "Zmiana ta b\u0119dzie mia\u0142a zastosowanie do nowych metadanych zapisanych w przysz\u0142o\u015bci. Istniej\u0105ce pliki metadanych zostan\u0105 zaktualizowane przy nast\u0119pnym zapisie przez serwer Emby.", "EnablePhotos": "Aktywuj zdj\u0119cia", - "EnablePhotosHelp": "Zdj\u0119cia zostan\u0105 wykryte i wy\u015bwietlone obok innych plik\u00f3w multimedialnych.", + "EnablePhotosHelp": "Zdj\u0119cia b\u0119d\u0105 wykrywane i wy\u015bwietlane obok innych plik\u00f3w multimedialnych.", "MakeAvailableOffline": "Dost\u0119pne bez po\u0142\u0105czenia", "RemoveDownload": "Usu\u0144 pobieranie", "SyncToOtherDevices": "Synchronizuj z innymi urz\u0105dzeniami", "ManageOfflineDownloads": "Zarz\u0105dzaj pobranymi materia\u0142ami", - "MessageDownloadScheduled": "Pobieranie zaplanowane", + "MessageDownloadScheduled": "Zaplanowano pobieranie", "RememberMe": "Zapami\u0119taj mnie", "HeaderOfflineSync": "Synchronizacja offline", "LabelMaxAudioFileBitrate": "Maksymalny przep\u0142ywno\u015b\u0107 plik\u00f3w d\u017awi\u0119kowych:", "LabelMaxAudioFileBitrateHelp": "Pliki d\u017awi\u0119kowe o wy\u017cszej przep\u0142ywno\u015bci b\u0119d\u0105 konwertowane przez serwer Emby. Wybierz wy\u017csz\u0105 warto\u015b\u0107 dla uzyskania lepszej jako\u015bci, ni\u017csz\u0105 warto\u015b\u0107 dla zachowania przestrzeni dyskowej.", "LabelVaapiDevice": "Urz\u0105dzenie VA API:", "LabelVaapiDeviceHelp": "Jest to maszyna renderuj\u0105ca u\u017cyta w celu przy\u015bpieszenia sprz\u0119towego.", - "HowToConnectFromEmbyApps": "Jak pod\u0142\u0105czy\u0107 z aplikacji Emby", + "HowToConnectFromEmbyApps": "Jak si\u0119 po\u0142\u0105czy\u0107 z aplikacji Emby", "OptionExtractChapterImage": "Wyodr\u0119bniaj obrazy rozdzia\u0142\u00f3w", "Downloads": "Pobrania", - "LabelEnableDebugLogging": "Wl\u0105cz logowanie dubiggingu", + "LabelEnableDebugLogging": "Rejestruj szczeg\u00f3\u0142owe informacje diagnostyczne", "OptionEnableExternalContentInSuggestions": "Dodawaj zewn\u0119trzn\u0105 zawarto\u015b\u0107 do polecanych", - "OptionEnableExternalContentInSuggestionsHelp": "Zezwalaj, aby zwiastuny i programy telewizyjne by\u0142y dodawane do polecanej zawarto\u015bci.", + "OptionEnableExternalContentInSuggestionsHelp": "Umo\u017cliwia dodawanie zwiastun\u00f3w i program\u00f3w telewizyjnych do polecanej zawarto\u015bci.", "LabelH264EncodingPreset": "Zestaw kodowania H264:", - "H264EncodingPresetHelp": "Wybierz warto\u015b\u0107 faster, \u017ceby zwi\u0119kszy\u0107 wydajno\u015b\u0107, albo slower \u017ceby zwi\u0119kszy\u0107 jako\u015b\u0107.", + "H264EncodingPresetHelp": "Wybierz warto\u015b\u0107 faster, \u017ceby zwi\u0119kszy\u0107 wydajno\u015b\u0107, albo slower, \u017ceby zwi\u0119kszy\u0107 jako\u015b\u0107.", "LabelH264Crf": "CRF kodowania H264:", "H264CrfHelp": "Constant Rate Factor (CRF) to domy\u015blna jako\u015b\u0107 kodowania x264. Mo\u017cesz j\u0105 ustawi\u0107 w zakresie 0-51, gdzie ni\u017csze warto\u015bci zwi\u0119kszaj\u0105 jako\u015b\u0107 (kosztem wi\u0119kszego rozmiaru pliku). Rozs\u0105dne warto\u015bci to zakres 18-28. Domy\u015blnie jest to warto\u015b\u0107 23 - mo\u017cesz jej u\u017cy\u0107 jako warto\u015bci pocz\u0105tkowej.", - "Sports": "Sport", + "Sports": "Wydarzenia spotowe", "HeaderForKids": "Dla dzieci", "HeaderRecordingGroups": "Grupy nagra\u0144", "LabelConvertRecordingsTo": "Konwertuj nagrania do:", "HeaderUpcomingOnTV": "Wkr\u00f3tce na antenie", - "LabelOptionalNetworkPath": "(Niewymagane) Udost\u0119pniony folder sieciowy:", - "LabelOptionalNetworkPathHelp": "Je\u015bli folder jest udost\u0119pniony w Twojej sieci, podanie jego \u015bcie\u017cki sieciowej, umo\u017cliwi bezpo\u015brednie odtwarzanie na innych urz\u0105dzeniach.", + "LabelOptionalNetworkPath": "(Opcjonalne) Udost\u0119pniony folder sieciowy:", + "LabelOptionalNetworkPathHelp": "Je\u015bli folder jest udost\u0119pniony w sieci domowej, podanie jego \u015bcie\u017cki, umo\u017cliwi bezpo\u015brednie odtwarzanie na innych urz\u0105dzeniach.", "ButtonPlayExternalPlayer": "Odtwarzaj zewn\u0119trznym odtwarzaczem", "NotScheduledToRecord": "Nie zaplanowano nagrania", "SynologyUpdateInstructions": "Zaloguj si\u0119 do DSM i przejd\u017a do Centrum Pakiet\u00f3w w celu aktualizacji.", "LatestFromLibrary": "Ostatnie {0}", "LabelMoviePrefix": "Prefiks filmu:", - "LabelMoviePrefixHelp": "Je\u015bli prefiks jest stosowany do tytu\u0142\u00f3w film\u00f3w, wprowad\u017a go tutaj aby Emby obs\u0142ugiwa\u0142 go prawid\u0142owo.", + "LabelMoviePrefixHelp": "Je\u015bli stosujesz prefiksy dla tytu\u0142\u00f3w film\u00f3w, wprowad\u017a go tutaj, aby Emby m\u00f3g\u0142 je obs\u0142ugiwa\u0107 prawid\u0142owo.", "HeaderRecordingPostProcessing": "Przetwarzanie finalne nagra\u0144", "LabelPostProcessorArguments": "Argumenty linii polece\u0144 aplikacji finalnego przetwarzania", - "LabelPostProcessorArgumentsHelp": "Skorzystaj z {path} w roli folderu pliku nagrania.", + "LabelPostProcessorArgumentsHelp": "Skorzystaj z wype\u0142niacza {path} jako folder pliku nagrania.", "LabelPostProcessor": "Aplikacja finalnego przetwarzania:", "ErrorAddingXmlTvFile": "Podczas pr\u00f3by dost\u0119pu do pliku XmlTV wyst\u0105pi\u0142 b\u0142\u0105d. Upewnij si\u0119, \u017ce plik istnieje i spr\u00f3buj ponownie.", - "OptionAutomaticallyGroupSeries": "Scalaj automatycznie seriale znajduj\u0105ce si\u0119 w wielu folderach", + "OptionAutomaticallyGroupSeries": "Scalaj seriale znajduj\u0105ce si\u0119 w wielu folderach", "OptionAutomaticallyGroupSeriesHelp": "Umo\u017cliwia automatyczne scalanie seriali, rozproszonych w wielu folderach biblioteki, w pojedyncze seriale.", "ErrorReachingEmbyConnect": "Podczas pr\u00f3by po\u0142\u0105czenia z serwerem Emby Connect wyst\u0105pi\u0142 b\u0142\u0105d. Upewnij si\u0119, \u017ce Twoje po\u0142\u0105czenie internetowe dzia\u0142a prawid\u0142owo i spr\u00f3buj ponownie.", "WhenDidYouPurchaseApp": "Kiedy pierwotnie zakupiono t\u0119 aplikacj\u0119?", "PreferEmbeddedTitlesOverFileNames": "Preferuj wbudowane tytu\u0142y zamiast nazw plik\u00f3w", - "PreferEmbeddedTitlesOverFileNamesHelp": "Okre\u015bla domy\u015blnie wy\u015bwietlany tytu\u0142, gdy brak metadanych lokalnych i od dostawc\u00f3w informacji.", - "HeaderUpcomingEpisodes": "Nadchodz\u0105ce Odcinki", - "HeaderFavoriteVideos": "Ulubione Nagrania", + "PreferEmbeddedTitlesOverFileNamesHelp": "Okre\u015bla domy\u015blnie wy\u015bwietlany tytu\u0142, gdy brak dost\u0119pnych metadanych lokalnych i od dostawc\u00f3w internetowych.", + "HeaderUpcomingEpisodes": "Odcinki wkr\u00f3tce na antenie", + "HeaderFavoriteVideos": "Nagrania ulubione", "HeaderLiveTvTunerSetup": "Konfiguracja tunera telewizyjnego", - "HeaderDetectMyDevices": "Wykryj Moje Urz\u0105dzenia", + "HeaderDetectMyDevices": "Wykryj moje urz\u0105dzenia", "MessagePleaseWait": "Prosz\u0119 czeka\u0107. To mo\u017ce potrwa\u0107 chwil\u0119.", "DetectingDevices": "Wykrywanie urz\u0105dze\u0144", - "LabelAutomaticallyRefreshInternetMetadataEvery": "Automatycznie od\u015bwie\u017caj metadane z internetu", + "LabelAutomaticallyRefreshInternetMetadataEvery": "Od\u015bwie\u017caj metadane z Internetu", "Never": "Nigdy", "EveryNDays": "Co {0} dni", - "HeaderNewDevices": "Nowe Urz\u0105dzenia", + "HeaderNewDevices": "Nowe urz\u0105dzenia", "HeaderOnNow": "Teraz", - "Downloading": "Pobieranie", + "Downloading": "Trwa pobieranie", "LabelCertificatePassword": "Has\u0142o do certyfikatu:", "LabelCertificatePasswordHelp": "Je\u015bli Tw\u00f3j certyfikat wymaga podania has\u0142a, wprowad\u017a go tutaj.", "Programs": "Programy", "News": "Wiadomo\u015bci", - "HeaderDownloadSync": "Pobierz i synchronizuj", + "HeaderDownloadSync": "Synchronizacja", "EnableHardwareDecoding": "Aktywuj dekodowanie sprz\u0119towe", "EnableHardwareEncoding": "Aktywuj kodowanie sprz\u0119towe", "Rate": "Oce\u0144", diff --git a/dashboard-ui/strings/ru.json b/dashboard-ui/strings/ru.json index 0f54e8d6be..90c211be68 100644 --- a/dashboard-ui/strings/ru.json +++ b/dashboard-ui/strings/ru.json @@ -9,8 +9,8 @@ "ButtonQuickStartGuide": "\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0443...", "LabelYourFirstName": "\u0412\u0430\u0448\u0435 \u0438\u043c\u044f:", "MoreUsersCanBeAddedLater": "\u041f\u043e\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0449\u0451 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u00ab\u041f\u0430\u043d\u0435\u043b\u0438\u00bb.", - "UserProfilesIntro": "\u0412 Emby \u0435\u0441\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0438\u043c\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0439 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f.", - "WizardCompleted": "\u042d\u0442\u043e \u0432\u0441\u0451, \u0447\u0442\u043e \u043d\u0430\u043c \u0431\u044b\u043b\u043e \u043d\u0443\u0436\u043d\u043e . Emby \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e \u0432\u0430\u0448\u0435\u0439 \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0435. \u041e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u043f\u043e\u043a\u0430 \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043d\u0430\u0448\u0438\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438, \u0430 \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c<\/b>, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u041f\u0430\u043d\u0435\u043b\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/b>.", + "UserProfilesIntro": "\u0412 Emby \u043d\u0430\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043e\u0431\u043b\u0430\u0434\u0430\u0442\u044c \u0441\u0432\u043e\u0438\u043c\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f.", + "WizardCompleted": "\u042d\u0442\u043e \u0432\u0441\u0451, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u0435\u0439\u0447\u0430\u0441. Emby \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e \u0432\u0430\u0448\u0435\u0439 \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0435. \u041e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u043f\u043e\u043a\u0430 \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043d\u0430\u0448\u0438\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438, \u0430 \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0436\u043c\u0438\u0442\u0435 \u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c<\/b>, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u041f\u0430\u043d\u0435\u043b\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/b>.", "LabelConfigureSettings": "\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b", "HeaderTermsOfService": "\u0423\u0441\u043b\u043e\u0432\u0438\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u0441\u043b\u0443\u0433 Emby", "MessagePleaseAcceptTermsOfService": "\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0435 \u0441 \u0423\u0441\u043b\u043e\u0432\u0438\u044f\u043c\u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u0441\u043b\u0443\u0433 \u0438 \u041f\u043e\u043b\u0438\u0442\u0438\u043a\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c.", @@ -21,7 +21,7 @@ "ButtonOrganize": "\u0423\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0438\u0442\u044c", "HeaderSupporterBenefits": "\u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 Emby Premiere", "HeaderAddUser": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f", - "LabelAddConnectSupporterHelp": "\u0427\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u0442 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u0435\u0433\u043e \u0443\u0447\u0451\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0441 Emby Connect.", + "LabelAddConnectSupporterHelp": "\u0427\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u0442 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u0435\u0433\u043e \u0443\u0447\u0451\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u043a Emby Connect \u0441 \u0435\u0433\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f.", "LabelPinCode": "PIN-\u043a\u043e\u0434:", "OptionHideWatchedContentFromLatestMedia": "\u0421\u043a\u0440\u044b\u0442\u044c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0438\u0437 \u041d\u043e\u0432\u0435\u0439\u0448\u0438\u0445 \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0445", "DeleteMedia": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0435", @@ -32,7 +32,7 @@ "ButtonExit": "\u0412\u044b\u0439\u0442\u0438", "ButtonNew": "\u041d\u043e\u0432\u043e\u0435", "All": "\u0412\u0441\u0435", - "OptionDev": "\u0414\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432", + "OptionDev": "\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043e\u0447\u043d\u0430\u044f", "OptionBeta": "\u0411\u0435\u0442\u0430", "HeaderTaskTriggers": "\u0422\u0440\u0438\u0433\u0433\u0435\u0440\u044b \u0437\u0430\u0434\u0430\u0447\u0438", "HeaderTV": "\u0422\u0412", @@ -54,10 +54,10 @@ "LabelCustomCertificatePath": "\u041f\u0443\u0442\u044c \u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c\u0443 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0443:", "LabelCustomCertificatePathHelp": "\u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b .pfx SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430. \u041f\u0440\u0438 \u0435\u0433\u043e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u0441\u0435\u0440\u0432\u0435\u0440 \u0441\u043e\u0437\u0434\u0430\u0441\u0442 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442.", "TitleNotifications": "\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f", - "OptionDetectArchiveFilesAsMedia": "\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0430\u0440\u0445\u0438\u0432\u044b \u043a\u0430\u043a \u043c\u0435\u0434\u0438\u0430\u0444\u0430\u0439\u043b\u044b", + "OptionDetectArchiveFilesAsMedia": "\u0424\u0430\u0439\u043b\u044b \u0430\u0440\u0445\u0438\u0432\u043e\u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0435", "OptionDetectArchiveFilesAsMediaHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u0444\u0430\u0439\u043b\u044b \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043c\u0438 .RAR \u0438 .ZIP \u0431\u0443\u0434\u0443\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u043a\u0430\u043a \u043c\u0435\u0434\u0438\u0430\u0444\u0430\u0439\u043b\u044b.", "LabelEnterConnectUserName": "\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043b\u0438 email:", - "LabelEnterConnectUserNameHelp": "\u0417\u0434\u0435\u0441\u044c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043b\u0438 email \u043e\u0442 Emby Online.", + "LabelEnterConnectUserNameHelp": "\u042d\u0442\u043e - \u0432\u0430\u0448\u0435 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Emby \u0438\u043b\u0438 \u0430\u0434\u0440\u0435\u0441 \u042d-\u043f\u043e\u0447\u0442\u044b.", "HeaderSyncJobInfo": "\u0417\u0430\u0434\u0430\u043d\u0438\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438", "FolderTypeMixed": "\u0421\u043c\u0435\u0448\u0430\u043d\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435", "FolderTypeMovies": "\u0424\u0438\u043b\u044c\u043c\u044b", @@ -79,7 +79,7 @@ "LabelSaveLocalMetadata": "\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u044c \u043c\u0435\u0434\u0438\u0430\u043f\u0430\u043f\u043e\u043a", "LabelSaveLocalMetadataHelp": "\u041f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0439 \u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432\u043d\u0443\u0442\u0440\u044c \u043c\u0435\u0434\u0438\u0430\u043f\u0430\u043f\u043e\u043a, \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432 \u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0433\u0434\u0435 \u0438\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043f\u0440\u0430\u0432\u0438\u0442\u044c.", "LabelDownloadInternetMetadata": "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430", - "LabelDownloadInternetMetadataHelp": "Emby Server \u043c\u043e\u0436\u0435\u0442 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0434\u043e\u043f. \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0432\u0430\u0448\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0435 \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f.", + "LabelDownloadInternetMetadataHelp": "\u0412 Emby Server \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0432\u043e\u0438\u0445 \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0445, \u0447\u0442\u043e\u0431\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f.", "TabPassword": "\u041f\u0430\u0440\u043e\u043b\u044c", "TabLibraryAccess": "\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0435", "TabAccess": "\u0414\u043e\u0441\u0442\u0443\u043f", @@ -134,7 +134,7 @@ "ImageUploadAspectRatioHelp": "\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u043e\u0435 \u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0441\u0442\u043e\u0440\u043e\u043d - 1:1. \u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e JPG\/PNG.", "MessageNothingHere": "\u0417\u0434\u0435\u0441\u044c \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u0442.", "MessagePleaseEnsureInternetMetadata": "\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430.", - "AlreadyPaidHelp1": "\u0415\u0441\u043b\u0438 \u0432\u044b \u0443\u0436\u0435 \u0437\u0430\u043f\u043b\u0430\u0442\u0438\u043b\u0438 \u0437\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043f\u0440\u043e\u0448\u043b\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Media Browser for Android, \u0432\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043b\u0430\u0442\u0438\u0442\u044c \u0441\u043d\u043e\u0432\u0430, \u0447\u0442\u043e\u0431\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \u041e\u041a, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u043c \u043f\u0438\u0441\u044c\u043c\u043e \u043d\u0430 {0}, \u0438 \u043c\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e \u0434\u043b\u044f \u0432\u0430\u0441.", + "AlreadyPaidHelp1": "\u0415\u0441\u043b\u0438 \u0432\u044b \u0443\u0436\u0435 \u0437\u0430\u043f\u043b\u0430\u0442\u0438\u043b\u0438 \u0437\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0441\u0442\u0430\u0440\u0448\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 Media Browser for Android, \u0432\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043b\u0430\u0442\u0438\u0442\u044c \u0441\u043d\u043e\u0432\u0430, \u0447\u0442\u043e\u0431\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \u041e\u041a, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u043c \u044d-\u043f\u043e\u0447\u0442\u0443 \u043d\u0430 {0}, \u0438 \u043c\u044b \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u043c \u044d\u0442\u043e \u0434\u043b\u044f \u0432\u0430\u0441.", "AlreadyPaidHelp2": "\u0412\u044b \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u043b\u0438 Emby Premiere? \u041f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 \u0434\u0438\u0430\u043b\u043e\u0433, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 Emby Premiere \u0432 \u0432\u0430\u0448\u0435\u0439 \u041f\u0430\u043d\u0435\u043b\u0438 Emby Server \u043f\u043e \u0421\u043f\u0440\u0430\u0432\u043a\u0430 -> Emby Premiere, \u0438 \u043e\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438.", "TabSuggestions": "\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438", "TabLatest": "\u041d\u043e\u0432\u0435\u0439\u0448\u0435\u0435", @@ -147,7 +147,7 @@ "HeaderFilters": "\u0424\u0438\u043b\u044c\u0442\u0440\u044b", "ButtonFilter": "\u0424\u0438\u043b\u044c\u0442\u0440", "OptionFavorite": "\u0418\u0437\u0431\u0440\u0430\u043d\u043d\u043e\u0435", - "OptionLikes": "\u041f\u043e\u043d\u0440\u0430\u0432\u0438\u0432\u0448\u0435\u0435\u0441\u044f", + "OptionLikes": "\u041d\u0440\u0430\u0432\u044f\u0449\u0438\u0435\u0441\u044f", "OptionDislikes": "\u041d\u0435 \u043d\u0440\u0430\u0432\u044f\u0449\u0438\u0435\u0441\u044f", "OptionActors": "\u0410\u043a\u0442\u0451\u0440\u044b", "OptionGuestStars": "\u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0451\u043d\u043d\u044b\u0435 \u0430\u043a\u0442\u0451\u0440\u044b", @@ -568,7 +568,7 @@ "CategoryApplication": "\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435", "CategoryPlugin": "\u041f\u043b\u0430\u0433\u0438\u043d", "LabelAvailableTokens": "\u0418\u043c\u0435\u044e\u0449\u0438\u0435\u0441\u044f \u043c\u0430\u0440\u043a\u0435\u0440\u044b:", - "AdditionalNotificationServices": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439.", + "AdditionalNotificationServices": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u0443\u0433\u0438 \u0434\u043b\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439.", "OptionAllUsers": "\u0412\u0441\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438", "OptionAdminUsers": "\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b", "OptionCustomUsers": "\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0435", @@ -708,10 +708,10 @@ "ButtonRegister": "\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f", "LabelSkipIfAudioTrackPresent": "\u041f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u0435\u0441\u043b\u0438 \u0430\u0443\u0434\u0438\u043e\u0434\u043e\u0440\u043e\u0436\u043a\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u043e\u043c\u0443 \u044f\u0437\u044b\u043a\u0443", "LabelSkipIfAudioTrackPresentHelp": "\u0421\u043d\u044f\u0442\u044c \u0444\u043b\u0430\u0436\u043e\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0432\u0438\u0434\u0435\u043e, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u044f\u0437\u044b\u043a\u0430 \u0430\u0443\u0434\u0438\u043e.", - "SendMessage": "Send message", + "SendMessage": "\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435", "HeaderSendMessage": "\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f", "ButtonSend": "\u041f\u0435\u0440\u0435\u0434\u0430\u0442\u044c", - "ViewPlaybackInfo": "View playback info", + "ViewPlaybackInfo": "\u0421\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u043c", "LabelMessageText": "\u0422\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f:", "LabelMessageTitle": "\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f:", "MessageNoAvailablePlugins": "\u041f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f.", @@ -1821,7 +1821,7 @@ "LabelAllowHWTranscoding": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443", "AllowHWTranscodingHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u0442\u044e\u043d\u0435\u0440\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u043f\u043e\u0442\u043e\u043a\u0438. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0443, \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u0443\u044e \u0432 Emby Server.", "OptionRequirePerfectSubtitleMatch": "\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043c\u043e\u0438\u043c \u0432\u0438\u0434\u0435\u043e\u0444\u0430\u0439\u043b\u0430\u043c", - "OptionRequirePerfectSubtitleMatchHelp": "Requiring a perfect match will filter subtitles to include only those that have been tested and verified with your exact video file. Unchecking this will increase the likelihood of subtitles being downloaded, but will increase the chances of mistimed or incorrect subtitle text.", + "OptionRequirePerfectSubtitleMatchHelp": "\u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u044b \u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u044b \u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0441 \u0432\u0430\u0448\u0438\u043c \u0432\u0438\u0434\u0435\u043e\u0444\u0430\u0439\u043b\u043e\u043c. \u041f\u0440\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e, \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u0441\u044f \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432, \u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0430\u0442\u0441\u044f \u0448\u0430\u043d\u0441\u044b \u043d\u0435\u0441\u043e\u0432\u043f\u0430\u0434\u0435\u043d\u0438\u044f \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u043b\u0438 \u043d\u0435\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432.", "ErrorAddingGuestAccount1": "\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 Emby Connect. \u0421\u043e\u0437\u0434\u0430\u043b \u043b\u0438 \u0432\u0430\u0448 \u0433\u043e\u0441\u0442\u044c \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c Emby? \u041e\u043d \u0441\u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 {0}.", "ErrorAddingGuestAccount2": "\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u0430\u0448 \u0433\u043e\u0441\u0442\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u044e, \u0441\u043b\u0435\u0434\u0443\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c \u0432 \u043f\u0438\u0441\u044c\u043c\u0435, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438. \u0415\u0441\u043b\u0438 \u043e\u043d \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0442\u0430\u043a\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e, \u0442\u043e\u0433\u0434\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043f\u0438\u0441\u044c\u043c\u043e \u043d\u0430 {0}, \u0438 \u043f\u0440\u0438\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 \u0430\u0434\u0440\u0435\u0441 \u042d-\u043f\u043e\u0447\u0442\u044b, \u043d\u0430\u0440\u044f\u0434\u0443 \u0441 \u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u043e\u043c.", "GuestUserNotFound": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0438\u043c\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043e \u0432\u0435\u0440\u043d\u043e \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443, \u0438\u043b\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0432\u0432\u0435\u0441\u0442\u0438 \u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441 \u042d-\u043f\u043e\u0447\u0442\u044b.",