From dd0540c6b97a0f253e890f7646979724ef9e092c Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 23 Aug 2016 02:42:15 -0400 Subject: [PATCH 1/7] update sync --- .../emby-webcomponents/.bower.json | 8 +- .../emby-webcomponents/focusmanager.js | 5 + .../emby-webcomponents/itemcontextmenu.js | 8 +- .../multiselect/multiselect.js | 12 +- .../scroller/smoothscroller.js | 2 +- .../emby-webcomponents/strings/en-US.json | 18 +- .../emby-webcomponents/sync/sync.js | 526 ++++++++++++++++++ .../bower_components/iron-meta/.bower.json | 6 +- .../bower_components/polymer/.bower.json | 6 +- .../components/categorysyncbuttons.js | 3 +- dashboard-ui/scripts/itemdetailpage.js | 7 +- dashboard-ui/scripts/site.js | 3 +- dashboard-ui/scripts/sync.js | 413 -------------- 13 files changed, 578 insertions(+), 439 deletions(-) create mode 100644 dashboard-ui/bower_components/emby-webcomponents/sync/sync.js delete mode 100644 dashboard-ui/scripts/sync.js diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index cb026748a..b8db56203 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -14,12 +14,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.4.178", - "_release": "1.4.178", + "version": "1.4.180", + "_release": "1.4.180", "_resolution": { "type": "version", - "tag": "1.4.178", - "commit": "7c624942d8f173858375ee1b3dfe735a82245af6" + "tag": "1.4.180", + "commit": "053e9d6503c1b6322ce41ad044787990026d8e18" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.1", diff --git a/dashboard-ui/bower_components/emby-webcomponents/focusmanager.js b/dashboard-ui/bower_components/emby-webcomponents/focusmanager.js index 9e0c02707..77de63122 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/focusmanager.js +++ b/dashboard-ui/bower_components/emby-webcomponents/focusmanager.js @@ -262,6 +262,11 @@ define(['dom'], function (dom) { var elementRect = getViewportBoundingClientRect(curr, windowData); + // not currently visible + if (!elementRect.width && !elementRect.height) { + continue; + } + switch (direction) { case 0: diff --git a/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js b/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js index 1fb4fae55..96ecf3b0a 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js +++ b/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js @@ -212,7 +212,7 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', } } - if (isMobileApp && options.sync !== false) { + if (options.sync !== false) { if (itemHelper.canSync(user, item)) { commands.push({ name: globalize.translate('sharedcomponents#SyncToOtherDevice'), @@ -428,7 +428,8 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', items: [ { Id: itemId - }] + }], + serverId: serverId }); }); getResolveFunction(resolve, id)(); @@ -442,7 +443,8 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', { Id: itemId }], - isLocalSync: true + isLocalSync: true, + serverId: serverId }); }); getResolveFunction(resolve, id)(); diff --git a/dashboard-ui/bower_components/emby-webcomponents/multiselect/multiselect.js b/dashboard-ui/bower_components/emby-webcomponents/multiselect/multiselect.js index aa68c6332..b5c9951d6 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/multiselect/multiselect.js +++ b/dashboard-ui/bower_components/emby-webcomponents/multiselect/multiselect.js @@ -259,15 +259,13 @@ menuItems.push({ name: globalize.translate('sharedcomponents#Refresh'), - id: 'refresh', - ironIcon: 'refresh' + id: 'refresh' }); if (user.Policy.EnableSync) { menuItems.push({ name: globalize.translate('sharedcomponents#SyncToOtherDevice'), - id: 'sync', - ironIcon: 'sync' + id: 'sync' }); } @@ -345,7 +343,8 @@ return { Id: i }; - }) + }), + serverId: serverId }); }); hideSelections(); @@ -359,7 +358,8 @@ Id: i }; }), - isLocalSync: true + isLocalSync: true, + serverId: serverId }); }); hideSelections(); diff --git a/dashboard-ui/bower_components/emby-webcomponents/scroller/smoothscroller.js b/dashboard-ui/bower_components/emby-webcomponents/scroller/smoothscroller.js index d72e4c415..83f5a5b1b 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/scroller/smoothscroller.js +++ b/dashboard-ui/bower_components/emby-webcomponents/scroller/smoothscroller.js @@ -415,7 +415,7 @@ define(['browser', 'layoutManager', 'dom', 'scrollStyles'], function (browser, l fill: 'both' }; - if (!animation.immediate || browser.animate) { + if (browser.animate) { animationConfig.easing = 'ease-out'; } diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json b/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json index 6b249205f..98669d50a 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/en-US.json @@ -254,5 +254,21 @@ "ServerNameIsShuttingDown": "Emby Server - {0} is shutting down.", "HeaderDeleteItems": "Delete Items", "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library. Are you sure you wish to continue?", - "PleaseRestartServerName": "Please restart Emby Server - {0}." + "PleaseRestartServerName": "Please restart Emby Server - {0}.", + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelQuality": "Quality:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "DownloadScheduled": "Download scheduled", + "LearnMore": "Learn more", + "LabelProfile": "Profile:", + "LabelBitrateMbps": "Bitrate (Mbps):", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "AutomaticallySyncNewContent": "Automatically sync new content", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", + "LabelItemLimit": "Item limit:", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to." } \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js b/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js new file mode 100644 index 000000000..55ea4e986 --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js @@ -0,0 +1,526 @@ +define(['apphost', 'globalize', 'connectionManager', 'layoutManager', 'shell', 'focusManager', 'scrollHelper', 'paper-icon-button-light', 'formDialogStyle'], function (appHost, globalize, connectionManager, layoutManager, shell, focusManager, scrollHelper) { + + var currentDialogOptions; + + function submitJob(dlg, apiClient, userId, syncOptions, form, dialogHelper) { + + if (!userId) { + throw new Error('userId cannot be null'); + } + + if (!syncOptions) { + throw new Error('syncOptions cannot be null'); + } + + if (!form) { + throw new Error('form cannot be null'); + } + + var selectSyncTarget = form.querySelector('#selectSyncTarget'); + var target = selectSyncTarget ? selectSyncTarget.value : null; + + if (!target) { + + require(['toast'], function (toast) { + toast(globalize.translate('sharedcomponents#PleaseSelectDeviceToSyncTo')); + }); + return false; + } + + var options = { + + userId: userId, + TargetId: target, + + ParentId: syncOptions.ParentId, + Category: syncOptions.Category + }; + + setJobValues(options, form); + + if (syncOptions.items && syncOptions.items.length) { + options.ItemIds = (syncOptions.items || []).map(function (i) { + return i.Id || i; + }).join(','); + } + + apiClient.ajax({ + + type: "POST", + url: apiClient.getUrl("Sync/Jobs"), + data: JSON.stringify(options), + contentType: "application/json", + dataType: 'json' + + }).then(function () { + + dialogHelper.close(dlg); + require(['toast'], function (toast) { + + var msg = target == apiClient.deviceId() ? globalize.translate('sharedcomponents#DownloadScheduled') : globalize.translate('sharedcomponents#SyncJobCreated'); + + toast(msg); + }); + }); + + return true; + } + + function setJobValues(job, form) { + + var txtBitrate = form.querySelector('#txtBitrate'); + var bitrate = txtBitrate ? txtBitrate.value : null; + + if (bitrate) { + bitrate = parseFloat(bitrate) * 1000000; + } + job.Bitrate = bitrate; + + var txtSyncJobName = form.querySelector('#txtSyncJobName'); + if (txtSyncJobName) { + job.Name = txtSyncJobName.value; + } + + var selectQuality = form.querySelector('#selectQuality'); + if (selectQuality) { + job.Quality = selectQuality.value; + } + + var selectProfile = form.querySelector('#selectProfile'); + if (selectProfile) { + job.Profile = selectProfile.value; + } + + var txtItemLimit = form.querySelector('#txtItemLimit'); + if (txtItemLimit) { + job.ItemLimit = txtItemLimit.value || null; + } + + var chkSyncNewContent = form.querySelector('#chkSyncNewContent'); + if (chkSyncNewContent) { + job.SyncNewContent = chkSyncNewContent.checked; + } + + var chkUnwatchedOnly = form.querySelector('#chkUnwatchedOnly'); + if (chkUnwatchedOnly) { + job.UnwatchedOnly = chkUnwatchedOnly.checked; + } + } + + function renderForm(options) { + + return new Promise(function (resolve, reject) { + + require(['emby-checkbox', 'emby-input', 'emby-select'], function () { + + appHost.appInfo().then(function (appInfo) { + renderFormInternal(options, appInfo, resolve); + }); + }); + }); + } + + function onHelpLinkClick(e) { + + shell.openUrl(this.href); + + e.preventDefault(); + return false; + } + + function renderFormInternal(options, appInfo, resolve) { + + var elem = options.elem; + var dialogOptions = options.dialogOptions; + + var targets = dialogOptions.Targets; + + var html = ''; + + var targetContainerClass = options.isLocalSync ? ' hide' : ''; + + if (options.showName || dialogOptions.Options.indexOf('Name') != -1) { + + html += '
'; + html += ''; + html += '
'; + } + + if (options.readOnlySyncTarget) { + html += '
'; + html += ''; + html += '
'; + } else { + html += '
'; + html += ''; + if (!targets.length) { + html += '
' + globalize.translate('sharedcomponents#LabelSyncNoTargetsHelp') + '
'; + html += ''; + } + html += '
'; + } + + html += '
'; + html += ''; + html += '
'; + html += '
'; + + html += '
'; + html += ''; + html += '
'; + html += '
'; + + html += '
'; + html += ''; + html += '
'; + + if (dialogOptions.Options.indexOf('UnwatchedOnly') != -1) { + html += '
'; + html += ''; + html += '
' + globalize.translate('sharedcomponents#SyncUnwatchedVideosOnlyHelp') + '
'; + html += '
'; + } + + if (dialogOptions.Options.indexOf('SyncNewContent') != -1) { + html += '
'; + html += ''; + html += '
' + globalize.translate('sharedcomponents#AutomaticallySyncNewContentHelp') + '
'; + html += '
'; + } + + if (dialogOptions.Options.indexOf('ItemLimit') != -1) { + html += '
'; + html += ''; + html += '
' + globalize.translate('sharedcomponents#LabelItemLimitHelp') + '
'; + html += '
'; + } + + //html += ''; + //html += ''; + + elem.innerHTML = html; + + var selectSyncTarget = elem.querySelector('#selectSyncTarget'); + if (selectSyncTarget) { + selectSyncTarget.addEventListener('change', function () { + loadQualityOptions(elem, this.value, options.dialogOptionsFn).then(resolve); + }); + selectSyncTarget.dispatchEvent(new CustomEvent('change', { + bubbles: true + })); + } + + var selectProfile = elem.querySelector('#selectProfile'); + if (selectProfile) { + selectProfile.addEventListener('change', function () { + onProfileChange(elem, this.value); + }); + selectProfile.dispatchEvent(new CustomEvent('change', { + bubbles: true + })); + } + + var selectQuality = elem.querySelector('#selectQuality'); + if (selectQuality) { + selectQuality.addEventListener('change', function () { + onQualityChange(elem, this.value); + }); + selectQuality.dispatchEvent(new CustomEvent('change', { + bubbles: true + })); + } + + var lnkHelp = elem.querySelector('.lnkHelp'); + if (lnkHelp) { + lnkHelp.addEventListener('click', onHelpLinkClick); + } + + focusManager.autoFocus(elem); + } + + function showSyncMenu(options) { + + return new Promise(function (resolve, reject) { + + require(["registrationservices", 'dialogHelper', 'formDialogStyle'], function (registrationServices, dialogHelper) { + registrationServices.validateFeature('sync').then(function () { + + showSyncMenuInternal(dialogHelper, options).then(resolve, reject); + + }, reject); + }); + }); + } + + function showSyncMenuInternal(dialogHelper, options) { + + var apiClient = connectionManager.getApiClient(options.serverId); + + var userId = apiClient.getCurrentUserId(); + + var dialogOptionsQuery = { + UserId: userId, + ItemIds: (options.items || []).map(function (i) { + return i.Id || i; + }).join(','), + + ParentId: options.ParentId, + Category: options.Category + }; + + return apiClient.getJSON(apiClient.getUrl('Sync/Options', dialogOptionsQuery)).then(function (dialogOptions) { + + currentDialogOptions = dialogOptions; + + var dlgElementOptions = { + removeOnClose: true, + scrollY: false, + autoFocus: false + }; + + if (layoutManager.tv) { + dlgElementOptions.size = 'fullscreen'; + } else { + dlgElementOptions.size = 'small'; + } + + var dlg = dialogHelper.createDialog(dlgElementOptions); + + dlg.classList.add('formDialog'); + + var html = ''; + html += '
'; + html += ''; + html += '
'; + html += globalize.translate('sharedcomponents#Sync'); + html += '
'; + + html += ''; + + html += '
'; + + html += '
'; + html += '
'; + + html += '
'; + + html += '
'; + + html += '

'; + html += ''; + html += '

'; + + html += '
'; + + html += '
'; + html += '
'; + + + dlg.innerHTML = html; + document.body.appendChild(dlg); + var submitted = false; + + dlg.querySelector('form').addEventListener('submit', function (e) { + + submitted = submitJob(dlg, apiClient, userId, options, this, dialogHelper); + + e.preventDefault(); + return false; + }); + + dlg.querySelector('.btnCancel').addEventListener('click', function () { + dialogHelper.close(dlg); + }); + + if (layoutManager.tv) { + scrollHelper.centerFocus.on(dlg.querySelector('.formDialogContent'), false); + } + + var promise = dialogHelper.open(dlg); + + renderForm({ + elem: dlg.querySelector('.formFields'), + dialogOptions: dialogOptions, + dialogOptionsFn: getTargetDialogOptionsFn(apiClient, dialogOptionsQuery), + isLocalSync: options.isLocalSync + }); + + return promise.then(function () { + if (submitted) { + return Promise.resolve(); + } + return Promise.reject(); + }); + }); + } + + function getTargetDialogOptionsFn(apiClient, query) { + + return function (targetId) { + + query.TargetId = targetId; + return apiClient.getJSON(apiClient.getUrl('Sync/Options', query)); + }; + } + + function setQualityFieldVisible(form, visible) { + + var fldQuality = form.querySelector('.fldQuality'); + var selectQuality = form.querySelector('#selectQuality'); + + if (visible) { + if (fldQuality) { + fldQuality.classList.remove('hide'); + } + if (selectQuality) { + selectQuality.setAttribute('required', 'required'); + } + } else { + if (fldQuality) { + fldQuality.classList.add('hide'); + } + if (selectQuality) { + selectQuality.removeAttribute('required'); + } + } + } + + function onProfileChange(form, profileId) { + + var options = currentDialogOptions || {}; + var option = (options.ProfileOptions || []).filter(function (o) { + return o.Id == profileId; + })[0]; + + var qualityOptions = options.QualityOptions || []; + + if (option) { + form.querySelector('.profileDescription').innerHTML = option.Description || ''; + setQualityFieldVisible(form, qualityOptions.length > 0 && option.EnableQualityOptions && options.Options.indexOf('Quality') != -1); + } else { + form.querySelector('.profileDescription').innerHTML = ''; + setQualityFieldVisible(form, qualityOptions.length > 0 && options.Options.indexOf('Quality') != -1); + } + } + + function onQualityChange(form, qualityId) { + + var options = currentDialogOptions || {}; + var option = (options.QualityOptions || []).filter(function (o) { + return o.Id == qualityId; + })[0]; + + var qualityDescription = form.querySelector('.qualityDescription'); + + if (option) { + qualityDescription.innerHTML = option.Description || ''; + } else { + qualityDescription.innerHTML = ''; + } + + var fldBitrate = form.querySelector('.fldBitrate'); + var txtBitrate = form.querySelector('#txtBitrate'); + + if (qualityId == 'custom') { + + if (fldBitrate) { + fldBitrate.classList.remove('hide'); + } + if (txtBitrate) { + txtBitrate.setAttribute('required', 'required'); + } + } else { + if (fldBitrate) { + fldBitrate.classList.add('hide'); + } + if (txtBitrate) { + txtBitrate.removeAttribute('required'); + } + } + } + + function renderTargetDialogOptions(form, options) { + + currentDialogOptions = options; + + var fldProfile = form.querySelector('.fldProfile'); + var selectProfile = form.querySelector('#selectProfile'); + + if (options.ProfileOptions.length && options.Options.indexOf('Profile') != -1) { + if (fldProfile) { + fldProfile.classList.remove('hide'); + } + if (selectProfile) { + selectProfile.setAttribute('required', 'required'); + } + } else { + if (fldProfile) { + fldProfile.classList.add('hide'); + } + if (selectProfile) { + selectProfile.removeAttribute('required'); + } + } + + setQualityFieldVisible(form, options.QualityOptions.length > 0); + + if (selectProfile) { + selectProfile.innerHTML = options.ProfileOptions.map(function (o) { + + var selectedAttribute = o.IsDefault ? ' selected="selected"' : ''; + return ''; + + }).join(''); + + selectProfile.dispatchEvent(new CustomEvent('change', { + bubbles: true + })); + } + + var selectQuality = form.querySelector('#selectQuality'); + if (selectQuality) { + selectQuality.innerHTML = options.QualityOptions.map(function (o) { + + var selectedAttribute = o.IsDefault ? ' selected="selected"' : ''; + return ''; + + }).join(''); + + selectQuality.dispatchEvent(new CustomEvent('change', { + bubbles: true + })); + } + } + + function loadQualityOptions(form, targetId, dialogOptionsFn) { + + return dialogOptionsFn(targetId).then(function (options) { + + return renderTargetDialogOptions(form, options); + }); + } + + return { + + showMenu: showSyncMenu, + renderForm: renderForm, + setJobValues: setJobValues + }; +}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/iron-meta/.bower.json b/dashboard-ui/bower_components/iron-meta/.bower.json index f4bfef4a7..e1304d174 100644 --- a/dashboard-ui/bower_components/iron-meta/.bower.json +++ b/dashboard-ui/bower_components/iron-meta/.bower.json @@ -26,14 +26,14 @@ "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0" }, "main": "iron-meta.html", - "homepage": "https://github.com/polymerelements/iron-meta", + "homepage": "https://github.com/PolymerElements/iron-meta", "_release": "1.1.1", "_resolution": { "type": "version", "tag": "v1.1.1", "commit": "e171ee234b482219c9514e6f9551df48ef48bd9f" }, - "_source": "git://github.com/polymerelements/iron-meta.git", + "_source": "git://github.com/PolymerElements/iron-meta.git", "_target": "^1.0.0", - "_originalSource": "polymerelements/iron-meta" + "_originalSource": "PolymerElements/iron-meta" } \ No newline at end of file diff --git a/dashboard-ui/bower_components/polymer/.bower.json b/dashboard-ui/bower_components/polymer/.bower.json index a96f0f050..25eb84c03 100644 --- a/dashboard-ui/bower_components/polymer/.bower.json +++ b/dashboard-ui/bower_components/polymer/.bower.json @@ -32,14 +32,14 @@ "iron-component-page": "polymerElements/iron-component-page#^1.1.6" }, "private": true, - "homepage": "https://github.com/Polymer/polymer", + "homepage": "https://github.com/polymer/polymer", "_release": "1.6.1", "_resolution": { "type": "version", "tag": "v1.6.1", "commit": "1f197d9d7874b1e5808b2a5c26f34446a7d912fc" }, - "_source": "git://github.com/Polymer/polymer.git", + "_source": "git://github.com/polymer/polymer.git", "_target": "^1.1.0", - "_originalSource": "Polymer/polymer" + "_originalSource": "polymer/polymer" } \ No newline at end of file diff --git a/dashboard-ui/components/categorysyncbuttons.js b/dashboard-ui/components/categorysyncbuttons.js index cd0f3677b..9e33c6bd1 100644 --- a/dashboard-ui/components/categorysyncbuttons.js +++ b/dashboard-ui/components/categorysyncbuttons.js @@ -35,7 +35,8 @@ require(['syncDialog'], function (syncDialog) { syncDialog.showMenu({ ParentId: parentId, - Category: category + Category: category, + serverId: ApiClient.serverId() }); }); } diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js index 36532963c..873c54594 100644 --- a/dashboard-ui/scripts/itemdetailpage.js +++ b/dashboard-ui/scripts/itemdetailpage.js @@ -2041,7 +2041,8 @@ function onSyncClick() { require(['syncDialog'], function (syncDialog) { syncDialog.showMenu({ - items: [currentItem] + items: [currentItem], + serverId: ApiClient.serverId() }); }); } @@ -2058,7 +2059,9 @@ require(['syncDialog'], function (syncDialog) { syncDialog.showMenu({ items: [currentItem], - isLocalSync: true + isLocalSync: true, + serverId: ApiClient.serverId() + }).then(function () { reload(view, params); }, resetSyncStatus); diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 94a5fb61c..40e589270 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -1320,6 +1320,7 @@ var AppInfo = {}; define("chaptercardbuilder", [embyWebComponentsBowerPath + "/cardbuilder/chaptercardbuilder"], returnFirstDependency); define("tvguide", [embyWebComponentsBowerPath + "/guide/guide", 'embyRouter'], returnFirstDependency); + define("syncDialog", [embyWebComponentsBowerPath + "/sync/sync"], returnFirstDependency); define("voiceDialog", [embyWebComponentsBowerPath + "/voice/voicedialog"], returnFirstDependency); define("voiceReceiver", [embyWebComponentsBowerPath + "/voice/voicereceiver"], returnFirstDependency); define("voiceProcessor", [embyWebComponentsBowerPath + "/voice/voiceprocessor"], returnFirstDependency); @@ -1352,8 +1353,6 @@ var AppInfo = {}; paths.appStorage = getAppStorage(apiClientBowerPath); } - paths.syncDialog = "scripts/sync"; - var sha1Path = bowerPath + "/cryptojslib/components/sha1-min"; var md5Path = bowerPath + "/cryptojslib/components/md5-min"; var shim = {}; diff --git a/dashboard-ui/scripts/sync.js b/dashboard-ui/scripts/sync.js deleted file mode 100644 index 3cc24ace4..000000000 --- a/dashboard-ui/scripts/sync.js +++ /dev/null @@ -1,413 +0,0 @@ -define(['apphost', 'jQuery', 'paper-icon-button-light'], function (appHost, $) { - - var currentDialogOptions; - - function submitJob(dlg, userId, syncOptions, form, dialogHelper) { - - if (!userId) { - throw new Error('userId cannot be null'); - } - - if (!syncOptions) { - throw new Error('syncOptions cannot be null'); - } - - if (!form) { - throw new Error('form cannot be null'); - } - - var target = $('#selectSyncTarget', form).val(); - - if (!target) { - - require(['toast'], function (toast) { - toast(Globalize.translate('MessagePleaseSelectDeviceToSyncTo')); - }); - return false; - } - - var options = { - - userId: userId, - TargetId: target, - - ParentId: syncOptions.ParentId, - Category: syncOptions.Category - }; - - setJobValues(options, form); - - if (syncOptions.items && syncOptions.items.length) { - options.ItemIds = (syncOptions.items || []).map(function (i) { - return i.Id || i; - }).join(','); - } - - ApiClient.ajax({ - - type: "POST", - url: ApiClient.getUrl("Sync/Jobs"), - data: JSON.stringify(options), - contentType: "application/json", - dataType: 'json' - - }).then(function () { - - dialogHelper.close(dlg); - require(['toast'], function (toast) { - - var msg = target == ApiClient.deviceId() ? Globalize.translate('MessageDownloadScheduled') : Globalize.translate('MessageSyncJobCreated'); - - toast(msg); - }); - }); - - return true; - } - - function setJobValues(job, form) { - - var bitrate = $('#txtBitrate', form).val() || null; - - if (bitrate) { - bitrate = parseFloat(bitrate) * 1000000; - } - - job.Name = $('#txtSyncJobName', form).val(); - job.Quality = $('#selectQuality', form).val() || null; - job.Profile = $('#selectProfile', form).val() || null; - job.Bitrate = bitrate; - job.ItemLimit = $('#txtItemLimit', form).val() || null; - job.SyncNewContent = $('#chkSyncNewContent', form).checked(); - job.UnwatchedOnly = $('#chkUnwatchedOnly', form).checked(); - } - - function renderForm(options) { - - return new Promise(function (resolve, reject) { - - require(['emby-checkbox', 'emby-input', 'emby-select'], function () { - - appHost.appInfo().then(function (appInfo) { - renderFormInternal(options, appInfo, resolve); - }); - }); - }); - } - - function renderFormInternal(options, appInfo, resolve) { - - var elem = options.elem; - var dialogOptions = options.dialogOptions; - - var targets = dialogOptions.Targets; - - var html = ''; - - var targetContainerClass = options.isLocalSync ? ' hide' : ''; - - if (options.showName || dialogOptions.Options.indexOf('Name') != -1) { - - html += '
'; - html += ''; - html += '
'; - } - - if (options.readOnlySyncTarget) { - html += '
'; - html += ''; - html += '
'; - } else { - html += '
'; - html += ''; - if (!targets.length) { - html += '
' + Globalize.translate('LabelSyncNoTargetsHelp') + '
'; - html += ''; - } - html += '
'; - } - - html += ''; - - html += ''; - - html += ''; - - if (dialogOptions.Options.indexOf('UnwatchedOnly') != -1) { - html += '
'; - html += ''; - html += '
' + Globalize.translate('OptionSyncUnwatchedVideosOnlyHelp') + '
'; - html += '
'; - } - - if (dialogOptions.Options.indexOf('SyncNewContent') != -1) { - html += '
'; - html += ''; - html += '
' + Globalize.translate('OptionAutomaticallySyncNewContentHelp') + '
'; - html += '
'; - } - - if (dialogOptions.Options.indexOf('ItemLimit') != -1) { - html += '
'; - html += ''; - html += '
' + Globalize.translate('LabelItemLimitHelp') + '
'; - html += '
'; - } - - //html += ''; - //html += ''; - - elem.innerHTML = html; - - $('#selectSyncTarget', elem).on('change', function () { - - loadQualityOptions(elem, this.value, options.dialogOptionsFn).then(resolve); - - }).trigger('change'); - - $('#selectProfile', elem).on('change', function () { - - onProfileChange(elem, this.value); - - }).trigger('change'); - - $('#selectQuality', elem).on('change', function () { - - onQualityChange(elem, this.value); - - }).trigger('change'); - - } - - function showSyncMenu(options) { - - return new Promise(function (resolve, reject) { - - require(["registrationservices", 'dialogHelper', 'formDialogStyle'], function (registrationServices, dialogHelper) { - registrationServices.validateFeature('sync').then(function () { - - showSyncMenuInternal(dialogHelper, options).then(resolve, reject); - - }, reject); - }); - }); - } - - function showSyncMenuInternal(dialogHelper, options) { - - var userId = Dashboard.getCurrentUserId(); - - var dialogOptionsQuery = { - UserId: userId, - ItemIds: (options.items || []).map(function (i) { - return i.Id || i; - }).join(','), - - ParentId: options.ParentId, - Category: options.Category - }; - - return ApiClient.getJSON(ApiClient.getUrl('Sync/Options', dialogOptionsQuery)).then(function (dialogOptions) { - - currentDialogOptions = dialogOptions; - - var dlg = dialogHelper.createDialog({ - size: 'small', - removeOnClose: true, - autoFocus: false - }); - - dlg.classList.add('ui-body-a'); - dlg.classList.add('background-theme-a'); - dlg.classList.add('formDialog'); - - var html = ''; - html += '
'; - html += ''; - html += '
'; - html += Globalize.translate('SyncMedia'); - html += '
'; - - html += ''; - - html += '
'; - - html += '
'; - html += '
'; - - html += '
'; - - html += '
'; - - html += '

'; - html += ''; - html += '

'; - - html += '
'; - - html += '
'; - html += '
'; - - - dlg.innerHTML = html; - document.body.appendChild(dlg); - var submitted = false; - - $('form', dlg).on('submit', function () { - - submitted = submitJob(dlg, userId, options, this, dialogHelper); - - return false; - }); - - $('.btnCancel', dlg).on('click', function () { - dialogHelper.close(dlg); - }); - - var promise = dialogHelper.open(dlg); - - renderForm({ - elem: dlg.querySelector('.formFields'), - dialogOptions: dialogOptions, - dialogOptionsFn: getTargetDialogOptionsFn(dialogOptionsQuery), - isLocalSync: options.isLocalSync - }); - - return promise.then(function () { - if (submitted) { - return Promise.resolve(); - } - return Promise.reject(); - }); - }); - } - - function getTargetDialogOptionsFn(query) { - - return function (targetId) { - - query.TargetId = targetId; - return ApiClient.getJSON(ApiClient.getUrl('Sync/Options', query)); - }; - } - - function setQualityFieldVisible(form, visible) { - - if (visible) { - $('.fldQuality', form).show(); - $('#selectQuality', form).attr('required', 'required'); - } else { - $('.fldQuality', form).hide(); - $('#selectQuality', form).removeAttr('required'); - } - } - - function onProfileChange(form, profileId) { - - var options = currentDialogOptions || {}; - var option = (options.ProfileOptions || []).filter(function (o) { - return o.Id == profileId; - })[0]; - - var qualityOptions = options.QualityOptions || []; - - if (option) { - $('.profileDescription', form).html(option.Description || ''); - setQualityFieldVisible(form, qualityOptions.length > 0 && option.EnableQualityOptions && options.Options.indexOf('Quality') != -1); - } else { - $('.profileDescription', form).html(''); - setQualityFieldVisible(form, qualityOptions.length > 0 && options.Options.indexOf('Quality') != -1); - } - } - - function onQualityChange(form, qualityId) { - - var options = currentDialogOptions || {}; - var option = (options.QualityOptions || []).filter(function (o) { - return o.Id == qualityId; - })[0]; - - if (option) { - $('.qualityDescription', form).html(option.Description || ''); - } else { - $('.qualityDescription', form).html(''); - } - - if (qualityId == 'custom') { - $('.fldBitrate', form).show(); - $('#txtBitrate', form).attr('required', 'required'); - } else { - $('.fldBitrate', form).hide(); - $('#txtBitrate', form).removeAttr('required').val(''); - } - } - - function renderTargetDialogOptions(form, options) { - - currentDialogOptions = options; - - if (options.ProfileOptions.length && options.Options.indexOf('Profile') != -1) { - $('.fldProfile', form).show(); - $('#selectProfile', form).attr('required', 'required'); - } else { - $('.fldProfile', form).hide(); - $('#selectProfile', form).removeAttr('required'); - } - - setQualityFieldVisible(options.QualityOptions.length > 0); - - $('#selectProfile', form).html(options.ProfileOptions.map(function (o) { - - var selectedAttribute = o.IsDefault ? ' selected="selected"' : ''; - return ''; - - }).join('')).trigger('change'); - - $('#selectQuality', form).html(options.QualityOptions.map(function (o) { - - var selectedAttribute = o.IsDefault ? ' selected="selected"' : ''; - return ''; - - }).join('')).trigger('change'); - } - - function loadQualityOptions(form, targetId, dialogOptionsFn) { - - return dialogOptionsFn(targetId).then(function (options) { - - return renderTargetDialogOptions(form, options); - }); - } - - return { - - showMenu: showSyncMenu, - renderForm: renderForm, - setJobValues: setJobValues - }; -}); \ No newline at end of file From af66ee9dcb3c9804c24f0cec39688b2da43c79c4 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 23 Aug 2016 02:48:59 -0400 Subject: [PATCH 2/7] update sync --- .../emby-webcomponents/sync/sync.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js b/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js index 55ea4e986..cbba5cbfd 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js +++ b/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js @@ -164,7 +164,7 @@ html += ''; if (!targets.length) { html += '
' + globalize.translate('sharedcomponents#LabelSyncNoTargetsHelp') + '
'; - html += ''; + html += ''; } html += ''; } @@ -247,9 +247,9 @@ })); } - var lnkHelp = elem.querySelector('.lnkHelp'); - if (lnkHelp) { - lnkHelp.addEventListener('click', onHelpLinkClick); + var lnkLearnMore = elem.querySelector('.lnkLearnMore'); + if (lnkLearnMore) { + lnkLearnMore.addEventListener('click', onHelpLinkClick); } focusManager.autoFocus(elem); @@ -312,7 +312,7 @@ html += globalize.translate('sharedcomponents#Sync'); html += ''; - html += ''; + html += ''; html += ''; @@ -332,8 +332,10 @@ html += ''; html += ''; - dlg.innerHTML = html; + + dlg.querySelector('.lnkHelp').addEventListener('click', onHelpLinkClick); + document.body.appendChild(dlg); var submitted = false; From 8f4e896b5d1447f2e246e6e805dc61b996a683e8 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 23 Aug 2016 12:02:14 -0400 Subject: [PATCH 3/7] fixes #1535 - More options for transcoding music --- dashboard-ui/scripts/librarybrowser.js | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 5f650d56b..0578c7cde 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -116,16 +116,9 @@ configureSwipeTabs: function (ownerpage, tabs) { if (!browser.touch) { - //return; + return; } - //require(['hammer'], function (Hammer) { - - // var hammertime = new Hammer(ownerpage); - // hammertime.get('swipe').set({ direction: Hammer.DIRECTION_HORIZONTAL }); - - //}); - var pageCount = ownerpage.querySelectorAll('.pageTabContent').length; var onSwipeLeft = function (e) { if (LibraryBrowser.allowSwipe(e.target) && ownerpage.contains(e.target)) { From b353a202fb0ec4c83624a7ea53bd6ebdcb4cd6df Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 23 Aug 2016 12:31:16 -0400 Subject: [PATCH 4/7] add vaapi support --- dashboard-ui/encodingsettings.html | 1 + 1 file changed, 1 insertion(+) diff --git a/dashboard-ui/encodingsettings.html b/dashboard-ui/encodingsettings.html index 984fccfa6..08e308d3f 100644 --- a/dashboard-ui/encodingsettings.html +++ b/dashboard-ui/encodingsettings.html @@ -11,6 +11,7 @@ +
${LabelHardwareAccelerationTypeHelp}
From 0ad08c389c21764bdd9e9b41187ee18b64802ce7 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 23 Aug 2016 13:07:25 -0400 Subject: [PATCH 5/7] update translations --- dashboard-ui/strings/ar.json | 4 +- dashboard-ui/strings/be-BY.json | 94 +++++++++++++++++---------------- dashboard-ui/strings/bg-BG.json | 4 +- dashboard-ui/strings/ca.json | 4 +- dashboard-ui/strings/cs.json | 2 + dashboard-ui/strings/da.json | 4 +- dashboard-ui/strings/de.json | 16 +++--- dashboard-ui/strings/el.json | 4 +- dashboard-ui/strings/en-GB.json | 2 + dashboard-ui/strings/es-AR.json | 4 +- dashboard-ui/strings/es-MX.json | 12 +++-- dashboard-ui/strings/es.json | 2 + dashboard-ui/strings/fi.json | 4 +- dashboard-ui/strings/fr-CA.json | 4 +- dashboard-ui/strings/fr-FR.json | 2 + dashboard-ui/strings/fr.json | 2 + dashboard-ui/strings/gsw.json | 4 +- dashboard-ui/strings/he.json | 4 +- dashboard-ui/strings/hr.json | 4 +- dashboard-ui/strings/hu.json | 4 +- dashboard-ui/strings/id.json | 4 +- dashboard-ui/strings/it.json | 10 ++-- dashboard-ui/strings/kk.json | 2 + dashboard-ui/strings/ko.json | 2 + dashboard-ui/strings/ms.json | 4 +- dashboard-ui/strings/nb.json | 2 + dashboard-ui/strings/nl.json | 2 + dashboard-ui/strings/pl.json | 2 + dashboard-ui/strings/pt-BR.json | 38 ++++++------- dashboard-ui/strings/ro.json | 4 +- dashboard-ui/strings/ru.json | 2 + dashboard-ui/strings/sk.json | 4 +- dashboard-ui/strings/sl-SI.json | 4 +- dashboard-ui/strings/sv.json | 2 + dashboard-ui/strings/tr.json | 4 +- dashboard-ui/strings/uk.json | 4 +- dashboard-ui/strings/vi.json | 4 +- dashboard-ui/strings/zh-CN.json | 4 +- dashboard-ui/strings/zh-HK.json | 4 +- dashboard-ui/strings/zh-TW.json | 4 +- 40 files changed, 183 insertions(+), 103 deletions(-) diff --git a/dashboard-ui/strings/ar.json b/dashboard-ui/strings/ar.json index 90321ccd5..ee4294e7e 100644 --- a/dashboard-ui/strings/ar.json +++ b/dashboard-ui/strings/ar.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "\u062e\u0631\u0648\u062c", "LabelVisitCommunity": "\u0632\u064a\u0627\u0631\u0629 \u0627\u0644\u0645\u062c\u062a\u0645\u0639", "LabelGithub": "\u062c\u064a\u062a \u0647\u0628", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/be-BY.json b/dashboard-ui/strings/be-BY.json index 1088e0382..53001a263 100644 --- a/dashboard-ui/strings/be-BY.json +++ b/dashboard-ui/strings/be-BY.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "\u0412\u044b\u0445\u0430\u0434", "LabelVisitCommunity": "\u041d\u0430\u0432\u0435\u0434\u0432\u0430\u043d\u043d\u0435 \u0441\u0443\u043f\u043e\u043b\u043a\u0456", "LabelGithub": "Github", @@ -25,51 +27,51 @@ "LabelWindowsService": "\u0421\u043b\u0443\u0436\u0431\u0430 Windows", "AWindowsServiceHasBeenInstalled": "\u0421\u043b\u0443\u0436\u0431\u0430 Windows \u0431\u044b\u043b\u0430 \u045e\u0441\u0442\u0430\u043b\u044f\u0432\u0430\u043d\u0430\u044f.", "WindowsServiceIntro1": "Emby Server \u0437\u0432\u044b\u0447\u0430\u0439\u043d\u0430 \u043f\u0440\u0430\u0446\u0443\u0435 \u044f\u043a \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u044b \u0434\u0430\u0434\u0430\u0442\u0430\u043a \u0441\u0430 \u0437\u043d\u0430\u0447\u043a\u043e\u043c \u0443 \u0441\u0456\u0441\u0442\u044d\u043c\u043d\u044b\u043c \u043b\u0430\u0442\u043a\u0443, \u0430\u043b\u0435 \u043a\u0430\u043b\u0456 \u043f\u0435\u0440\u0430\u0432\u0430\u0436\u043d\u0430 \u043f\u0440\u0430\u0446\u0430 \u044f\u043a \u0444\u043e\u043d\u0430\u0432\u0430\u0439 \u0441\u043b\u0443\u0436\u0431\u044b, \u0437\u0430\u043c\u0435\u0441\u0442 \u0433\u044d\u0442\u0430\u0433\u0430 \u044f\u0433\u043e \u043c\u0430\u0433\u0447\u044b\u043c\u0430 \u0437\u0430\u043f\u0443\u0441\u0446\u0456\u0446\u044c \u043f\u0440\u0430\u0437 \u0434\u044b\u0441\u043f\u0435\u0442\u0447\u0430\u0440 \u0441\u043b\u0443\u0436\u0431\u0430\u045e Windows.", - "WindowsServiceIntro2": "If using the windows service, please note that it cannot be run at the same time as the tray icon, so you'll need to exit the tray in order to run the service. The service will also need to be configured with administrative privileges via the control panel. When running as a service, you will need to ensure that the service account has access to your media folders.", - "WizardCompleted": "That's all we need for now. Emby has begun collecting information about your media library. Check out some of our apps, and then click Finish<\/b> to view the Server Dashboard<\/b>.", - "LabelConfigureSettings": "Configure settings", - "LabelEnableVideoImageExtraction": "Enable video image extraction", - "VideoImageExtractionHelp": "For videos that don't already have images, and that we're unable to find internet images for. This will add some additional time to the initial library scan but will result in a more pleasing presentation.", - "LabelEnableChapterImageExtractionForMovies": "Extract chapter image extraction for Movies", - "LabelChapterImageExtractionForMoviesHelp": "Extracting chapter images will allow clients to display graphical scene selection menus. The process can be slow, cpu-intensive and may require several gigabytes of space. It runs as a nightly scheduled task, although this is configurable in the scheduled tasks area. It is not recommended to run this task during peak usage hours.", - "LabelEnableAutomaticPortMapping": "Enable automatic port mapping", - "LabelEnableAutomaticPortMappingHelp": "UPnP allows automated router configuration for easy remote access. This may not work with some router models.", - "HeaderTermsOfService": "Emby Terms of Service", - "MessagePleaseAcceptTermsOfService": "Please accept the terms of service and privacy policy before continuing.", - "OptionIAcceptTermsOfService": "I accept the terms of service", - "ButtonPrivacyPolicy": "Privacy policy", - "ButtonTermsOfService": "Terms of Service", - "HeaderDeveloperOptions": "Developer Options", - "OptionEnableWebClientResponseCache": "Enable web response caching", - "OptionDisableForDevelopmentHelp": "Configure these as needed for web development purposes.", - "OptionEnableWebClientResourceMinification": "Enable web resource minification", - "LabelDashboardSourcePath": "Web client source path:", - "LabelDashboardSourcePathHelp": "If running the server from source, specify the path to the dashboard-ui folder. All web client files will be served from this location.", - "ButtonConvertMedia": "Convert media", - "ButtonOrganize": "Organize", - "HeaderSupporterBenefits": "Emby Premiere Benefits", - "HeaderAddUser": "Add User", - "LabelAddConnectSupporterHelp": "To add a user who isn't listed, you'll need to first link their account to Emby Connect from their user profile page.", - "LabelPinCode": "Pin code:", - "OptionHideWatchedContentFromLatestMedia": "Hide watched content from latest media", - "HeaderSync": "Sync", - "ButtonOk": "Ok", - "ButtonCancel": "Cancel", - "ButtonExit": "Exit", - "ButtonNew": "New", - "HeaderTaskTriggers": "Task Triggers", - "HeaderTV": "TV", - "HeaderAudio": "Audio", - "HeaderVideo": "Video", - "HeaderPaths": "Paths", - "CategorySync": "Sync", - "TabPlaylist": "Playlist", - "HeaderEasyPinCode": "Easy Pin Code", - "HeaderGrownupsOnly": "Grown-ups Only!", - "HeaderInstalledServices": "Installed Services", - "HeaderAvailableServices": "Available Services", - "MessageNoServicesInstalled": "No services are currently installed.", - "HeaderToAccessPleaseEnterEasyPinCode": "To access, please enter your easy pin code", + "WindowsServiceIntro2": "\u041f\u0440\u044b \u0432\u044b\u043a\u0430\u0440\u044b\u0441\u0442\u0430\u043d\u043d\u0456 \u0441\u043b\u0443\u0436\u0431\u044b Windows, \u043f\u0430\u043c\u044f\u0442\u0430\u0439\u0446\u0435, \u0448\u0442\u043e \u043d\u0435\u043c\u0430\u0433\u0447\u044b\u043c\u0430\u044f \u044f\u0435 \u0430\u0434\u043d\u0430\u0447\u0430\u0441\u043e\u0432\u0430\u044f \u043f\u0440\u0430\u0446\u0430 \u0441\u0430 \u0437\u043d\u0430\u0447\u043a\u043e\u043c \u0443 \u0441\u0456\u0441\u0442\u044d\u043c\u043d\u044b\u043c \u043b\u0430\u0442\u043a\u0443, \u0442\u0430\u043c\u0443 \u043d\u0435\u0430\u0431\u0445\u043e\u0434\u043d\u0430 \u0432\u044b\u0439\u0441\u0446\u0456 \u0437 \u0437\u043d\u0430\u0447\u043a\u0430 \u045e \u043b\u0430\u0442\u043a\u0443 \u0434\u043b\u044f \u0442\u0430\u0433\u043e, \u043a\u0430\u0431 \u0441\u043b\u0443\u0436\u0431\u0430 \u043f\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u0430\u0446\u0430\u0432\u0430\u0446\u044c. \u0421\u043b\u0443\u0436\u0431\u0443 \u0442\u0430\u043a\u0441\u0430\u043c\u0430 \u0442\u0440\u044d\u0431\u0430 \u0431\u0443\u0434\u0437\u0435 \u043d\u0430\u043b\u0430\u0434\u0437\u0456\u0446\u044c, \u0443\u0432\u0430\u0439\u0448\u043e\u045e\u0448\u044b \u0437 \u043f\u0440\u0430\u0432\u0430\u043c\u0456 \u0430\u0434\u043c\u0456\u043d\u0456\u0441\u0442\u0440\u0430\u0442\u0430\u0440\u0430 \u045e \u043a\u0430\u043d\u0441\u043e\u043b\u044c \u0423\u043f\u0440\u0430\u045e\u043b\u0435\u043d\u043d\u0435 \u043a\u0430\u043c\u043f\u0443\u0442\u0430\u0440\u0430\u043c. \u041f\u0440\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0443 \u044f\u043a \u0441\u043b\u0443\u0436\u0431\u044b, \u0432\u044b \u043f\u0430\u0432\u0456\u043d\u043d\u044b \u043f\u0435\u0440\u0430\u043a\u0430\u043d\u0430\u0446\u0446\u0430, \u0448\u0442\u043e \u0456\u043c\u044f \u045e\u0434\u0437\u0435\u043b\u044c\u043d\u0456\u043a\u0430 \u0441\u043b\u0443\u0436\u0431\u044b \u043c\u0430\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u0434\u0430 \u0432\u0430\u0448\u044b\u0445 \u043c\u0435\u0434\u0438\u0430\u043f\u0430\u043f\u043a\u0430\u043c.", + "WizardCompleted": "\u0413\u044d\u0442\u0430 \u045e\u0441\u0451, \u0448\u0442\u043e \u043d\u0430\u043c \u0442\u0440\u044d\u0431\u0430 \u0437\u0430\u0440\u0430\u0437. Emby \u043f\u0430\u0447\u044b\u043d\u0430\u0435 \u0437\u0431\u0456\u0440\u0430\u0446\u044c \u0437\u0432\u0435\u0441\u0442\u043a\u0456 \u0430\u0431 \u0432\u0430\u0448\u0430\u0439 \u043c\u0435\u0434\u044b\u044f\u0442\u044d\u0446\u044b. \u0410\u0437\u043d\u0430\u0451\u043c\u0446\u0435\u0441\u044f \u043f\u0430\u043a\u0443\u043b\u044c \u0437 \u043d\u0435\u043a\u0430\u0442\u043e\u0440\u044b\u043c\u0456 \u043d\u0430\u0448\u044b\u043c\u0456 \u043f\u0440\u0430\u0433\u0440\u0430\u043c\u0430\u043c\u0456, \u0430 \u0437\u0430\u0442\u044b\u043c \u043d\u0430\u0446\u0456\u0441\u043d\u0456\u0446\u0435 \u0413\u0430\u0442\u043e\u0432\u0430<\/b>, \u043a\u0430\u0431 \u043f\u0440\u0430\u0433\u043b\u044f\u0434\u0437\u0435\u0446\u044c \u0418\u043d\u0444\u043e\u043f\u0430\u043d\u0435\u043b\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/b>.", + "LabelConfigureSettings": "\u041f\u0440\u044b\u0437\u043d\u0430\u0447\u044b\u0446\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b", + "LabelEnableVideoImageExtraction": "\u040e\u043a\u043b\u044e\u0447\u044b\u0446\u044c \u0432\u044b\u043c\u0430\u043d\u043d\u0435 \u043c\u0430\u043b\u044e\u043d\u043a\u0430\u045e \u0437 \u0432\u0456\u0434\u044d\u0430", + "VideoImageExtractionHelp": "\u0414\u043b\u044f \u0432\u0456\u0434\u044d\u0430, \u0434\u0437\u0435 \u043d\u044f\u043c\u0430 \u043c\u0430\u043b\u044e\u043d\u043a\u0430\u045e, \u0456 \u044f\u043a\u0456\u044f \u043d\u0435 \u045e\u0434\u0430\u043b\u043e\u0441\u044f \u0437\u043d\u0430\u0439\u0441\u0446\u0456 \u045e \u0406\u043d\u0442\u044d\u0440\u043d\u044d\u0446\u0435. \u041f\u0440\u044b \u0433\u044d\u0442\u044b\u043c \u0431\u0443\u0434\u0437\u0435 \u0434\u0430\u0434\u0430\u0434\u0437\u0435\u043d\u0430 \u044f\u0448\u0447\u044d \u0447\u0430\u0441\u0443 \u0434\u0430 \u043f\u0430\u0447\u0430\u0442\u043a\u043e\u0432\u0430\u0433\u0430 \u0441\u043a\u0430\u043d\u0456\u0440\u0430\u0432\u0430\u043d\u043d\u0456 \u043c\u0435\u0434\u044b\u044f\u0442\u044d\u043a\u0456, \u0430\u043b\u0435 \u0433\u044d\u0442\u0430 \u043f\u0440\u044b\u0432\u044f\u0434\u0437\u0435 \u0434\u0430 \u0431\u043e\u043b\u044c\u0448 \u043f\u0440\u044b\u0432\u0430\u0431\u043d\u0430\u043c\u0443 \u043f\u0440\u0430\u0434\u0441\u0442\u0430\u045e\u043b\u0435\u043d\u043d\u0456.", + "LabelEnableChapterImageExtractionForMovies": "\u0417\u0434\u0430\u0431\u044b\u0432\u0430\u0446\u044c \u043c\u0430\u043b\u044e\u043d\u043a\u0456 \u0441\u0446\u044d\u043d \u0434\u043b\u044f \u0444\u0456\u043b\u044c\u043c\u0430\u045e", + "LabelChapterImageExtractionForMoviesHelp": "\u0412\u044b\u043c\u0430\u043d\u043d\u0435 \u043c\u0430\u043b\u044e\u043d\u043a\u0430\u045e \u0441\u0446\u044d\u043d \u0434\u0430\u0435 \u043c\u0430\u0433\u0447\u044b\u043c\u0430\u0441\u0446\u0456 \u043a\u043b\u0456\u0435\u043d\u0442\u0430\u043c \u0434\u043b\u044f \u0430\u0434\u043b\u044e\u0441\u0442\u0440\u0430\u0432\u0430\u043d\u043d\u044f \u0433\u0440\u0430\u0444\u0456\u0447\u043d\u044b\u0445 \u043c\u0435\u043d\u044e \u0432\u044b\u0431\u0430\u0440\u0443 \u0441\u0446\u044d\u043d\u044b. \u0422\u0430\u043a\u0456 \u043f\u0440\u0430\u0446\u044d\u0441 \u043c\u043e\u0436\u0430 \u0431\u044b\u0446\u044c \u043f\u0430\u0432\u043e\u043b\u044c\u043d\u044b\u043c, \u043d\u0430\u0433\u0440\u0443\u0436\u0430\u0446\u044c \u0426\u041f \u0456 \u043c\u043e\u0436\u0430 \u0441\u043f\u0430\u0442\u0440\u044d\u0431\u0456\u0446\u0446\u0430 \u043d\u0435\u043a\u0430\u043b\u044c\u043a\u0456 \u0433\u0456\u0433\u0430\u0431\u0430\u0439\u0442 \u043f\u0440\u0430\u0441\u0442\u043e\u0440\u044b. \u0401\u043d \u043f\u0440\u0430\u0446\u0443\u0435 \u045e \u0432\u044b\u0433\u043b\u044f\u0434\u0437\u0435 \u0437\u0430\u0434\u0430\u0447\u044b, \u043f\u0440\u044b\u0437\u043d\u0430\u0447\u0430\u043d\u0430\u044f \u043d\u0430 \u043d\u043e\u0447, \u0430\u0434\u043d\u0430\u043a, \u044f\u0435 \u043c\u043e\u0436\u043d\u0430 \u043f\u0435\u0440\u0430\u0431\u0443\u0434\u0430\u0432\u0430\u0446\u044c \u045e \u0433\u0430\u043b\u0456\u043d\u0435 \u041f\u0440\u044b\u0437\u043d\u0430\u0447\u0430\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447. \u041d\u0435 \u0440\u044d\u043a\u0430\u043c\u0435\u043d\u0434\u0443\u0435\u0446\u0446\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0446\u044c \u0434\u0430\u0434\u0437\u0435\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u045e \u0433\u0430\u0434\u0437\u0456\u043d\u044b \u043f\u0456\u043a.", + "LabelEnableAutomaticPortMapping": "\u0414\u0430\u0437\u0432\u043e\u043b\u0456\u0446\u044c \u0430\u045e\u0442\u0430\u043c\u0430\u0442\u044b\u0447\u043d\u0430\u0435 \u0441\u0443\u043f\u0430\u0441\u0442\u0430\u045e\u043b\u0435\u043d\u043d\u0435 \u043f\u0430\u0440\u0442\u043e\u045e", + "LabelEnableAutomaticPortMappingHelp": "UPnP \u0434\u0430\u0435 \u043c\u0430\u0433\u0447\u044b\u043c\u0430\u0441\u0446\u0456 \u0430\u045e\u0442\u0430\u043c\u0430\u0442\u044b\u0437\u0430\u0432\u0430\u043d\u0430\u0433\u0430 \u043a\u0430\u043d\u0444\u0456\u0433\u0443\u0440\u0430\u0432\u0430\u043d\u043d\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b\u0437\u0430\u0442\u0430\u0440\u0430 \u0434\u043b\u044f \u0437\u0440\u0443\u0447\u043d\u0430\u0433\u0430 \u0437\u043d\u0435\u0448\u043d\u044f\u0433\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0443. \u0413\u044d\u0442\u0430 \u043c\u043e\u0436\u0430 \u043d\u0435 \u0441\u043f\u0440\u0430\u0446\u0430\u0432\u0430\u0446\u044c \u0437 \u043d\u0435\u043a\u0430\u0442\u043e\u0440\u044b\u043c\u0456 \u043c\u0430\u0434\u044d\u043b\u044f\u043c\u0456 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b\u0437\u0430\u0442\u0430\u0440\u0430\u045e.", + "HeaderTermsOfService": "\u0423\u043c\u043e\u0432\u044b \u043f\u0440\u0430\u0434\u0430\u0441\u0442\u0430\u045e\u043b\u0435\u043d\u043d\u044f \u043f\u0430\u0441\u043b\u0443\u0433 Emby", + "MessagePleaseAcceptTermsOfService": "\u041f\u0430\u0446\u0432\u0435\u0440\u0434\u0437\u0456\u0446\u0435 \u0437\u0433\u043e\u0434\u0443 \u0437 \u0423\u043c\u043e\u0432\u0430\u043c\u0456 \u043f\u0440\u0430\u0434\u0430\u0441\u0442\u0430\u045e\u043b\u0435\u043d\u043d\u044f \u043f\u0430\u0441\u043b\u0443\u0433 \u0456 \u041f\u0430\u043b\u0456\u0442\u044b\u043a\u0430\u0439 \u043f\u0440\u044b\u0432\u0430\u0442\u043d\u0430\u0441\u0446\u0456, \u043f\u0435\u0440\u0448 \u0447\u044b\u043c \u043f\u0440\u0430\u0446\u044f\u0433\u043d\u0443\u0446\u044c.", + "OptionIAcceptTermsOfService": "\u042f \u0437\u0433\u0430\u0434\u0436\u0430\u044e\u0441\u044f \u0437 \u0423\u043c\u043e\u0432\u0430\u043c\u0456 \u043f\u0440\u0430\u0434\u0430\u0441\u0442\u0430\u045e\u043b\u0435\u043d\u043d\u044f \u043f\u0430\u0441\u043b\u0443\u0433", + "ButtonPrivacyPolicy": "\u041f\u0430\u043b\u0456\u0442\u044b\u043a\u0430 \u043f\u0440\u044b\u0432\u0430\u0442\u043d\u0430\u0441\u0446\u0456...", + "ButtonTermsOfService": "\u0423\u043c\u043e\u0432\u044b \u043f\u0440\u0430\u0434\u0430\u0441\u0442\u0430\u045e\u043b\u0435\u043d\u043d\u044f \u043f\u0430\u0441\u043b\u0443\u0433...", + "HeaderDeveloperOptions": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0440\u0430\u0441\u043f\u0440\u0430\u0446\u043e\u045e\u0448\u0447\u044b\u043a\u0430\u045e", + "OptionEnableWebClientResponseCache": "\u0423\u043a\u043b\u044e\u0447\u044b\u0446\u044c \u043a\u044d\u0448\u0430\u0432\u0430\u043d\u043d\u0435 \u0432\u044d\u0431-\u0432\u043e\u0434\u0433\u0443\u043a\u0430\u045e.", + "OptionDisableForDevelopmentHelp": "\u041d\u0430\u043b\u0430\u0434\u0436\u0432\u0430\u0439\u0446\u0435 \u0456\u0445, \u0443 \u0432\u044b\u043f\u0430\u0434\u043a\u0443 \u043d\u0435\u0430\u0431\u0445\u043e\u0434\u043d\u0430\u0441\u0446\u0456, \u0434\u043b\u044f \u0432\u044d\u0431-\u0440\u0430\u0441\u043f\u0440\u0430\u0446\u043e\u045e\u043a\u0456.", + "OptionEnableWebClientResourceMinification": "\u0423\u043a\u043b\u044e\u0447\u044b\u0446\u044c \u043c\u0456\u043d\u0456\u043c\u0456\u0437\u0430\u0446\u044b\u044e \u0432\u044d\u0431-\u0440\u044d\u0441\u0443\u0440\u0441\u0430\u045e", + "LabelDashboardSourcePath": "\u0428\u043b\u044f\u0445 \u0434\u0430 \u043a\u0440\u044b\u043d\u0456\u0446\u044b \u0432\u044d\u0431-\u043a\u043b\u0456\u0435\u043d\u0442\u0430:", + "LabelDashboardSourcePathHelp": "\u041a\u0430\u043b\u0456 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u0440\u0430\u0446\u0443\u0435 \u0430\u0434 \u0437\u044b\u0445\u043e\u0434\u043d\u044b\u0445 \u043a\u043e\u0434\u0430\u045e, \u043f\u0430\u043a\u0430\u0436\u044b\u0446\u0435 \u0448\u043b\u044f\u0445 \u0434\u0430 \u0442\u044d\u0447\u0446\u044b dashboard-ui. \u0423\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0432\u044d\u0431-\u043a\u043b\u0456\u0435\u043d\u0442\u0430 \u0431\u0443\u0434\u0443\u0446\u044c \u043f\u0430\u0434\u0430\u0432\u0430\u0446\u0446\u0430 \u0437 \u0433\u044d\u0442\u0430\u0433\u0430 \u0440\u0430\u0437\u043c\u044f\u0448\u0447\u044d\u043d\u043d\u044f.", + "ButtonConvertMedia": "\u041a\u0430\u043d\u0432\u0435\u0440\u0442\u0430\u0432\u0430\u0446\u044c \u043c\u044d\u0434\u044b\u044f\u0437\u044c\u0432\u0435\u0441\u0442\u043a\u0456", + "ButtonOrganize": "\u0423\u043f\u0430\u0440\u0430\u0434\u043a\u0430\u0432\u0430\u0446\u044c", + "HeaderSupporterBenefits": "\u041a\u0430\u043c\u043f\u0430\u043d\u0435\u043d\u0442\u044b Emby Premiere", + "HeaderAddUser": "\u0414\u0430\u0434\u0430\u043d\u043d\u0435 \u043a\u0430\u0440\u044b\u0441\u0442\u0430\u043b\u044c\u043d\u0456\u043a\u0430", + "LabelAddConnectSupporterHelp": "\u041a\u0430\u0431 \u0434\u0430\u0434\u0430\u0446\u044c \u043a\u0430\u0440\u044b\u0441\u0442\u0430\u043b\u044c\u043d\u0456\u043a\u0430, \u044f\u043a\u043e\u0433\u0430 \u043d\u044f\u043c\u0430 \u045e \u0441\u043f\u0456\u0441\u0435, \u0441\u043f\u0430\u0447\u0430\u0442\u043a\u0443 \u043d\u0435\u0430\u0431\u0445\u043e\u0434\u043d\u0430 \u0437\u0432\u044f\u0437\u0430\u0446\u044c \u044f\u0433\u043e, \u0441\u0442\u0432\u0430\u0440\u044b\u045e \u0440\u0430\u0445\u0443\u043d\u0430\u043a \u0437 Emby Connect \u0437 \u044f\u0433\u043e \u0441\u0442\u0430\u0440\u043e\u043d\u043a\u0456 \u043f\u0440\u043e\u0444\u0456\u043b\u044e \u043a\u0430\u0440\u044b\u0441\u0442\u0430\u043b\u044c\u043d\u0456\u043a\u0430.", + "LabelPinCode": "PIN-\u043a\u043e\u0434:", + "OptionHideWatchedContentFromLatestMedia": "\u0421\u0445\u0430\u0432\u0430\u0446\u044c \u043f\u0440\u0430\u0433\u043b\u0435\u0434\u0436\u0430\u043d\u0430\u0435 \u045e\u0442\u0440\u044b\u043c\u0430\u043d\u043d\u0435 \u0437 \u0410\u043f\u043e\u0448\u043d\u0456\u0445 \u043c\u0435\u0434\u044b\u044f\u0434\u0430\u0434\u0437\u0435\u043d\u044b\u0445", + "HeaderSync": "\u0421\u0456\u043d\u0445\u0440\u0430\u043d\u0456\u0437\u0430\u0446\u044b\u044f", + "ButtonOk": "\u041e\u041a", + "ButtonCancel": "\u0410\u0434\u043c\u044f\u043d\u0456\u0446\u044c", + "ButtonExit": "\u0412\u044b\u0439\u0441\u0446\u0456", + "ButtonNew": "\u041d\u043e\u0432\u0430\u0435", + "HeaderTaskTriggers": "\u0422\u0440\u044b\u0433\u0435\u0440\u044b \u0437\u0430\u0434\u0430\u0447\u044b", + "HeaderTV": "\u0422\u0411", + "HeaderAudio": "\u0410\u045e\u0434\u044b\u0451", + "HeaderVideo": "\u0412\u0456\u0434\u044d\u0430", + "HeaderPaths": "\u0428\u043b\u044f\u0445\u0456", + "CategorySync": "\u0421\u0456\u043d\u0445\u0440\u0430", + "TabPlaylist": "\u041f\u043b\u044d\u0439\u043b\u0456\u0441\u0442", + "HeaderEasyPinCode": "\u041f\u0440\u043e\u0441\u0442\u044b PIN-\u043a\u043e\u0434", + "HeaderGrownupsOnly": "\u0422\u043e\u043b\u044c\u043a\u0456 \u0434\u043b\u044f \u0434\u0430\u0440\u043e\u0441\u043b\u044b\u0445!", + "HeaderInstalledServices": "\u0423\u0441\u0442\u0430\u043d\u043e\u045e\u043b\u0435\u043d\u044b\u044f \u043f\u0430\u0441\u043b\u0443\u0433\u0456", + "HeaderAvailableServices": "\u041d\u0430\u044f\u045e\u043d\u044b\u044f \u043f\u0430\u0441\u043b\u0443\u0433\u0456", + "MessageNoServicesInstalled": "\u0423 \u0446\u044f\u043f\u0435\u0440\u0430\u0448\u043d\u0456 \u0447\u0430\u0441 \u043d\u044f\u043c\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u045e\u043b\u0435\u043d\u044b\u0445 \u043f\u0430\u0441\u043b\u0443\u0433", + "HeaderToAccessPleaseEnterEasyPinCode": "\u0414\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0443 \u0443\u0432\u044f\u0434\u0437\u0456\u0446\u0435 \u0432\u0430\u0448 \u043f\u0440\u043e\u0441\u0442\u044b PIN-\u043a\u043e\u0434", "KidsModeAdultInstruction": "Click the lock icon in the bottom right to configure or leave kids mode. Your pin code will be required.", "ButtonConfigurePinCode": "Configure pin code", "RegisterWithPayPal": "Register with PayPal", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/bg-BG.json b/dashboard-ui/strings/bg-BG.json index 5c9ae92b9..49393bde5 100644 --- a/dashboard-ui/strings/bg-BG.json +++ b/dashboard-ui/strings/bg-BG.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "\u0418\u0437\u0445\u043e\u0434", "LabelVisitCommunity": "\u041f\u043e\u0441\u0435\u0442\u0438 \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u0442\u043e", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/ca.json b/dashboard-ui/strings/ca.json index d053af637..0482273ba 100644 --- a/dashboard-ui/strings/ca.json +++ b/dashboard-ui/strings/ca.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Sortir", "LabelVisitCommunity": "Visita la Comunitat", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Qualitat", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sincronitza nom\u00e9s els v\u00eddeos no vists", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/cs.json b/dashboard-ui/strings/cs.json index c7e639954..0b0e27511 100644 --- a/dashboard-ui/strings/cs.json +++ b/dashboard-ui/strings/cs.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Zav\u0159\u00edt", "LabelVisitCommunity": "Nav\u0161t\u00edvit komunitu", "LabelGithub": "Github", diff --git a/dashboard-ui/strings/da.json b/dashboard-ui/strings/da.json index b62489c0d..ff662b717 100644 --- a/dashboard-ui/strings/da.json +++ b/dashboard-ui/strings/da.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Afslut", "LabelVisitCommunity": "Bes\u00f8g F\u00e6lleskab", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Navn til synkroniserings job:", "LabelQuality": "Kvalitet:", "OptionAutomaticallySyncNewContent": "Synkroniser automatisk nyt indhold", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Synkroniser kun usete videoer", "OptionSyncUnwatchedVideosOnlyHelp": "Kun usete videoer vil blive synkroniseret, og videoer vil blive fjernet fra enheden n\u00e5r de er blevet set.", "LabelItemLimit": "Maks. filer:", diff --git a/dashboard-ui/strings/de.json b/dashboard-ui/strings/de.json index 52b934a6f..491eea0a8 100644 --- a/dashboard-ui/strings/de.json +++ b/dashboard-ui/strings/de.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max. Bitrate Audio-Datei:", + "LabelMaxAudioFileBitrateHelp": "Audio-Dateien mit einer h\u00f6heren Bitrate werden durch den Emby-server konvertiert. W\u00e4hle f\u00fcr eine bessere Qualit\u00e4t einen h\u00f6heren Wert aus, um Speicherplatz zu sparen einen niedrigeren.", "LabelExit": "Beenden", "LabelVisitCommunity": "Besuche die Community", "LabelGithub": "Github", @@ -108,7 +110,7 @@ "LabelSaveLocalMetadata": "Speichere Bildmaterial und Metadaten in den Medienverzeichnissen", "LabelSaveLocalMetadataHelp": "Durch die Speicherung von Bildmaterial und Metadaten direkt in den Medienverzeichnissen, befinden sich diese an einem Ort wo sie sehr leicht bearbeitet werden k\u00f6nnen.", "LabelDownloadInternetMetadata": "Lade Bildmaterial und Metadaten aus dem Internet", - "LabelDownloadInternetMetadataHelp": "Emby Server kann Informationen \u00fcber Ihre Medien herunterladen um Anzeigen zu bereichern", + "LabelDownloadInternetMetadataHelp": "Emby Server kann Informationen \u00fcber Ihre Medien herunterladen um deren Pr\u00e4sentation aufzuwerten.", "TabPreferences": "Einstellungen", "TabPassword": "Passwort", "TabLibraryAccess": "Bibliothekenzugriff", @@ -1392,7 +1394,7 @@ "LabelPasswordConfirm": "Passwort (Best\u00e4tigung):", "ButtonAddServer": "Server hinzuf\u00fcgen", "TabHomeScreen": "Startseite", - "HeaderDisplay": "Anzeigen", + "HeaderDisplay": "Anzeige", "HeaderNavigation": "Navigation", "LegendTheseSettingsShared": "Diese Einstellungen werden mit allen Ger\u00e4ten geteilt", "OptionEnableAutomaticServerUpdates": "Aktiviere automatische Server Updates", @@ -1429,13 +1431,13 @@ "ButtonDisplaySettings": "Bildeinstellungen", "ButtonHomeScreenSettings": "Startbildschirm Einstellungen", "ButtonPlaybackSettings": "Wiedergabe Einstellungen", - "ButtonProfile": "Profile", + "ButtonProfile": "Profil", "ButtonDisplaySettingsHelp": "Ihre Emby Bildeinstellungen", "ButtonHomeScreenSettingsHelp": "Konfigurieren Sie die Darstellung Ihres Startbildschirms", "ButtonPlaybackSettingsHelp": "Legen Sie Ihre Ton, Untertiteleinstellungen, streaming Qualit\u00e4t und weiteres fest.", "ButtonProfileHelp": "Legen Sie ein Profilbild und Passwort fest.", "HeaderHomeScreenSettings": "Startbildschirm EInstellungen", - "HeaderProfile": "Profile", + "HeaderProfile": "Profil", "HeaderLanguage": "Sprache", "ButtonSyncSettings": "Synchronisation Einstellungen", "ButtonSyncSettingsHelp": "Konfigurieren Sie Ihre Synchronisation", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Synchronisations-Aufgabe:", "LabelQuality": "Qualit\u00e4t:", "OptionAutomaticallySyncNewContent": "Synchronisiere neue Inhalte automatisch", - "OptionAutomaticallySyncNewContentHelp": "Neu hinzugef\u00fcgte Inhalte werden automatisch zum Ger\u00e4t synchronisiert.", + "OptionAutomaticallySyncNewContentHelp": "Neu zu diesem Ordner hinzugef\u00fcgte Inhalte werden automatisch mit dem Ger\u00e4t synchronisiert.", "OptionSyncUnwatchedVideosOnly": "Synchronisiere nur ungesehene Videos.", "OptionSyncUnwatchedVideosOnlyHelp": "Nur ungesehene Video werden synchronisiert. Videos werden entfernt sobald diese auf dem Ger\u00e4t angeschaut wurden.", "LabelItemLimit": "Maximale Anzahl:", @@ -2247,7 +2249,7 @@ "ButtonLocalRefresh": "Lokaler Refresh", "ButtonAddMissingData": "Nur fehlende Daten hinzuf\u00fcgen", "ButtonFullRefresh": "Kompletter Refresh", - "ValueExample": "13:00 Uhr", + "ValueExample": "Beispiel: {0}", "OptionEnableAnonymousUsageReporting": "Aktiviere anonyme \u00dcbermittlung des Benutzerverhalten", "OptionEnableAnonymousUsageReportingHelp": "Erlauben SIe Emby anonyme Nutzerdaten wie installierte Pluging, Versionen der Emby Apps etc. zu sammeln. Diese Informationen werden nur zur Verbesserung der Software verwendet.", "LabelFileOrUrl": "Datei oder URL:", @@ -2320,5 +2322,5 @@ "ManageOfflineDownloads": "Offline-Downloads verwalten", "MessageDownloadScheduled": "Download geplant", "RememberMe": "Erinnere mich", - "HeaderOfflineSync": "Offline Sync" + "HeaderOfflineSync": "Offline-Synchronisierung" } \ No newline at end of file diff --git a/dashboard-ui/strings/el.json b/dashboard-ui/strings/el.json index a1bb0a9d8..4a8e581e2 100644 --- a/dashboard-ui/strings/el.json +++ b/dashboard-ui/strings/el.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "\u0388\u03be\u03bf\u03b4\u03bf\u03c2", "LabelVisitCommunity": "\u039a\u03bf\u03b9\u03bd\u03cc\u03c4\u03b7\u03c4\u03b1", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/en-GB.json b/dashboard-ui/strings/en-GB.json index 0806c941d..0279b08e8 100644 --- a/dashboard-ui/strings/en-GB.json +++ b/dashboard-ui/strings/en-GB.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Exit", "LabelVisitCommunity": "Visit Community", "LabelGithub": "Github", diff --git a/dashboard-ui/strings/es-AR.json b/dashboard-ui/strings/es-AR.json index 70390b68e..25a925b6b 100644 --- a/dashboard-ui/strings/es-AR.json +++ b/dashboard-ui/strings/es-AR.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Salir", "LabelVisitCommunity": "Visit Community", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/es-MX.json b/dashboard-ui/strings/es-MX.json index 4df4d7a20..831f97c23 100644 --- a/dashboard-ui/strings/es-MX.json +++ b/dashboard-ui/strings/es-MX.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Salir", "LabelVisitCommunity": "Visitar la Comunidad", "LabelGithub": "Github", @@ -366,7 +368,7 @@ "LabelAutomaticUpdatesTmdbHelp": "Al habilitarlo, se descargar\u00e1n autom\u00e1ticamente nuevas im\u00e1genes conforme son a\u00f1adidas a TheMovieDB.org. Las im\u00e1genes existentes no ser\u00e1n reemplazadas. Esto ocasionar\u00e1 que la exploraci\u00f3n de la biblioteca tome m\u00e1s tiempo y resultar\u00e1 en mayor actividad del disco.", "LabelAutomaticUpdatesTvdbHelp": "Al habilitarlo, se descargar\u00e1n autom\u00e1ticamente nuevas im\u00e1genes conforme son a\u00f1adidas a TheTVDB.com. Las im\u00e1genes existentes no ser\u00e1n reemplazadas. Esto causar\u00e1 que la exploraci\u00f3n de la biblioteca tome m\u00e1s tiempo y resultar\u00e1 en mayor actividad del disco.", "LabelFanartApiKey": "Clave api personal:", - "LabelFanartApiKeyHelp": "Solicitar fanart sin una clave API personal muestra los resultados que fueron aprobados hace 7 d\u00edas. Con una clave API personal se reduce a 48 horas y si eres miembro VIP de fanart ser\u00e1 alrededor de 10 minutos.", + "LabelFanartApiKeyHelp": "Solicitar fanart sin una clave API personal muestra los imagenes que fueron aprobadas hace 7 d\u00edas. Con una clave API personal se reduce a 48 horas y si eres miembro VIP de fanart ser\u00e1 alrededor de 10 minutos.", "ExtractChapterImagesHelp": "Extraer las im\u00e1genes de los cap\u00edtulos permitir\u00e1 a sus clientes mostrar gr\u00e1ficamente los men\u00fas de selecci\u00f3n de escenas. El proceso puede ser lento, hacer uso intensivo del cpu y requerir el uso de varios gigabytes de espacio. Se ejecuta como una tarea nocturna programada, aunque puede configurarse en el \u00e1rea de tareas programadas. No se recomienda ejecutarlo durante un horario de uso intensivo.", "LabelMetadataDownloadLanguage": "Lenguaje preferido para descargas:", "LabelImageSavingConvention": "Convenci\u00f3n de almacenamiento de im\u00e1genes:", @@ -2247,7 +2249,7 @@ "ButtonLocalRefresh": "Actualizaci\u00f3n local", "ButtonAddMissingData": "S\u00f3lo agregar datos faltantes", "ButtonFullRefresh": "Actualizaci\u00f3n completa", - "ValueExample": "1:00 PM", + "ValueExample": "Ejemplo: {0}", "OptionEnableAnonymousUsageReporting": "Habilitar envi\u00f3 de reportes an\u00f3nimo", "OptionEnableAnonymousUsageReportingHelp": "Permite a Emby colectar informaci\u00f3n an\u00f3nima como los complementos instalados, el numero de versi\u00f3n de sus apps Emby, etc. Esta informaci\u00f3n sera usada con el \u00fanico prop\u00f3sito de mejorar el software.", "LabelFileOrUrl": "Archivo o url:", @@ -2315,10 +2317,10 @@ "EnablePhotosHelp": "Las fotograf\u00edas ser\u00e1n detectadas y mostradas junto con otros archivos de medios.", "MakeAvailableOffline": "Hacer disponible sin conexi\u00f3n", "ConfirmRemoveDownload": "\u00bfEliminar descarga?", - "RemoveDownload": "Remove download", + "RemoveDownload": "Quitar descarga", "SyncToOtherDevices": "Sincronizar a otros dispositivos", "ManageOfflineDownloads": "Administrar elementos sin conexi\u00f3n", "MessageDownloadScheduled": "Descarga programada", - "RememberMe": "Remember me", - "HeaderOfflineSync": "Offline Sync" + "RememberMe": "Recuerdame", + "HeaderOfflineSync": "Sinc. desconectado" } \ No newline at end of file diff --git a/dashboard-ui/strings/es.json b/dashboard-ui/strings/es.json index 15134f178..752c2326d 100644 --- a/dashboard-ui/strings/es.json +++ b/dashboard-ui/strings/es.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Salir", "LabelVisitCommunity": "Visitar la comunidad", "LabelGithub": "Github", diff --git a/dashboard-ui/strings/fi.json b/dashboard-ui/strings/fi.json index 20e71edda..db24d933b 100644 --- a/dashboard-ui/strings/fi.json +++ b/dashboard-ui/strings/fi.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Poistu", "LabelVisitCommunity": "K\u00e4y Yhteis\u00f6ss\u00e4", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/fr-CA.json b/dashboard-ui/strings/fr-CA.json index f9475a8e4..2f6100df0 100644 --- a/dashboard-ui/strings/fr-CA.json +++ b/dashboard-ui/strings/fr-CA.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Quitter", "LabelVisitCommunity": "Visiter la Communaut\u00e9", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/fr-FR.json b/dashboard-ui/strings/fr-FR.json index ddc6356d7..a19876168 100644 --- a/dashboard-ui/strings/fr-FR.json +++ b/dashboard-ui/strings/fr-FR.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Quitter", "LabelVisitCommunity": "Visiter la Communaut\u00e9", "LabelGithub": "Github", diff --git a/dashboard-ui/strings/fr.json b/dashboard-ui/strings/fr.json index bd38602b5..c4597e025 100644 --- a/dashboard-ui/strings/fr.json +++ b/dashboard-ui/strings/fr.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Quitter", "LabelVisitCommunity": "Visiter la Communaut\u00e9", "LabelGithub": "Github", diff --git a/dashboard-ui/strings/gsw.json b/dashboard-ui/strings/gsw.json index 7d2a2223e..ffdbb4aa2 100644 --- a/dashboard-ui/strings/gsw.json +++ b/dashboard-ui/strings/gsw.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Verlasse", "LabelVisitCommunity": "Bsuech d'Community", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/he.json b/dashboard-ui/strings/he.json index ec34f4cab..c5e2bdb68 100644 --- a/dashboard-ui/strings/he.json +++ b/dashboard-ui/strings/he.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "\u05d9\u05e6\u05d9\u05d0\u05d4", "LabelVisitCommunity": "\u05d1\u05e7\u05e8 \u05d1\u05e7\u05d4\u05d9\u05dc\u05d4", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/hr.json b/dashboard-ui/strings/hr.json index e400e08b6..414e806cd 100644 --- a/dashboard-ui/strings/hr.json +++ b/dashboard-ui/strings/hr.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Izlaz", "LabelVisitCommunity": "Posjeti zajednicu", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/hu.json b/dashboard-ui/strings/hu.json index 4a56c6265..467fd5491 100644 --- a/dashboard-ui/strings/hu.json +++ b/dashboard-ui/strings/hu.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Kil\u00e9p\u00e9s", "LabelVisitCommunity": "K\u00f6z\u00f6ss\u00e9g", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Min\u0151s\u00e9g:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Elemsz\u00e1m limit:", diff --git a/dashboard-ui/strings/id.json b/dashboard-ui/strings/id.json index 044546351..409226851 100644 --- a/dashboard-ui/strings/id.json +++ b/dashboard-ui/strings/id.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Keluar", "LabelVisitCommunity": "Kunjungi Komunitas", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/it.json b/dashboard-ui/strings/it.json index ee1fea5c8..d9baf874d 100644 --- a/dashboard-ui/strings/it.json +++ b/dashboard-ui/strings/it.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Massimo bitrate per file audio:", + "LabelMaxAudioFileBitrateHelp": "I file audio con un valore pi\u00f9 alto di bitrate saranno convertiti dal Server Emby. Seleziona un valore pi\u00f9 alto per una qualit\u00e0 migliore, oppure, un valore pi\u00f9 basso per risparmiare spazio di archiviazione.", "LabelExit": "Esci", "LabelVisitCommunity": "Visita la Community", "LabelGithub": "Github", @@ -25,7 +27,7 @@ "LabelWindowsService": "Servizio Windows", "AWindowsServiceHasBeenInstalled": "Servizio Windows Installato", "WindowsServiceIntro1": "Il Server Emby normalmente viene eseguito come un'applicazione del desktop con un'icona sulla barra in basso a destra, ma in alternativa, se si preferisce farlo funzionare come servizio in background, pu\u00f2 essere avviato dal pannello di controllo dei servizi di Windows.", - "WindowsServiceIntro2": "If using the windows service, please note that it cannot be run at the same time as the tray icon, so you'll need to exit the tray in order to run the service. The service will also need to be configured with administrative privileges via the control panel. When running as a service, you will need to ensure that the service account has access to your media folders.", + "WindowsServiceIntro2": "Se stai utilizzando il server come servizio windows ricorda che non puoi utilizzarlo contemporaneamente anche come icona sulla tray bar: se vuoi usare Emby come servizio devi prima uscire. Il servizio windows deve inoltre essere configurato con privilegi di amministratore attraverso il pannello di controllo. Quando esegui il server come servizio Windows devi inoltre essere certo che l'account che esegue il servizio abbia accesso alle cartelle dove sono presenti i tuoi file multimediali.", "WizardCompleted": "Questo \u00e8 tutto ci\u00f2 che serve per ora. Emby ha iniziato a raccogliere informazioni sulla tua libreria di file multimediali. Scopri alcune delle nostre app, quindi clicca su Fine<\/b> per visualizzare il Pannello di controllo del server<\/b>", "LabelConfigureSettings": "Configura le impostazioni", "LabelEnableVideoImageExtraction": "Abilita estrazione immagine video", @@ -41,7 +43,7 @@ "ButtonTermsOfService": "Termini di Servizio", "HeaderDeveloperOptions": "Opzioni per il programmatore", "OptionEnableWebClientResponseCache": "Enable web response caching", - "OptionDisableForDevelopmentHelp": "Configure these as needed for web development purposes.", + "OptionDisableForDevelopmentHelp": "Configura queste opzioni utili per lo sviluppo web.", "OptionEnableWebClientResourceMinification": "Enable web resource minification", "LabelDashboardSourcePath": "Percorso del codice sorgente del client web:", "LabelDashboardSourcePathHelp": "se si sta eseguendo il server da una sorgente, specifica il percorso dell'interfaccia. Tutti i file per i client saranno presi da questo percorso", @@ -97,7 +99,7 @@ "FolderTypeInherit": "ereditare", "LabelContentType": "Tipo di contenuto:", "TitleScheduledTasks": "Task pianificati", - "HeaderSetupLibrary": "Setup your media libraries", + "HeaderSetupLibrary": "Imposta le tue librerie multimediali.", "ButtonAddMediaFolder": "Aggiungi cartella", "LabelFolderType": "Tipo cartella", "ReferToMediaLibraryWiki": "Fare riferimento alla wiki libreria multimediale.", @@ -132,7 +134,7 @@ "LabelSubtitleLanguagePreference": "Preferenza per la lingua dei sottotitoli:", "OptionDefaultSubtitles": "Predefinito", "OptionSmartSubtitles": "Smart", - "OptionSmartSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.", + "OptionSmartSubtitlesHelp": "I sottotitoli che corrispondono alle tue preferenze sulla lingua saranno caricati quando la lingua dell'audio \u00e8 straniera.", "OptionOnlyForcedSubtitles": "Solo i sottotitoli forzati", "OptionAlwaysPlaySubtitles": "Visualizza sempre i sottotitoli", "OptionDefaultSubtitlesHelp": "Subtitles are loaded based on the default and forced flags in the embedded metadata. Language preferences are considered when multiple options are available.", diff --git a/dashboard-ui/strings/kk.json b/dashboard-ui/strings/kk.json index 4bef1dbed..f66947550 100644 --- a/dashboard-ui/strings/kk.json +++ b/dashboard-ui/strings/kk.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "\u0428\u044b\u0493\u0443", "LabelVisitCommunity": "\u049a\u0430\u0443\u044b\u043c\u0434\u0430\u0441\u0442\u044b\u049b\u049b\u0430 \u0431\u0430\u0440\u0443", "LabelGithub": "GitHub", diff --git a/dashboard-ui/strings/ko.json b/dashboard-ui/strings/ko.json index 9b447fe62..eb8963208 100644 --- a/dashboard-ui/strings/ko.json +++ b/dashboard-ui/strings/ko.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "\uc885\ub8cc", "LabelVisitCommunity": "\ucee4\ubba4\ub2c8\ud2f0 \ubc29\ubb38", "LabelGithub": "Github", diff --git a/dashboard-ui/strings/ms.json b/dashboard-ui/strings/ms.json index 1675eb0f3..a775b1ad6 100644 --- a/dashboard-ui/strings/ms.json +++ b/dashboard-ui/strings/ms.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Tutup", "LabelVisitCommunity": "Melawat Masyarakat", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/nb.json b/dashboard-ui/strings/nb.json index 0f3f13dad..9ff3f62ab 100644 --- a/dashboard-ui/strings/nb.json +++ b/dashboard-ui/strings/nb.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Avslutt", "LabelVisitCommunity": "Bes\u00f8k samfunn", "LabelGithub": "Github", diff --git a/dashboard-ui/strings/nl.json b/dashboard-ui/strings/nl.json index 8e59b3ab7..4151c950d 100644 --- a/dashboard-ui/strings/nl.json +++ b/dashboard-ui/strings/nl.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Afsluiten", "LabelVisitCommunity": "Bezoek Gemeenschap", "LabelGithub": "Github", diff --git a/dashboard-ui/strings/pl.json b/dashboard-ui/strings/pl.json index 38da6f55f..3131b1caf 100644 --- a/dashboard-ui/strings/pl.json +++ b/dashboard-ui/strings/pl.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Wyj\u015bcie", "LabelVisitCommunity": "Odwied\u017a spo\u0142eczno\u015b\u0107", "LabelGithub": "Github", diff --git a/dashboard-ui/strings/pt-BR.json b/dashboard-ui/strings/pt-BR.json index 0b7c1045d..dc60e0ee4 100644 --- a/dashboard-ui/strings/pt-BR.json +++ b/dashboard-ui/strings/pt-BR.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Bitrate m\u00e1x arquivos de \u00e1udio:", + "LabelMaxAudioFileBitrateHelp": "Arquivos de \u00e1udio com um bitrate maior ser\u00e3o convertidos pelo Servidor Emby. Selecione um valor mais alto para melhor qualidade, ou mais baixo para conservar espa\u00e7o no armazenamento local.", "LabelExit": "Sair", "LabelVisitCommunity": "Visitar a Comunidade", "LabelGithub": "Github", @@ -366,7 +368,7 @@ "LabelAutomaticUpdatesTmdbHelp": "Se ativado, novas imagens ser\u00e3o automaticamente baixadas ao serem adicionadas ao TheMovieDB.org. As Imagens atuais n\u00e3o ser\u00e3o substitu\u00eddas. Isto far\u00e1 com que a varredura da biblioteca leve mais tempo e haja mais atividade no disco.", "LabelAutomaticUpdatesTvdbHelp": "Se ativado, novas imagens ser\u00e3o automaticamente baixadas ao serem adicionadas ao TheTVDB.com. As Imagens atuais n\u00e3o ser\u00e3o substitu\u00eddas. Isto far\u00e1 com que a varredura da biblioteca leve mais tempo e haja mais atividade no disco.", "LabelFanartApiKey": "Chave de api pessoal:", - "LabelFanartApiKeyHelp": "Solicita\u00e7\u00f5es para fanart sem uma chave de API pessoal retornar\u00e3o resultados que foram aprovados h\u00e1 mais de 7 dias atr\u00e1s. Com uma chave de API pessoal isso diminui para 48 horas e se voc\u00ea for um membro VIP da fanart, isso diminuir\u00e1 para 10 minutos.", + "LabelFanartApiKeyHelp": "Solicita\u00e7\u00f5es para fanart sem uma chave de API pessoal retornar\u00e3o imagens que foram aprovadas h\u00e1 mais de 7 dias. Com uma chave de API pessoal isso diminui para 48 horas e se voc\u00ea for um membro VIP da fanart, isso diminuir\u00e1 para aproximadamente 10 minutos.", "ExtractChapterImagesHelp": "Extrair imagens de cap\u00edtulos permitir\u00e1 aos clientes exibir menus gr\u00e1ficos de sele\u00e7\u00e3o de cenas. O processo pode ser lento, demandar uso intensivo de cpu e pode exigir bastante espa\u00e7o em disco. Ele ser\u00e1 executado quando os v\u00eddeos forem descobertos e tamb\u00e9m como uma tarefa noturna. O agendamento pode ser configurado na \u00e1rea de tarefas agendadas. N\u00e3o \u00e9 recomendado executar esta tarefa durante as horas de pico de uso.", "LabelMetadataDownloadLanguage": "Idioma preferido para download:", "LabelImageSavingConvention": "Conven\u00e7\u00e3o para salvar a imagem:", @@ -1348,7 +1350,7 @@ "HeaderPlayback": "Reprodu\u00e7\u00e3o de M\u00eddia", "OptionAllowAudioPlaybackTranscoding": "Permitir reprodu\u00e7\u00e3o de \u00e1udio que necessite de transcodifica\u00e7\u00e3o", "OptionAllowVideoPlaybackTranscoding": "Permitir reprodu\u00e7\u00e3o de v\u00eddeo que necessite de transcodifica\u00e7\u00e3o", - "OptionAllowVideoPlaybackRemuxing": "Allow video playback that requires conversion without re-encoding", + "OptionAllowVideoPlaybackRemuxing": "Pertimir reprodu\u00e7\u00e3o de v\u00eddeos que requeiram convers\u00e3o sem re-encoda\u00e7\u00e3o", "OptionAllowMediaPlaybackTranscodingHelp": "Os usu\u00e1rios receber\u00e3o mensagens de erro amig\u00e1veis quando o conte\u00fado n\u00e3o for reproduz\u00edvel, baseado nas pol\u00edticas.", "TabStreaming": "Streaming", "LabelRemoteClientBitrateLimit": "Limite de taxa de bits para streaming da Internet (Mbps):", @@ -1582,8 +1584,8 @@ "ButtonTakeTheTour": "Fa\u00e7a o tour", "HeaderWelcomeBack": "Bem-vindo novamente!", "ButtonTakeTheTourToSeeWhatsNew": "Fa\u00e7a o tour para ver as novidades", - "MessageNoSyncJobsFound": "Nenhuma tarefa de sincroniza\u00e7\u00e3o encontrada. Crie uma tarefa de sincroniza\u00e7\u00e3o usando os bot\u00f5es Sincroniza\u00e7\u00e3o encontrados na interface web.", - "MessageDownloadsFound": "No offline downloads. Make your media available offline by clicking Make Available Offline throughout the app.", + "MessageNoSyncJobsFound": "Nenhuma tarefa de sincroniza\u00e7\u00e3o encontrada. Crie uma tarefa de sincroniza\u00e7\u00e3o usando os bot\u00f5es Sincronizar encontrados no app.", + "MessageDownloadsFound": "Nenhum download offline. Disponibilize sua m\u00eddia offline clicando em Disponibilizar Offline dentro do aplicativo", "HeaderSelectDevices": "Selecionar Dispositivos", "ButtonCancelItem": "Cancelar item", "ButtonQueueForRetry": "Enfileirar para tentar novamente", @@ -1739,7 +1741,7 @@ "MessageEnsureOpenTuner": "Por favor, cetifique-se que existe um sintonizador aberto.", "ButtonDashboard": "Painel", "ButtonReports": "Relat\u00f3rios", - "MetadataManager": "Metadata Manager", + "MetadataManager": "Gerenciador de Metadados", "HeaderTime": "Tempo", "LabelAddedOnDate": "Adicionado {0}", "ButtonStart": "Iniciar", @@ -1862,7 +1864,7 @@ "OptionMusicAlbums": "\u00c1lbuns de m\u00fasica", "OptionMusicVideos": "V\u00eddeos Musicais", "OptionSongs": "M\u00fasicas", - "OptionHomeVideos": "V\u00eddeos caseiros", + "OptionHomeVideos": "Fotos & v\u00eddeos caseiros", "OptionBooks": "Livros", "ButtonUp": "Subir", "ButtonDown": "Descer", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Nome da tarefa de sincroniza\u00e7\u00e3o:", "LabelQuality": "Qualidade:", "OptionAutomaticallySyncNewContent": "Sincronizar novo conte\u00fado automaticamente", - "OptionAutomaticallySyncNewContentHelp": "Novo conte\u00fado adicionado ser\u00e1 automaticamente sincronizado com o dispositivo.", + "OptionAutomaticallySyncNewContentHelp": "Novo conte\u00fado adicionado a esta pasta ser\u00e1 automaticamente sincronizado com o dispositivo.", "OptionSyncUnwatchedVideosOnly": "Sincronizar apenas v\u00eddeos n\u00e3o assistidos", "OptionSyncUnwatchedVideosOnlyHelp": "Apenas v\u00eddeos n\u00e3o assistidos ser\u00e3o sincronizados, e os v\u00eddeos ser\u00e3o removidos do dispositivo assim que forem assistidos.", "LabelItemLimit": "Limite de itens:", @@ -2247,7 +2249,7 @@ "ButtonLocalRefresh": "Atualiza\u00e7\u00e3o local", "ButtonAddMissingData": "Adicionar apenas dados que faltam", "ButtonFullRefresh": "Atualiza\u00e7\u00e3o completa", - "ValueExample": "13:00 hs", + "ValueExample": "Exemplo: {0}", "OptionEnableAnonymousUsageReporting": "Ativar relat\u00f3rio de uso an\u00f4nimo", "OptionEnableAnonymousUsageReportingHelp": "Permitir que o Emby colete dados an\u00f4nimos como os plugins instalados, os n\u00fameros de vers\u00e3o de seus apps Emby, etc. Estas informa\u00e7\u00f5es s\u00e3o usadas apenas com o prop\u00f3sito de aprimorar o software.", "LabelFileOrUrl": "Arquivo ou url:", @@ -2311,14 +2313,14 @@ "XmlTvPremiere": "Por padr\u00e3o, o Emby importar\u00e1 {0} horas de dados do guia. A importa\u00e7\u00e3o de dados ilimitados exige uma subscri\u00e7\u00e3o ativa do Emby Premiere.", "MoreFromValue": "Mais de {0}", "OptionSaveMetadataAsHiddenHelp": "Ao alterar isto, aplicar\u00e1 sobre novos metadados salvos daqui para a frente. Os arquivos de metadados existentes ser\u00e3o atualizados na pr\u00f3xima vez que forem salvos no Servidor Emby.", - "EnablePhotos": "Enable photos", - "EnablePhotosHelp": "Photos will be detected and displayed alongside other media files.", - "MakeAvailableOffline": "Make available offline", - "ConfirmRemoveDownload": "Remove download?", - "RemoveDownload": "Remove download", - "SyncToOtherDevices": "Sync to other devices", - "ManageOfflineDownloads": "Manage offline downloads", - "MessageDownloadScheduled": "Download scheduled", - "RememberMe": "Remember me", - "HeaderOfflineSync": "Offline Sync" + "EnablePhotos": "Habilitar fotos", + "EnablePhotosHelp": "Fotos ser\u00e3o detectadas e mostradas junto com outros arquivos de m\u00eddia", + "MakeAvailableOffline": "Disponibilizar Offline", + "ConfirmRemoveDownload": "Remover download?", + "RemoveDownload": "Remover download", + "SyncToOtherDevices": "Sincronizar para outros dispositivos", + "ManageOfflineDownloads": "Gerenciar downloads offline", + "MessageDownloadScheduled": "Download agendado", + "RememberMe": "Lembrar de mim", + "HeaderOfflineSync": "Sincroniza\u00e7\u00e3o Offline" } \ No newline at end of file diff --git a/dashboard-ui/strings/ro.json b/dashboard-ui/strings/ro.json index 66ae0521f..db539bf62 100644 --- a/dashboard-ui/strings/ro.json +++ b/dashboard-ui/strings/ro.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Iesire", "LabelVisitCommunity": "Viziteaza comunitatea", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/ru.json b/dashboard-ui/strings/ru.json index b757762d3..7b4e14f89 100644 --- a/dashboard-ui/strings/ru.json +++ b/dashboard-ui/strings/ru.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "\u0412\u044b\u0445\u043e\u0434", "LabelVisitCommunity": "\u041f\u043e\u0441\u0435\u0449\u0435\u043d\u0438\u0435 \u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430", "LabelGithub": "GitHub", diff --git a/dashboard-ui/strings/sk.json b/dashboard-ui/strings/sk.json index 9988570cf..5921c624e 100644 --- a/dashboard-ui/strings/sk.json +++ b/dashboard-ui/strings/sk.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Exit", "LabelVisitCommunity": "Visit Community", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/sl-SI.json b/dashboard-ui/strings/sl-SI.json index 737a51c6c..7fdb5ac47 100644 --- a/dashboard-ui/strings/sl-SI.json +++ b/dashboard-ui/strings/sl-SI.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Izhod", "LabelVisitCommunity": "Obiscite Skupnost", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Kvaliteta:", "OptionAutomaticallySyncNewContent": "Samodejno sinhroniziraj nove vsebine", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/sv.json b/dashboard-ui/strings/sv.json index b3d43051a..e89b991f7 100644 --- a/dashboard-ui/strings/sv.json +++ b/dashboard-ui/strings/sv.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Avsluta", "LabelVisitCommunity": "Bes\u00f6k v\u00e5rt diskussionsforum", "LabelGithub": "Github", diff --git a/dashboard-ui/strings/tr.json b/dashboard-ui/strings/tr.json index 0ee41952d..3e9ce2872 100644 --- a/dashboard-ui/strings/tr.json +++ b/dashboard-ui/strings/tr.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Cikis", "LabelVisitCommunity": "Bizi Ziyaret Edin", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/uk.json b/dashboard-ui/strings/uk.json index 6e8d899a9..6be36cd0b 100644 --- a/dashboard-ui/strings/uk.json +++ b/dashboard-ui/strings/uk.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "\u0412\u0438\u0439\u0442\u0438", "LabelVisitCommunity": "Visit Community", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/vi.json b/dashboard-ui/strings/vi.json index 1f2c66a2e..8ff711ef3 100644 --- a/dashboard-ui/strings/vi.json +++ b/dashboard-ui/strings/vi.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "Tho\u00e1t", "LabelVisitCommunity": "Gh\u00e9 th\u0103m trang C\u1ed9ng \u0111\u1ed3ng", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/zh-CN.json b/dashboard-ui/strings/zh-CN.json index bd3a89634..68d870d8c 100644 --- a/dashboard-ui/strings/zh-CN.json +++ b/dashboard-ui/strings/zh-CN.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "\u9000\u51fa", "LabelVisitCommunity": "\u8bbf\u95ee\u793e\u533a", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/zh-HK.json b/dashboard-ui/strings/zh-HK.json index 17cb303e4..7ce41d0d0 100644 --- a/dashboard-ui/strings/zh-HK.json +++ b/dashboard-ui/strings/zh-HK.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "\u96e2\u958b", "LabelVisitCommunity": "\u8a2a\u554f\u8a0e\u8ad6\u5340", "LabelGithub": "Github", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", diff --git a/dashboard-ui/strings/zh-TW.json b/dashboard-ui/strings/zh-TW.json index c240d4481..61f730d3d 100644 --- a/dashboard-ui/strings/zh-TW.json +++ b/dashboard-ui/strings/zh-TW.json @@ -1,4 +1,6 @@ { + "LabelMaxAudioFileBitrate": "Max audio file bitrate:", + "LabelMaxAudioFileBitrateHelp": "Audio files with a higher bitrate will be converted by Emby Server. Select a higher value for better quality, or a lower value to conserve local storage space.", "LabelExit": "\u96e2\u958b", "LabelVisitCommunity": "\u8a2a\u554f\u793e\u7fa4", "LabelGithub": "GitHub", @@ -2108,7 +2110,7 @@ "LabelSyncJobName": "Sync job name:", "LabelQuality": "Quality:", "OptionAutomaticallySyncNewContent": "Automatically sync new content", - "OptionAutomaticallySyncNewContentHelp": "New content added to will be automatically synced to the device.", + "OptionAutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "OptionSyncUnwatchedVideosOnly": "Sync unwatched videos only", "OptionSyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", "LabelItemLimit": "Item limit:", From 6ab4b313a13dee0ffe9d7d782330e34385245ad1 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 23 Aug 2016 13:07:50 -0400 Subject: [PATCH 6/7] update shared components --- .../emby-webcomponents/.bower.json | 8 ++++---- .../emby-webcomponents/cardbuilder/card.css | 4 ++-- .../cardbuilder/cardbuilder.js | 2 +- .../cardbuilder/peoplecardbuilder.js | 2 +- .../emby-webcomponents/focusmanager.js | 8 ++++++-- .../itemidentifier/itemidentifier.js | 2 +- .../emby-webcomponents/strings/ar.json | 16 +++++++++++++++ .../emby-webcomponents/strings/bg-BG.json | 16 +++++++++++++++ .../emby-webcomponents/strings/ca.json | 16 +++++++++++++++ .../emby-webcomponents/strings/cs.json | 16 +++++++++++++++ .../emby-webcomponents/strings/da.json | 16 +++++++++++++++ .../emby-webcomponents/strings/de.json | 16 +++++++++++++++ .../emby-webcomponents/strings/el.json | 16 +++++++++++++++ .../emby-webcomponents/strings/en-GB.json | 16 +++++++++++++++ .../emby-webcomponents/strings/es-AR.json | 16 +++++++++++++++ .../emby-webcomponents/strings/es-MX.json | 16 +++++++++++++++ .../emby-webcomponents/strings/es.json | 16 +++++++++++++++ .../emby-webcomponents/strings/fi.json | 16 +++++++++++++++ .../emby-webcomponents/strings/fr-CA.json | 16 +++++++++++++++ .../emby-webcomponents/strings/fr.json | 20 +++++++++++++++++-- .../emby-webcomponents/strings/gsw.json | 16 +++++++++++++++ .../emby-webcomponents/strings/he.json | 16 +++++++++++++++ .../emby-webcomponents/strings/hr.json | 16 +++++++++++++++ .../emby-webcomponents/strings/hu.json | 16 +++++++++++++++ .../emby-webcomponents/strings/id.json | 16 +++++++++++++++ .../emby-webcomponents/strings/it.json | 16 +++++++++++++++ .../emby-webcomponents/strings/kk.json | 16 +++++++++++++++ .../emby-webcomponents/strings/ko.json | 16 +++++++++++++++ .../emby-webcomponents/strings/ms.json | 16 +++++++++++++++ .../emby-webcomponents/strings/nb.json | 16 +++++++++++++++ .../emby-webcomponents/strings/nl.json | 16 +++++++++++++++ .../emby-webcomponents/strings/pl.json | 16 +++++++++++++++ .../emby-webcomponents/strings/pt-BR.json | 16 +++++++++++++++ .../emby-webcomponents/strings/pt-PT.json | 16 +++++++++++++++ .../emby-webcomponents/strings/ro.json | 16 +++++++++++++++ .../emby-webcomponents/strings/ru.json | 16 +++++++++++++++ .../emby-webcomponents/strings/sk.json | 16 +++++++++++++++ .../emby-webcomponents/strings/sl-SI.json | 16 +++++++++++++++ .../emby-webcomponents/strings/sv.json | 16 +++++++++++++++ .../emby-webcomponents/strings/tr.json | 16 +++++++++++++++ .../emby-webcomponents/strings/uk.json | 16 +++++++++++++++ .../emby-webcomponents/strings/vi.json | 16 +++++++++++++++ .../emby-webcomponents/strings/zh-CN.json | 16 +++++++++++++++ .../emby-webcomponents/strings/zh-HK.json | 16 +++++++++++++++ .../emby-webcomponents/strings/zh-TW.json | 16 +++++++++++++++ .../emby-webcomponents/sync/sync.js | 5 ++++- dashboard-ui/css/site.css | 2 +- dashboard-ui/scripts/loginpage.js | 2 +- dashboard-ui/scripts/medialibrarypage.js | 2 +- dashboard-ui/scripts/plugincatalogpage.js | 2 +- dashboard-ui/scripts/pluginspage.js | 2 +- dashboard-ui/scripts/userprofilespage.js | 4 ++-- 52 files changed, 652 insertions(+), 21 deletions(-) diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index b8db56203..c4a7d2d93 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -14,12 +14,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.4.180", - "_release": "1.4.180", + "version": "1.4.182", + "_release": "1.4.182", "_resolution": { "type": "version", - "tag": "1.4.180", - "commit": "053e9d6503c1b6322ce41ad044787990026d8e18" + "tag": "1.4.182", + "commit": "d4c701ce17ff5a243470cf9cae99babde51f7179" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.1", diff --git a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css index 1d2bc7bb7..9407e53f0 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css +++ b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css @@ -206,11 +206,11 @@ padding: .5em .3em; } -.visualCardBox .cardScalable, .visualCardBox .cardFooter { +.visualCardBox .cardScalable, .visualCardBox-cardFooter { background-color: #222326; } -.visualCardBox .cardFooter { +.visualCardBox-cardFooter { border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; -moz-box-shadow: 0 2px 4px rgba(0,0,0,0.1); diff --git a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/cardbuilder.js b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/cardbuilder.js index 0a7d89100..775efbee7 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/cardbuilder.js +++ b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/cardbuilder.js @@ -1079,7 +1079,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'mediaInfo var outerCardFooter = ''; if (!overlayText && !footerOverlayed) { - footerCssClass = options.cardLayout ? 'cardFooter' : 'cardFooter transparent'; + footerCssClass = options.cardLayout ? 'cardFooter visualCardBox-cardFooter' : 'cardFooter transparent'; outerCardFooter = getCardFooterText(item, options, showTitle, forceName, imgUrl, footerCssClass, progressHtml, true); } diff --git a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/peoplecardbuilder.js b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/peoplecardbuilder.js index 83bc2aace..b3b404d8a 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/peoplecardbuilder.js +++ b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/peoplecardbuilder.js @@ -93,7 +93,7 @@ define(['imageLoader', 'itemShortcuts', 'connectionManager', 'layoutManager'], f \ \ \ -
\ +
\ ' + nameHtml + '\
\
\ diff --git a/dashboard-ui/bower_components/emby-webcomponents/focusmanager.js b/dashboard-ui/bower_components/emby-webcomponents/focusmanager.js index 77de63122..454d28a05 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/focusmanager.js +++ b/dashboard-ui/bower_components/emby-webcomponents/focusmanager.js @@ -24,7 +24,7 @@ define(['dom'], function (dom) { } if (defaultToFirst !== false) { - element = getFocusableElements(view)[0]; + element = getFocusableElements(view, 1)[0]; if (element) { focus(element); @@ -117,7 +117,7 @@ define(['dom'], function (dom) { return scopes[0] || document.body; } - function getFocusableElements(parent) { + function getFocusableElements(parent, limit) { var elems = (parent || getDefaultScope()).querySelectorAll(focusableQuery); var focusableElements = []; @@ -127,6 +127,10 @@ define(['dom'], function (dom) { if (isCurrentlyFocusableInternal(elem)) { focusableElements.push(elem); + + if (limit && focusableElements.length >= limit) { + break; + } } } diff --git a/dashboard-ui/bower_components/emby-webcomponents/itemidentifier/itemidentifier.js b/dashboard-ui/bower_components/emby-webcomponents/itemidentifier/itemidentifier.js index 5db0d5539..876a35f61 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/itemidentifier/itemidentifier.js +++ b/dashboard-ui/bower_components/emby-webcomponents/itemidentifier/itemidentifier.js @@ -203,7 +203,7 @@ html += ''; html += ''; - html += '
'; + html += '
'; html += '
' + result.Name + '
'; html += '
'; diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/ar.json b/dashboard-ui/bower_components/emby-webcomponents/strings/ar.json index 4982b64d8..4ace389b3 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/ar.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/ar.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Add", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/bg-BG.json b/dashboard-ui/bower_components/emby-webcomponents/strings/bg-BG.json index bd971ace2..08f4863f8 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/bg-BG.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/bg-BG.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "\u0414\u043e\u0431\u0430\u0432\u0438", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/ca.json b/dashboard-ui/bower_components/emby-webcomponents/strings/ca.json index 0d4807ad5..c76d38b42 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/ca.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/ca.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Afegeix", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/cs.json b/dashboard-ui/bower_components/emby-webcomponents/strings/cs.json index e3732a85c..594de6097 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/cs.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/cs.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "P\u0159idat", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/da.json b/dashboard-ui/bower_components/emby-webcomponents/strings/da.json index 66ec2e1bd..62d4247af 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/da.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/da.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Del", "Add": "Tilf\u00f8j", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/de.json b/dashboard-ui/bower_components/emby-webcomponents/strings/de.json index 82c6ee4b1..160239d1d 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/de.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/de.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Synchronisationsaufgabe erstellt.", + "LabelSyncTo": "Synchronisiere mit:", + "LabelSyncJobName": "Name der Synchronisationsaufgabe:", + "LabelSyncNoTargetsHelp": "Es sieht so aus als w\u00fcrdest du aktuell keine Apps verwenden, die Synchronisation unterst\u00fctzen.", + "LabelQuality": "Qualit\u00e4t:", + "LearnMore": "Erfahre mehr", + "DownloadScheduled": "Download geplant", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profil:", + "SyncUnwatchedVideosOnly": "Synchronisiere nur ungesehene Videos", + "AutomaticallySyncNewContent": "Synchronisiere neue Inhalte automatisch", + "PleaseSelectDeviceToSyncTo": "Bitte w\u00e4hlen Sie ein zu synchronisierendes Ger\u00e4t.", + "LabelItemLimit": "Maximale Anzahl:", + "SyncUnwatchedVideosOnlyHelp": "Nur ungesehene Video werden synchronisiert. Videos werden entfernt sobald diese auf dem Ger\u00e4t angeschaut wurden.", + "LabelItemLimitHelp": "Optional. Legen Sie die maximale Anzahl der zu synchronisierenden Eintr\u00e4ge fest.", + "AutomaticallySyncNewContentHelp": "Neu zu diesen Ordner hinzugef\u00fcgte Inhalte werden automatisch mit dem Ger\u00e4t synchronisiert.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Teilen", "Add": "Hinzuf\u00fcgen", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/el.json b/dashboard-ui/bower_components/emby-webcomponents/strings/el.json index 21d7ce680..48bc0103c 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/el.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/el.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "\u03a0\u03c1\u03cc\u03c3\u03b8\u03b5\u03c3\u03b5", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/en-GB.json b/dashboard-ui/bower_components/emby-webcomponents/strings/en-GB.json index 779f2dae2..decbc67f8 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/en-GB.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/en-GB.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Add", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/es-AR.json b/dashboard-ui/bower_components/emby-webcomponents/strings/es-AR.json index c3b5c2ca5..f23c8da89 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/es-AR.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/es-AR.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Add", 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 ed9688862..d85e76df9 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/es-MX.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/es-MX.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Especial - {0}", "Share": "Compartir", "Add": "Agregar", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/es.json b/dashboard-ui/bower_components/emby-webcomponents/strings/es.json index 18d66fad0..c04ec3075 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/es.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/es.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Compartir", "Add": "A\u00f1adir", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/fi.json b/dashboard-ui/bower_components/emby-webcomponents/strings/fi.json index 4c676fda9..434687483 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/fi.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/fi.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Add", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/fr-CA.json b/dashboard-ui/bower_components/emby-webcomponents/strings/fr-CA.json index 552f54071..17cb4c837 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/fr-CA.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/fr-CA.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Add", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json b/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json index 0a61d404c..f02b325c3 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/fr.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Sp\u00e9cial - {0}", "Share": "Partager", "Add": "Ajouter", @@ -252,7 +268,7 @@ "MakeAvailableOffline": "Rendre disponible hors connexion", "ServerNameIsRestarting": "Emby Server - {0} est red\u00e9marr\u00e9.", "ServerNameIsShuttingDown": "Emby Server - {0} est arr\u00eater.", - "HeaderDeleteItems": "Delete Items", - "ConfirmDeleteItems": "Deleting these items will delete them from both the file system and your media library. Are you sure you wish to continue?", + "HeaderDeleteItems": "Supprimer les \u00e9l\u00e9ments", + "ConfirmDeleteItems": "Supprimer ces \u00e9l\u00e9ments l'effacera \u00e0 la fois du syst\u00e8me de fichiers et de votre biblioth\u00e8que de m\u00e9dias. \u00cates-vous s\u00fbr de vouloir continuer ?", "PleaseRestartServerName": "S'il vous pla\u00eet red\u00e9marrer Emby server - {0}." } \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/gsw.json b/dashboard-ui/bower_components/emby-webcomponents/strings/gsw.json index e873bc0ba..e40d762d4 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/gsw.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/gsw.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Add", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/he.json b/dashboard-ui/bower_components/emby-webcomponents/strings/he.json index a5484acde..b472f9cc0 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/he.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/he.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "\u05d4\u05d5\u05e1\u05e3", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/hr.json b/dashboard-ui/bower_components/emby-webcomponents/strings/hr.json index ac6eaf1d8..105a3d093 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/hr.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/hr.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Dodaj", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/hu.json b/dashboard-ui/bower_components/emby-webcomponents/strings/hu.json index 8c07f9585..909c517d7 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/hu.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/hu.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Hozz\u00e1ad", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/id.json b/dashboard-ui/bower_components/emby-webcomponents/strings/id.json index e808a1c63..cec57d8f1 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/id.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/id.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Add", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/it.json b/dashboard-ui/bower_components/emby-webcomponents/strings/it.json index d4d6ecbb7..8356e5be0 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/it.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/it.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Aggiungi", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json b/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json index 7435cb750..1612728aa 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/kk.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "\u0410\u0440\u043d\u0430\u0439\u044b - {0}", "Share": "\u041e\u0440\u0442\u0430\u049b\u0442\u0430\u0441\u0443", "Add": "\u04ae\u0441\u0442\u0435\u0443", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/ko.json b/dashboard-ui/bower_components/emby-webcomponents/strings/ko.json index f19c9d2f0..112db7cba 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/ko.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/ko.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "\ucd94\uac00", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/ms.json b/dashboard-ui/bower_components/emby-webcomponents/strings/ms.json index 552f54071..17cb4c837 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/ms.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/ms.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Add", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/nb.json b/dashboard-ui/bower_components/emby-webcomponents/strings/nb.json index ff9510496..9a579b137 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/nb.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/nb.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Spesial - {0}", "Share": "Del", "Add": "Legg til", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/nl.json b/dashboard-ui/bower_components/emby-webcomponents/strings/nl.json index 3eb3d4bb8..14ecb6990 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/nl.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/nl.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Speciaal - {0}", "Share": "Delen", "Add": "Toevoegen", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/pl.json b/dashboard-ui/bower_components/emby-webcomponents/strings/pl.json index fc3b4f69b..ed35b63a5 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/pl.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/pl.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Dodaj", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/pt-BR.json b/dashboard-ui/bower_components/emby-webcomponents/strings/pt-BR.json index 05f81dc56..57330a3d6 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/pt-BR.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/pt-BR.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Tarefas de sincroniza\u00e7\u00e3o criadas.", + "LabelSyncTo": "Sincronizar para:", + "LabelSyncJobName": "Nome da tarefa de sincroniza\u00e7\u00e3o:", + "LabelSyncNoTargetsHelp": "Parece que voc\u00ea n\u00e3o possui atualmente apps que suportam sincroniza\u00e7\u00e3o.", + "LabelQuality": "Qualidade:", + "LearnMore": "Saiba mais", + "DownloadScheduled": "Download agendado", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Perfil:", + "SyncUnwatchedVideosOnly": "Sincronizar apenas v\u00eddeos n\u00e3o assistidos", + "AutomaticallySyncNewContent": "Sincronizar novo conte\u00fado automaticamente", + "PleaseSelectDeviceToSyncTo": "Por favor selecione um dispositivo para sincronizar.", + "LabelItemLimit": "Limites de Itens:", + "SyncUnwatchedVideosOnlyHelp": "Apenas v\u00eddeos n\u00e3o assistidos ser\u00e3o sincronizados, e v\u00eddeos ser\u00e3o removidos do dispositivo \u00e0 medida que forem assistidos.", + "LabelItemLimitHelp": "Opcional. Defina um limite para o n\u00famero de itens a serem sincronizados.", + "AutomaticallySyncNewContentHelp": "Novo conte\u00fado adicionado \u00e0 esta pasta ser\u00e1 automaticamente sincronizado para o dispositivo.", "ValueSpecialEpisodeName": "Especial - {0}", "Share": "Compartilhar", "Add": "Adicionar", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/pt-PT.json b/dashboard-ui/bower_components/emby-webcomponents/strings/pt-PT.json index 4ffe9fe89..35e2ccc11 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/pt-PT.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/pt-PT.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Especial - {0}", "Share": "Partilhar", "Add": "Adicionar", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/ro.json b/dashboard-ui/bower_components/emby-webcomponents/strings/ro.json index a80290782..5aaa8bf35 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/ro.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/ro.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Add", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json b/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json index 44e16005e..39b84ad05 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/ru.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "\u0421\u043f\u0435\u0446\u044d\u043f\u0438\u0437\u043e\u0434 - {0}", "Share": "\u041f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f", "Add": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/sk.json b/dashboard-ui/bower_components/emby-webcomponents/strings/sk.json index 552f54071..17cb4c837 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/sk.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/sk.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Add", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/sl-SI.json b/dashboard-ui/bower_components/emby-webcomponents/strings/sl-SI.json index ec4cb2576..411cccbe8 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/sl-SI.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/sl-SI.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Add", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/sv.json b/dashboard-ui/bower_components/emby-webcomponents/strings/sv.json index 387064bd8..7041f8946 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/sv.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/sv.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Specialavsnitt - {0}", "Share": "Dela", "Add": "L\u00e4gg till", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/tr.json b/dashboard-ui/bower_components/emby-webcomponents/strings/tr.json index fc614cb8c..df667970f 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/tr.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/tr.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Ekle", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/uk.json b/dashboard-ui/bower_components/emby-webcomponents/strings/uk.json index 15ff01f2d..d005d237d 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/uk.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/uk.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Add", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/vi.json b/dashboard-ui/bower_components/emby-webcomponents/strings/vi.json index d5428b4e9..8491a6390 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/vi.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/vi.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "Th\u00eam", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/zh-CN.json b/dashboard-ui/bower_components/emby-webcomponents/strings/zh-CN.json index 1b9897833..97e1d4ec6 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/zh-CN.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/zh-CN.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "\u6dfb\u52a0", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/zh-HK.json b/dashboard-ui/bower_components/emby-webcomponents/strings/zh-HK.json index 1a296176a..3f3957b58 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/zh-HK.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/zh-HK.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "Share", "Add": "\u65b0\u589e", diff --git a/dashboard-ui/bower_components/emby-webcomponents/strings/zh-TW.json b/dashboard-ui/bower_components/emby-webcomponents/strings/zh-TW.json index 4687a2d7b..9b2a7c4a6 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/strings/zh-TW.json +++ b/dashboard-ui/bower_components/emby-webcomponents/strings/zh-TW.json @@ -1,4 +1,20 @@ { + "SyncJobCreated": "Sync job created.", + "LabelSyncTo": "Sync to:", + "LabelSyncJobName": "Sync job name:", + "LabelSyncNoTargetsHelp": "It looks like you don't currently have any apps that support sync.", + "LabelQuality": "Quality:", + "LearnMore": "Learn more", + "DownloadScheduled": "Download scheduled", + "LabelBitrateMbps": "Bitrate (Mbps):", + "LabelProfile": "Profile:", + "SyncUnwatchedVideosOnly": "Sync unwatched videos only", + "AutomaticallySyncNewContent": "Automatically sync new content", + "PleaseSelectDeviceToSyncTo": "Please select a device to sync to.", + "LabelItemLimit": "Item limit:", + "SyncUnwatchedVideosOnlyHelp": "Only unwatched videos will be synced, and videos will be removed from the device as they are watched.", + "LabelItemLimitHelp": "Optional. Set a limit to the number of items that will be synced.", + "AutomaticallySyncNewContentHelp": "New content added to this folder will be automatically synced to the device.", "ValueSpecialEpisodeName": "Special - {0}", "Share": "\u5206\u4eab", "Add": "\u6dfb\u52a0", diff --git a/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js b/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js index cbba5cbfd..57f64cb58 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js +++ b/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js @@ -252,7 +252,10 @@ lnkLearnMore.addEventListener('click', onHelpLinkClick); } - focusManager.autoFocus(elem); + // This isn't ideal, but allow time for the change handlers above to run + setTimeout(function() { + focusManager.autoFocus(elem); + }, 100); } function showSyncMenu(options) { diff --git a/dashboard-ui/css/site.css b/dashboard-ui/css/site.css index 0a3b6756b..a3183130a 100644 --- a/dashboard-ui/css/site.css +++ b/dashboard-ui/css/site.css @@ -620,7 +620,7 @@ progress { } -.ui-body-a .visualCardBox .cardScalable, .ui-body-a .visualCardBox .cardFooter { +.ui-body-a .visualCardBox .cardScalable, .ui-body-a .visualCardBox-cardFooter { background-color: #fff; } diff --git a/dashboard-ui/scripts/loginpage.js b/dashboard-ui/scripts/loginpage.js index 8a5cc47c6..22a6bd295 100644 --- a/dashboard-ui/scripts/loginpage.js +++ b/dashboard-ui/scripts/loginpage.js @@ -162,7 +162,7 @@ html += ''; html += '
'; - html += '
'; + html += '
'; html += '
' + user.Name + '
'; html += '
'; diff --git a/dashboard-ui/scripts/medialibrarypage.js b/dashboard-ui/scripts/medialibrarypage.js index c96392fc0..dd02c472f 100644 --- a/dashboard-ui/scripts/medialibrarypage.js +++ b/dashboard-ui/scripts/medialibrarypage.js @@ -342,7 +342,7 @@ // cardScalable html += "
"; - html += '
'; + html += '
'; if (virtualFolder.showMenu !== false) { var moreIcon = appHost.moreIcon == 'dots-horiz' ? '' : ''; diff --git a/dashboard-ui/scripts/plugincatalogpage.js b/dashboard-ui/scripts/plugincatalogpage.js index 71a9c9424..35aa23738 100644 --- a/dashboard-ui/scripts/plugincatalogpage.js +++ b/dashboard-ui/scripts/plugincatalogpage.js @@ -217,7 +217,7 @@ // cardScalable html += "
"; - html += '
'; + html += '
'; html += "
"; html += plugin.name; diff --git a/dashboard-ui/scripts/pluginspage.js b/dashboard-ui/scripts/pluginspage.js index 683f9d2ab..0827a317f 100644 --- a/dashboard-ui/scripts/pluginspage.js +++ b/dashboard-ui/scripts/pluginspage.js @@ -81,7 +81,7 @@ // cardScalable html += "
"; - html += '
'; + html += '
'; html += '
'; html += ''; diff --git a/dashboard-ui/scripts/userprofilespage.js b/dashboard-ui/scripts/userprofilespage.js index 84a1d38ee..ab25fb865 100644 --- a/dashboard-ui/scripts/userprofilespage.js +++ b/dashboard-ui/scripts/userprofilespage.js @@ -135,7 +135,7 @@ // cardScalable html += "
"; - html += '
'; + html += '
'; html += '
'; html += ''; @@ -254,7 +254,7 @@ // cardScalable html += "
"; - html += '
'; + html += '
'; html += '
'; html += ''; From 521b20f86ab542d7fe408949464f40794c1b56d1 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 23 Aug 2016 13:33:21 -0400 Subject: [PATCH 7/7] update sync --- .../emby-webcomponents/itemcontextmenu.js | 10 +-- .../emby-webcomponents/sync/sync.js | 88 ++++++++++++++++++- 2 files changed, 87 insertions(+), 11 deletions(-) diff --git a/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js b/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js index 96ecf3b0a..9494f6e98 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js +++ b/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js @@ -425,10 +425,7 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', { require(['syncDialog'], function (syncDialog) { syncDialog.showMenu({ - items: [ - { - Id: itemId - }], + items: [item], serverId: serverId }); }); @@ -439,10 +436,7 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', { require(['syncDialog'], function (syncDialog) { syncDialog.showMenu({ - items: [ - { - Id: itemId - }], + items: [item], isLocalSync: true, serverId: serverId }); diff --git a/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js b/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js index 57f64cb58..cbcbc2ab3 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js +++ b/dashboard-ui/bower_components/emby-webcomponents/sync/sync.js @@ -1,4 +1,4 @@ -define(['apphost', 'globalize', 'connectionManager', 'layoutManager', 'shell', 'focusManager', 'scrollHelper', 'paper-icon-button-light', 'formDialogStyle'], function (appHost, globalize, connectionManager, layoutManager, shell, focusManager, scrollHelper) { +define(['apphost', 'globalize', 'connectionManager', 'layoutManager', 'shell', 'focusManager', 'scrollHelper', 'appSettings', 'paper-icon-button-light', 'formDialogStyle'], function (appHost, globalize, connectionManager, layoutManager, shell, focusManager, scrollHelper, appSettings) { var currentDialogOptions; @@ -66,6 +66,56 @@ return true; } + function submitQuickSyncJob(apiClient, userId, targetId, syncOptions) { + + if (!userId) { + throw new Error('userId cannot be null'); + } + + if (!syncOptions) { + throw new Error('syncOptions cannot be null'); + } + + if (!targetId) { + throw new Error('targetId cannot be null'); + } + + var options = { + + userId: userId, + TargetId: targetId, + + ParentId: syncOptions.ParentId, + Category: syncOptions.Category, + Quality: syncOptions.Quality, + Bitrate: syncOptions.Bitrate + }; + + if (syncOptions.items && syncOptions.items.length) { + options.ItemIds = (syncOptions.items || []).map(function (i) { + return i.Id || i; + }).join(','); + } + + return apiClient.ajax({ + + type: "POST", + url: apiClient.getUrl("Sync/Jobs"), + data: JSON.stringify(options), + contentType: "application/json", + dataType: 'json' + + }).then(function () { + + require(['toast'], function (toast) { + + var msg = targetId == apiClient.deviceId() ? globalize.translate('sharedcomponents#DownloadScheduled') : globalize.translate('sharedcomponents#SyncJobCreated'); + + toast(msg); + }); + }); + } + function setJobValues(job, form) { var txtBitrate = form.querySelector('#txtBitrate'); @@ -253,7 +303,7 @@ } // This isn't ideal, but allow time for the change handlers above to run - setTimeout(function() { + setTimeout(function () { focusManager.autoFocus(elem); }, 100); } @@ -272,12 +322,44 @@ }); } + function enableAutoSync(options) { + + if (!options.isLocalSync) { + return false; + } + + var firstItem = (options.items || [])[0] || {}; + + if (firstItem.Type == 'Audio') { + return true; + } + if (firstItem.Type == 'MusicAlbum') { + return true; + } + if (firstItem.Type == 'MusicArtist') { + return true; + } + if (firstItem.Type == 'MusicGenre') { + return true; + } + + return false; + } + function showSyncMenuInternal(dialogHelper, options) { var apiClient = connectionManager.getApiClient(options.serverId); - var userId = apiClient.getCurrentUserId(); + if (enableAutoSync(options)) { + + return submitQuickSyncJob(apiClient, userId, apiClient.deviceId(), { + items: options.items, + Quality: 'custom', + Bitrate: appSettings.maxStaticMusicBitrate() + }); + } + var dialogOptionsQuery = { UserId: userId, ItemIds: (options.items || []).map(function (i) {