update recording dialogs

This commit is contained in:
Luke Pulverenti 2016-10-15 18:12:16 -04:00
parent bdfd870584
commit 141344eead
60 changed files with 546 additions and 211 deletions

View File

@ -16,12 +16,12 @@
}, },
"devDependencies": {}, "devDependencies": {},
"ignore": [], "ignore": [],
"version": "1.1.89", "version": "1.1.90",
"_release": "1.1.89", "_release": "1.1.90",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "1.1.89", "tag": "1.1.90",
"commit": "eb7fd9c48824ee465f324e855025c8f66a37b628" "commit": "eb52e55b0f856ac89abcea9a71f475595d718627"
}, },
"_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git", "_source": "https://github.com/MediaBrowser/Emby.ApiClient.Javascript.git",
"_target": "^1.1.51", "_target": "^1.1.51",

View File

@ -1264,7 +1264,7 @@
url: "https://connect.emby.media/service/user/authenticate", url: "https://connect.emby.media/service/user/authenticate",
data: { data: {
nameOrEmail: username, nameOrEmail: username,
password: password rawpw: password
}, },
dataType: "json", dataType: "json",
contentType: 'application/x-www-form-urlencoded; charset=UTF-8', contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
@ -1313,7 +1313,7 @@
var data = { var data = {
email: email, email: email,
userName: username, userName: username,
password: password rawpw: password
}; };
if (options.grecaptcha) { if (options.grecaptcha) {

View File

@ -14,12 +14,12 @@
}, },
"devDependencies": {}, "devDependencies": {},
"ignore": [], "ignore": [],
"version": "1.4.309", "version": "1.4.311",
"_release": "1.4.309", "_release": "1.4.311",
"_resolution": { "_resolution": {
"type": "version", "type": "version",
"tag": "1.4.309", "tag": "1.4.311",
"commit": "165fff8c1d63560b3e18190edd7caed2da5d0308" "commit": "79239f58e5686817ca11b88d3c105d5b887f6292"
}, },
"_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_source": "https://github.com/MediaBrowser/emby-webcomponents.git",
"_target": "^1.2.1", "_target": "^1.2.1",

View File

@ -264,12 +264,14 @@ define(['browser'], function (browser) {
// Otherwise with HLS and mp3 audio we're seeing some browsers // Otherwise with HLS and mp3 audio we're seeing some browsers
// safari is lying // safari is lying
if ((videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, '') && !browser.safari) || browser.edgeUwp || browser.tizen) { if ((videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, '') && !browser.safari) || browser.edgeUwp || browser.tizen) {
videoAudioCodecs.push('ac3'); if ((options.disableVideoAudioCodecs || []).indexOf('ac3') == -1) {
videoAudioCodecs.push('ac3');
// This works in edge desktop, but not mobile // This works in edge desktop, but not mobile
// TODO: Retest this on mobile // TODO: Retest this on mobile
if (!browser.edge || !browser.touch) { if (!browser.edge || !browser.touch) {
hlsVideoAudioCodecs.push('ac3'); hlsVideoAudioCodecs.push('ac3');
}
} }
} }

View File

@ -24,13 +24,131 @@
}); });
} }
function showPeriodicMessage(feature, settingsKey) {
return new Promise(function (resolve, reject) {
appSettings.set(settingsKey, new Date().getTime());
require(['listViewStyle', 'emby-button', 'formDialogStyle'], function () {
var dlg = dialogHelper.createDialog({
size: 'fullscreen-border',
removeOnClose: true,
scrollY: false
});
dlg.classList.add('formDialog');
var html = '';
html += '<div class="formDialogHeader">';
html += '<button is="paper-icon-button-light" class="btnCancelSupporterInfo autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>';
html += '<h3 class="formDialogHeaderTitle">';
html += '</h3>';
html += '</div>';
html += '<div class="formDialogContent smoothScrollY">';
html += '<div class="dialogContentInner dialog-content-centered">';
html += '<h1>' + globalize.translate('sharedcomponents#HeaderDiscoverEmbyPremiere') + '</h1>';
html += '<p>' + globalize.translate('sharedcomponents#MessageDidYouKnowCinemaMode') + '</p>';
html += '<p>' + globalize.translate('sharedcomponents#MessageDidYouKnowCinemaMode2') + '</p>';
html += '<h1 style="margin-top:1.5em;">' + globalize.translate('sharedcomponents#HeaderBenefitsEmbyPremiere') + '</h1>';
html += '<div class="paperList">';
html += getSubscriptionBenefits().map(getSubscriptionBenefitHtml).join('');
html += '</div>';
html += '<br/>';
html += '<div class="formDialogFooter">';
html += '<button is="emby-button" type="button" class="raised button-submit block btnGetPremiere formDialogFooterItem" autoFocus><span>' + globalize.translate('sharedcomponents#HeaderBecomeProjectSupporter') + '</span></button>';
html += '<button is="emby-button" type="button" class="raised button-cancel block btnCancelSupporterInfo formDialogFooterItem"><span>' + globalize.translate('sharedcomponents#HeaderPlayMyMedia') + '</span></button>';
html += '</div>';
html += '</div>';
html += '</div>';
dlg.innerHTML = html;
if (layoutManager.tv) {
centerFocus(dlg.querySelector('.formDialogContent'), false, true);
}
// Has to be assigned a z-index after the call to .open()
dlg.addEventListener('close', function (e) {
if (layoutManager.tv) {
centerFocus(dlg.querySelector('.formDialogContent'), false, false);
}
appSettings.set(settingsKey, new Date().getTime());
resolve();
});
dlg.querySelector('.btnGetPremiere').addEventListener('click', showPremiereInfo);
dialogHelper.open(dlg);
var onCancelClick = function () {
dialogHelper.close(dlg);
};
var i, length;
var elems = dlg.querySelectorAll('.btnCancelSupporterInfo');
for (i = 0, length = elems.length; i < length; i++) {
elems[i].addEventListener('click', onCancelClick);
}
});
});
}
function showPeriodicMessageIfNeeded(feature) {
var intervalMs = iapManager.getPeriodicMessageIntervalMs(feature);
if (intervalMs <= 0) {
return Promise.resolve();
}
var settingsKey = 'periodicmessage-' + feature;
var lastMessage = parseInt(appSettings.get(settingsKey) || '0');
if (!lastMessage) {
// Don't show on the very first playback attempt
appSettings.set(settingsKey, new Date().getTime());
return Promise.resolve();
}
if ((new Date().getTime() - lastMessage) > intervalMs) {
connectionManager.currentApiClient().getPluginSecurityInfo().then(function (regInfo) {
if (regInfo.IsMBSupporter) {
appSettings.set(settingsKey, new Date().getTime());
return Promise.resolve();
}
return showPeriodicMessage(feature, settingsKey);
}, function () {
return showPeriodicMessage(feature, settingsKey);
});
}
return Promise.resolve();
}
function validateFeature(feature, options) { function validateFeature(feature, options) {
options = options || {}; options = options || {};
console.log('validateFeature: ' + feature); console.log('validateFeature: ' + feature);
return iapManager.isUnlockedByDefault(feature).catch(function () { return iapManager.isUnlockedByDefault(feature).then(function () {
return showPeriodicMessageIfNeeded(feature);
}, function () {
var unlockableFeatureCacheKey = 'featurepurchased-' + feature; var unlockableFeatureCacheKey = 'featurepurchased-' + feature;
if (appSettings.get(unlockableFeatureCacheKey) == '1') { if (appSettings.get(unlockableFeatureCacheKey) == '1') {
@ -157,8 +275,9 @@
html += '</p>'; html += '</p>';
var hasProduct = false; var hasProduct = false;
var i, length;
for (var i = 0, length = subscriptionOptions.length; i < length; i++) { for (i = 0, length = subscriptionOptions.length; i < length; i++) {
hasProduct = true; hasProduct = true;
html += '<p>'; html += '<p>';
@ -205,7 +324,6 @@
dlg.innerHTML = html; dlg.innerHTML = html;
document.body.appendChild(dlg); document.body.appendChild(dlg);
var i, length;
var btnPurchases = dlg.querySelectorAll('.btnPurchase'); var btnPurchases = dlg.querySelectorAll('.btnPurchase');
for (i = 0, length = btnPurchases.length; i < length; i++) { for (i = 0, length = btnPurchases.length; i < length; i++) {
btnPurchases[i].addEventListener('click', onPurchaseButtonClick); btnPurchases[i].addEventListener('click', onPurchaseButtonClick);

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -1,12 +1,12 @@
{ {
"MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithPurchaseOrSupporter": "Schalte diese Funktion mit einer kleinen einmaligen Geb\u00fchr oder einem aktiven Emby Premium Abo frei.",
"MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Schalte diese Funktion mit einem aktiven Emby Premium Abo frei.",
"MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", "MessageToValidateSupporter": "Wenn du eine aktive Emby Premiere Mitgliedschaft hast, stelle bitte sicher, dass du diese \u00fcber das Emby Server Dashboard eingerichtet hast (Hauptmenu -> Emby Premiere).",
"ValueSpecialEpisodeName": "Special - {0}", "ValueSpecialEpisodeName": "Special - {0}",
"Share": "Teilen", "Share": "Teilen",
"Add": "Hinzuf\u00fcgen", "Add": "Hinzuf\u00fcgen",
"ServerUpdateNeeded": "Dieser Emby Server muss aktualisiert werden. Um die neueste Version herunterzuladen, besuchen sie bitte {0}", "ServerUpdateNeeded": "Dieser Emby Server muss aktualisiert werden. Um die neueste Version herunterzuladen, besuche bitte {0}",
"LiveTvGuideRequiresUnlock": "Ihr TV-Guide ist begrenzt auf {0} Kan\u00e4le. Klicken Sie auf die Freischalten Schaltfl\u00e4che um weitere Informationen zu erhalten.", "LiveTvGuideRequiresUnlock": "Dein TV-Guide ist begrenzt auf {0} Kan\u00e4le. Klicke auf die Freischalten Schaltfl\u00e4che um weitere Informationen zu erhalten.",
"AttributeNew": "Neu", "AttributeNew": "Neu",
"Premiere": "Premiere", "Premiere": "Premiere",
"Live": "Live", "Live": "Live",
@ -42,19 +42,19 @@
"Saturday": "Samstag", "Saturday": "Samstag",
"Days": "Tage", "Days": "Tage",
"RecordSeries": "Serie aufnehmen", "RecordSeries": "Serie aufnehmen",
"HeaderCinemaMode": "Cinema Mode", "HeaderCinemaMode": "Kinomodus",
"HeaderCloudSync": "Cloud Sync", "HeaderCloudSync": "Cloud Synchronisation",
"HeaderOfflineDownloads": "Offline Media", "HeaderOfflineDownloads": "Offline Medien",
"HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.", "HeaderOfflineDownloadsDescription": "Lade Medien auf deine Ger\u00e4te herunter um sie einfach offline zu nutzen.",
"CloudSyncFeatureDescription": "Sync your media to the cloud for easy backup, archiving, and converting.", "CloudSyncFeatureDescription": "Synchronisiere deine Medien in die Cloud f\u00fcr ein Backup, eine Archivierung und Konvertierung.",
"CoverArtFeatureDescription": "Cover Art creates fun covers and other treatments to help you personalize your media images.", "CoverArtFeatureDescription": "Cover Art erstellt z.B. lustige Cover und erlaubt dir eine weitergehende pers\u00f6nliche Gestaltung deiner Medienbilder.",
"CoverArt": "Cover Art", "CoverArt": "Cover Art",
"CinemaModeFeatureDescription": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the feature.", "CinemaModeFeatureDescription": "Der Cinema Mode bringt das richtige Kinogef\u00fchl mit Trailern und eigenen Intros vor dem Hauptfilm.",
"HeaderFreeApps": "Free Emby Apps", "HeaderFreeApps": "Kostenlose Emby Apps",
"FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.", "FreeAppsFeatureDescription": "Genie\u00dfe Zugriff auf kostenlose Emby Apps f\u00fcr deine Ger\u00e4te.",
"HeaderBecomeProjectSupporter": "Holen Sie Emby Premium", "HeaderBecomeProjectSupporter": "Hol dir Emby Premiere",
"MessageActiveSubscriptionRequiredSeriesRecordings": "Ein aktives Emby Premium Abo wird benn\u00f6tigt um automatische Serienaufnahmen zu erstellen.", "MessageActiveSubscriptionRequiredSeriesRecordings": "Ein aktives Emby Premium Abo wird benn\u00f6tigt um automatische Serienaufnahmen zu erstellen.",
"LabelEmailAddress": "E-mail address:", "LabelEmailAddress": "E-Mail Adresse:",
"PromoConvertRecordingsToStreamingFormat": "Konvertiere Aufnahmen automatisch in ein Streaming-freundliches Format mit Emby Premiere. Aufnahmen werden, basierend auf den Emby Server-Einstellungen, dynamisch zu MP4 oder MKV konvertiert.", "PromoConvertRecordingsToStreamingFormat": "Konvertiere Aufnahmen automatisch in ein Streaming-freundliches Format mit Emby Premiere. Aufnahmen werden, basierend auf den Emby Server-Einstellungen, dynamisch zu MP4 oder MKV konvertiert.",
"FeatureRequiresEmbyPremiere": "Dieses Feature ben\u00f6tigt eine aktive Emby Premiere Mitgliedschaft.", "FeatureRequiresEmbyPremiere": "Dieses Feature ben\u00f6tigt eine aktive Emby Premiere Mitgliedschaft.",
"HeaderConvertYourRecordings": "Konvertiere deine Aufnahmen", "HeaderConvertYourRecordings": "Konvertiere deine Aufnahmen",
@ -65,7 +65,7 @@
"Advanced": "Erweitert", "Advanced": "Erweitert",
"Delete": "L\u00f6schen", "Delete": "L\u00f6schen",
"HeaderDeleteItem": "L\u00f6sche Element", "HeaderDeleteItem": "L\u00f6sche Element",
"ConfirmDeleteItem": "L\u00f6schen dieses Eintrages bedeutet das L\u00f6schen der Datei und das Entfernen aus der Medien-Bibliothek. M\u00f6chten Sie wirklich fortfahren?", "ConfirmDeleteItem": "L\u00f6schen dieses Eintrages bedeutet das L\u00f6schen der Datei und das Entfernen aus der Medien-Bibliothek. M\u00f6chtest du wirklich fortfahren?",
"Refresh": "Aktualisieren", "Refresh": "Aktualisieren",
"RefreshQueued": "Warteschlange aktualisieren.", "RefreshQueued": "Warteschlange aktualisieren.",
"AddToCollection": "Zur Sammlung hinzuf\u00fcgen", "AddToCollection": "Zur Sammlung hinzuf\u00fcgen",
@ -100,11 +100,11 @@
"SearchForMissingMetadata": "Suche nach fehlenden Metadaten", "SearchForMissingMetadata": "Suche nach fehlenden Metadaten",
"LabelRefreshMode": "Aktualisierungsmodus:", "LabelRefreshMode": "Aktualisierungsmodus:",
"NoItemsFound": "Keine Eintr\u00e4ge gefunden.", "NoItemsFound": "Keine Eintr\u00e4ge gefunden.",
"HeaderSaySomethingLike": "Sagen Sie etwas wie...", "HeaderSaySomethingLike": "Sage etwas wie...",
"ButtonTryAgain": "Erneut versuchen", "ButtonTryAgain": "Erneut versuchen",
"HeaderYouSaid": "Sie sagten....", "HeaderYouSaid": "Du sagtest...",
"MessageWeDidntRecognizeCommand": "Entschuldigung, dieses Kommando konnten wir nicht erkennen.", "MessageWeDidntRecognizeCommand": "Entschuldigung, dieses Kommando konnten wir nicht erkennen.",
"MessageIfYouBlockedVoice": "Wenn Sie die Sprachsteuerung f\u00fcr die App nicht erlaubt haben so m\u00fcssen Sie dies zuvor \u00e4ndern bevor Sie es erneut probieren.", "MessageIfYouBlockedVoice": "Wenn du die Sprachsteuerung f\u00fcr die App nicht erlaubt hast, musst du dies vor einem erneuten Versuch \u00e4ndern.",
"ValueDiscNumber": "Disc {0}", "ValueDiscNumber": "Disc {0}",
"Unrated": "Nicht bewertet", "Unrated": "Nicht bewertet",
"Favorite": "Favorit", "Favorite": "Favorit",
@ -134,7 +134,7 @@
"GroupVersions": "Gruppiere Versionen", "GroupVersions": "Gruppiere Versionen",
"PleaseSelectTwoItems": "Bitte w\u00e4hle mindestens zwei Optionen aus.", "PleaseSelectTwoItems": "Bitte w\u00e4hle mindestens zwei Optionen aus.",
"TryMultiSelect": "Versuche Mehrfachauswahl", "TryMultiSelect": "Versuche Mehrfachauswahl",
"TryMultiSelectMessage": "F\u00fcr eine Mehrfachauswahl klicken und halten Sie ein Poster. W\u00e4hlen Sie die Eintr\u00e4ge die Sie bearbeiten m\u00f6chten. Versuchen SIe es!", "TryMultiSelectMessage": "F\u00fcr eine Mehrfachauswahl klicke und halte ein Poster. W\u00e4hle die Eintr\u00e4ge die du bearbeiten m\u00f6chten. Versuch es!",
"HeaderConfirmRecordingCancellation": "Best\u00e4tige Aufzeichnungsabbruch", "HeaderConfirmRecordingCancellation": "Best\u00e4tige Aufzeichnungsabbruch",
"MessageConfirmRecordingCancellation": "Bis du dir sicher, diese Aufzeichnung abzubrechen?", "MessageConfirmRecordingCancellation": "Bis du dir sicher, diese Aufzeichnung abzubrechen?",
"Error": "Fehler", "Error": "Fehler",
@ -145,7 +145,7 @@
"LabelOriginalTitle": "Original Titel:", "LabelOriginalTitle": "Original Titel:",
"LabelSortTitle": "Sortierungs Titel:", "LabelSortTitle": "Sortierungs Titel:",
"LabelDateAdded": "Hinzugef\u00fcgt am:", "LabelDateAdded": "Hinzugef\u00fcgt am:",
"ConfigureDateAdded": "Bestimmen Sie in den Bibliotheks-Einstellungen des Emby Server Dashboards, wie das Feld \"Hinzugef\u00fcgt am\" interpretiert werden soll.", "ConfigureDateAdded": "Bestimme in den Bibliotheks-Einstellungen des Emby Server Dashboards, wie das Feld \"Hinzugef\u00fcgt am\" interpretiert werden soll.",
"LabelStatus": "Status:", "LabelStatus": "Status:",
"LabelArtists": "Interpreten:", "LabelArtists": "Interpreten:",
"LabelArtistsHelp": "Trenne mehrere Eintr\u00e4ge durch ;", "LabelArtistsHelp": "Trenne mehrere Eintr\u00e4ge durch ;",
@ -213,7 +213,7 @@
"Continuing": "Fortdauernd", "Continuing": "Fortdauernd",
"Ended": "Beendent", "Ended": "Beendent",
"HeaderEnabledFields": "Aktiviere Felder", "HeaderEnabledFields": "Aktiviere Felder",
"HeaderEnabledFieldsHelp": "W\u00e4hlen Sie Felder ab um das \u00c4ndern von Daten zu verhindern.", "HeaderEnabledFieldsHelp": "W\u00e4hle Felder ab um das \u00c4ndern von Daten zu verhindern.",
"Backdrops": "Hintergr\u00fcnde", "Backdrops": "Hintergr\u00fcnde",
"Images": "Bilder", "Images": "Bilder",
"Keywords": "Stichworte", "Keywords": "Stichworte",
@ -236,7 +236,7 @@
"PackageInstallCompleted": "{0} Installation abgeschlossen", "PackageInstallCompleted": "{0} Installation abgeschlossen",
"PackageInstallFailed": "{0} Installation fehlgeschlagen", "PackageInstallFailed": "{0} Installation fehlgeschlagen",
"PackageInstallCancelled": "{0} Installation abgebrochen", "PackageInstallCancelled": "{0} Installation abgebrochen",
"SeriesYearToPresent": "{0}-heute", "SeriesYearToPresent": "{0}-Heute",
"ValueOneSong": "1 Lied", "ValueOneSong": "1 Lied",
"ValueSongCount": "{0} Lieder", "ValueSongCount": "{0} Lieder",
"ValueOneMovie": "1 Film", "ValueOneMovie": "1 Film",
@ -261,13 +261,13 @@
"ServerNameIsRestarting": "Emby Server - {0} startet neu.", "ServerNameIsRestarting": "Emby Server - {0} startet neu.",
"ServerNameIsShuttingDown": "Emby Server - {0} f\u00e4hrt herunter.", "ServerNameIsShuttingDown": "Emby Server - {0} f\u00e4hrt herunter.",
"HeaderDeleteItems": "L\u00f6sche Objekte", "HeaderDeleteItems": "L\u00f6sche Objekte",
"ConfirmDeleteItems": "Das L\u00f6schen dieser Objekte l\u00f6scht die Dateien vom Laufwerk und Ihrer Medienbibliothek. Sind Sie sich wirklich sicher?", "ConfirmDeleteItems": "Das L\u00f6schen dieser Objekte l\u00f6scht die Dateien vom Laufwerk und in deiner Medienbibliothek. Bist du wirklich sicher?",
"PleaseRestartServerName": "Bitte starte Emby Server - {0} neu.", "PleaseRestartServerName": "Bitte starte Emby Server - {0} neu.",
"SyncJobCreated": "Synchronisations-Aufgabe erstellt.", "SyncJobCreated": "Synchronisations-Aufgabe erstellt.",
"LabelSyncTo": "Synchronisiere mit:", "LabelSyncTo": "Synchronisiere mit:",
"LabelSyncJobName": "Synchronisations-Aufgabe:", "LabelSyncJobName": "Synchronisations-Aufgabe:",
"LabelQuality": "Qualit\u00e4t:", "LabelQuality": "Qualit\u00e4t:",
"LabelSyncNoTargetsHelp": "Es sieht so aus als w\u00fcrden Sie aktuell keine Apps verwenden, die Synchronisation unterst\u00fctzen.", "LabelSyncNoTargetsHelp": "Es sieht so aus als w\u00fcrdest du aktuell keine Apps verwenden, die Synchronisation unterst\u00fctzen.",
"DownloadScheduled": "Download geplant", "DownloadScheduled": "Download geplant",
"LearnMore": "Erfahre mehr", "LearnMore": "Erfahre mehr",
"LabelProfile": "Profil:", "LabelProfile": "Profil:",
@ -277,8 +277,8 @@
"AutomaticallySyncNewContent": "Synchronisiere neue Inhalte automatisch", "AutomaticallySyncNewContent": "Synchronisiere neue Inhalte automatisch",
"AutomaticallySyncNewContentHelp": "Neu zu diesem Ordner hinzugef\u00fcgte Inhalte werden automatisch mit dem Ger\u00e4t synchronisiert.", "AutomaticallySyncNewContentHelp": "Neu zu diesem Ordner hinzugef\u00fcgte Inhalte werden automatisch mit dem Ger\u00e4t synchronisiert.",
"LabelItemLimit": "Maximale Anzahl:", "LabelItemLimit": "Maximale Anzahl:",
"LabelItemLimitHelp": "Optional. Legen Sie die maximale Anzahl der zu synchronisierenden Eintr\u00e4ge fest.", "LabelItemLimitHelp": "Optional. Lege die maximale Anzahl der zu synchronisierenden Eintr\u00e4ge fest.",
"PleaseSelectDeviceToSyncTo": "Bitte w\u00e4hlen Sie ein zu synchronisierendes Ger\u00e4t.", "PleaseSelectDeviceToSyncTo": "Bitte w\u00e4hle ein zu synchronisierendes Ger\u00e4t.",
"Screenshots": "Screenshots", "Screenshots": "Screenshots",
"MoveRight": "Nach rechts bewegen", "MoveRight": "Nach rechts bewegen",
"MoveLeft": "Nach links bewegen", "MoveLeft": "Nach links bewegen",
@ -334,17 +334,21 @@
"SortChannelsBy": "Sortiere Kan\u00e4le nach:", "SortChannelsBy": "Sortiere Kan\u00e4le nach:",
"RecentlyWatched": "K\u00fcrzlich gesehen", "RecentlyWatched": "K\u00fcrzlich gesehen",
"ChannelNumber": "Kanalnummer", "ChannelNumber": "Kanalnummer",
"HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", "HeaderBenefitsEmbyPremiere": "Vorteile von Emby Premiere",
"ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", "ThankYouForTryingEnjoyOneMinute": "Genie\u00dfe eine Minute Wiedergabe. Danke, dass du Emby ausprobierst.",
"HeaderTryPlayback": "Try Playback", "HeaderTryPlayback": "Wiedergabe ausprobieren",
"HowDidYouPay": "How did you pay?", "HowDidYouPay": "Wie hast Du bezahlt?",
"IHaveEmbyPremiere": "I have Emby Premiere", "IHaveEmbyPremiere": "Ich besitze Emby Premiere",
"IPurchasedThisApp": "I purchased this app", "IPurchasedThisApp": "Ich habe diese App gekauft",
"ButtonRestorePreviousPurchase": "Restore Purchase", "ButtonRestorePreviousPurchase": "Kauf wiederherstellen",
"ButtonUnlockWithPurchase": "Unlock with Purchase", "ButtonUnlockWithPurchase": "Freischalten durch Kauf",
"ButtonUnlockPrice": "Unlock {0}", "ButtonUnlockPrice": "{0} freischalten",
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Schon bezahlt?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Eine Minute wiedergeben",
"PlaceFavoriteChannelsAtBeginning": "Platziere favorisierte Kan\u00e4le am Anfang", "PlaceFavoriteChannelsAtBeginning": "Platziere favorisierte Kan\u00e4le am Anfang",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Feature freischalten",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favourite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favourite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "\u00bfYa esta pagado?", "ButtonAlreadyPaid": "\u00bfYa esta pagado?",
"ButtonPlayOneMinute": "Reproducir un minuto", "ButtonPlayOneMinute": "Reproducir un minuto",
"PlaceFavoriteChannelsAtBeginning": "Colocar canales favoritos al inicio", "PlaceFavoriteChannelsAtBeginning": "Colocar canales favoritos al inicio",
"HeaderUnlockFeature": "Desbloquear Caracter\u00edstica" "HeaderUnlockFeature": "Desbloquear Caracter\u00edstica",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Postavi omiljene kanale na po\u010detak", "PlaceFavoriteChannelsAtBeginning": "Postavi omiljene kanale na po\u010detak",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "\u04d8\u043b\u0434\u0435\u049b\u0430\u0448\u0430\u043d \u0442\u04e9\u043b\u0435\u043d\u0434\u0456 \u043c\u0435?", "ButtonAlreadyPaid": "\u04d8\u043b\u0434\u0435\u049b\u0430\u0448\u0430\u043d \u0442\u04e9\u043b\u0435\u043d\u0434\u0456 \u043c\u0435?",
"ButtonPlayOneMinute": "\u0411\u0456\u0440 \u043c\u0438\u043d\u04e9\u0442 \u043e\u0439\u043d\u0430\u0442\u0443", "ButtonPlayOneMinute": "\u0411\u0456\u0440 \u043c\u0438\u043d\u04e9\u0442 \u043e\u0439\u043d\u0430\u0442\u0443",
"PlaceFavoriteChannelsAtBeginning": "\u0422\u0430\u04a3\u0434\u0430\u0443\u043b\u044b \u0430\u0440\u043d\u0430\u043b\u0430\u0440\u0434\u044b \u0435\u04a3 \u0431\u0430\u0441\u044b\u043d\u0430\u043d \u043e\u0440\u043d\u0430\u043b\u0430\u0441\u0442\u044b\u0440\u0443", "PlaceFavoriteChannelsAtBeginning": "\u0422\u0430\u04a3\u0434\u0430\u0443\u043b\u044b \u0430\u0440\u043d\u0430\u043b\u0430\u0440\u0434\u044b \u0435\u04a3 \u0431\u0430\u0441\u044b\u043d\u0430\u043d \u043e\u0440\u043d\u0430\u043b\u0430\u0441\u0442\u044b\u0440\u0443",
"HeaderUnlockFeature": "\u0410\u0440\u0442\u044b\u049b\u0448\u044b\u043b\u044b\u049b \u049b\u04b1\u0440\u0441\u0430\u0443\u044b\u043d \u0431\u043e\u0441\u0430\u0442\u0443" "HeaderUnlockFeature": "\u0410\u0440\u0442\u044b\u049b\u0448\u044b\u043b\u044b\u049b \u049b\u04b1\u0440\u0441\u0430\u0443\u044b\u043d \u0431\u043e\u0441\u0430\u0442\u0443",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -1,7 +1,7 @@
{ {
"MessageUnlockAppWithPurchaseOrSupporter": "Unlock this feature with a small one-time purchase, or with an active Emby Premiere subscription.", "MessageUnlockAppWithPurchaseOrSupporter": "Desbloqueie esta funcionalidade com uma pequena compra \u00fanica, ou com uma assinatura ativa do Emby Premiere.",
"MessageUnlockAppWithSupporter": "Unlock this feature with an active Emby Premiere subscription.", "MessageUnlockAppWithSupporter": "Desbloqueie esta funcionalidade com uma assinatura ativa do Emby Premiere.",
"MessageToValidateSupporter": "If you have an active Emby Premiere subscription, ensure you've setup Emby Premiere in your Emby Server Dashboard, which you can access by clicking Emby Premiere within the main menu.", "MessageToValidateSupporter": "Se tiver uma assinatura ativa do Emby Premiere, assegure-se que configurou o Emby Premiere no Painel do Servidor Emby, que pode ser acessado clicando Emby Premiere no menu principal.",
"ValueSpecialEpisodeName": "Especial - {0}", "ValueSpecialEpisodeName": "Especial - {0}",
"Share": "Compartilhar", "Share": "Compartilhar",
"Add": "Adicionar", "Add": "Adicionar",
@ -42,19 +42,19 @@
"Saturday": "S\u00e1bado", "Saturday": "S\u00e1bado",
"Days": "Dias", "Days": "Dias",
"RecordSeries": "Gravar s\u00e9rie", "RecordSeries": "Gravar s\u00e9rie",
"HeaderCinemaMode": "Cinema Mode", "HeaderCinemaMode": "Modo Cinema",
"HeaderCloudSync": "Cloud Sync", "HeaderCloudSync": "Sincroniza\u00e7\u00e3o na Nuvem",
"HeaderOfflineDownloads": "Offline Media", "HeaderOfflineDownloads": "M\u00eddia Offline",
"HeaderOfflineDownloadsDescription": "Download media to your devices for easy offline use.", "HeaderOfflineDownloadsDescription": "Download sua m\u00eddia para seus dispositivos para uso offline f\u00e1cil.",
"CloudSyncFeatureDescription": "Sync your media to the cloud for easy backup, archiving, and converting.", "CloudSyncFeatureDescription": "Sincronize sua m\u00eddia para a nuvem para backup, arquivamento e convers\u00e3o f\u00e1ceis.",
"CoverArtFeatureDescription": "Cover Art creates fun covers and other treatments to help you personalize your media images.", "CoverArtFeatureDescription": "Arta da Capa cria capas divertidas e d\u00e1 outros tratamentos para ajudar na personaliza\u00e7\u00e3o das imagens da sua m\u00eddia.",
"CoverArt": "Cover Art", "CoverArt": "Arta da Capa",
"CinemaModeFeatureDescription": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the feature.", "CinemaModeFeatureDescription": "Modo Cinema oferece a voc\u00ea uma verdadeira experi\u00eancia de cinema com trailers e intros customizados antes da funcionalidade.",
"HeaderFreeApps": "Free Emby Apps", "HeaderFreeApps": "Apps Emby gr\u00e1tis",
"FreeAppsFeatureDescription": "Enjoy free access to Emby apps for your devices.", "FreeAppsFeatureDescription": "Aproveite acesso gr\u00e1tis a apps Emby para seus dispositivos.",
"HeaderBecomeProjectSupporter": "Obter Emby Premiere", "HeaderBecomeProjectSupporter": "Obter Emby Premiere",
"MessageActiveSubscriptionRequiredSeriesRecordings": "Uma subscri\u00e7\u00e3o ativa do Emby Premiere \u00e9 requerida para criar a grava\u00e7\u00e3o automatizada de s\u00e9ries.", "MessageActiveSubscriptionRequiredSeriesRecordings": "Uma subscri\u00e7\u00e3o ativa do Emby Premiere \u00e9 requerida para criar a grava\u00e7\u00e3o automatizada de s\u00e9ries.",
"LabelEmailAddress": "E-mail address:", "LabelEmailAddress": "Endere\u00e7o de E-mail:",
"PromoConvertRecordingsToStreamingFormat": "Converter automaticamente grava\u00e7\u00f5es para um formato amig\u00e1vel para streaming com Emby Premiere. Grava\u00e7\u00f5es ser\u00e3o convertidas em tempo real para MP4 ou MKV, baseado nas configura\u00e7\u00f5es do Servidor Emby.", "PromoConvertRecordingsToStreamingFormat": "Converter automaticamente grava\u00e7\u00f5es para um formato amig\u00e1vel para streaming com Emby Premiere. Grava\u00e7\u00f5es ser\u00e3o convertidas em tempo real para MP4 ou MKV, baseado nas configura\u00e7\u00f5es do Servidor Emby.",
"FeatureRequiresEmbyPremiere": "Este recurso requer uma subscri\u00e7\u00e3o ativa do Emby Premiere", "FeatureRequiresEmbyPremiere": "Este recurso requer uma subscri\u00e7\u00e3o ativa do Emby Premiere",
"HeaderConvertYourRecordings": "Converter suas Grava\u00e7\u00f5es", "HeaderConvertYourRecordings": "Converter suas Grava\u00e7\u00f5es",
@ -293,7 +293,7 @@
"RepeatEpisodes": "Repetir epis\u00f3dios", "RepeatEpisodes": "Repetir epis\u00f3dios",
"DvrSubscriptionRequired": "Emby DVR requer uma assinatura ativa do Emby Premiere", "DvrSubscriptionRequired": "Emby DVR requer uma assinatura ativa do Emby Premiere",
"HeaderCancelRecording": "Cancelar Grava\u00e7\u00e3o", "HeaderCancelRecording": "Cancelar Grava\u00e7\u00e3o",
"CancelRecording": "Cancel recording", "CancelRecording": "Cancelar grava\u00e7\u00e3o",
"HeaderKeepRecording": "Continuar Gravando", "HeaderKeepRecording": "Continuar Gravando",
"HeaderCancelSeries": "Cancelar S\u00e9rie", "HeaderCancelSeries": "Cancelar S\u00e9rie",
"HeaderKeepSeries": "Manter S\u00e9rie", "HeaderKeepSeries": "Manter S\u00e9rie",
@ -334,17 +334,21 @@
"SortChannelsBy": "Ordenar canais por:", "SortChannelsBy": "Ordenar canais por:",
"RecentlyWatched": "Assistido recentemente", "RecentlyWatched": "Assistido recentemente",
"ChannelNumber": "N\u00famero do canal", "ChannelNumber": "N\u00famero do canal",
"HeaderBenefitsEmbyPremiere": "Benefits of Emby Premiere", "HeaderBenefitsEmbyPremiere": "Benef\u00edcios do Emby Premiere",
"ThankYouForTryingEnjoyOneMinute": "Please enjoy one minute of playback. Thank you for trying Emby.", "ThankYouForTryingEnjoyOneMinute": "Por favor aproveite um minuto de reprodu\u00e7\u00e3o. Obrigado por testar Emby.",
"HeaderTryPlayback": "Try Playback", "HeaderTryPlayback": "Testar Reprodu\u00e7\u00e3o",
"HowDidYouPay": "How did you pay?", "HowDidYouPay": "Como voc\u00ea pagou?",
"IHaveEmbyPremiere": "I have Emby Premiere", "IHaveEmbyPremiere": "Eu tenho Emby Premiere",
"IPurchasedThisApp": "I purchased this app", "IPurchasedThisApp": "Eu comprei este app",
"ButtonRestorePreviousPurchase": "Restore Purchase", "ButtonRestorePreviousPurchase": "Recuperar Compra",
"ButtonUnlockWithPurchase": "Unlock with Purchase", "ButtonUnlockWithPurchase": "Desbloquear com Compra",
"ButtonUnlockPrice": "Unlock {0}", "ButtonUnlockPrice": "Desbloquear {0}",
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "J\u00e1 pagou?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Reproduzir Um Minuto",
"PlaceFavoriteChannelsAtBeginning": "Colocar canais favoritos no in\u00edcio", "PlaceFavoriteChannelsAtBeginning": "Colocar canais favoritos no in\u00edcio",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Desbloquear Funcionalidade",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "\u0423\u0436\u0435 \u043e\u043f\u043b\u0430\u0442\u0438\u043b\u0438?", "ButtonAlreadyPaid": "\u0423\u0436\u0435 \u043e\u043f\u043b\u0430\u0442\u0438\u043b\u0438?",
"ButtonPlayOneMinute": "\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u043e\u0434\u043d\u0443 \u043c\u0438\u043d\u0443\u0442\u0443", "ButtonPlayOneMinute": "\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u043e\u0434\u043d\u0443 \u043c\u0438\u043d\u0443\u0442\u0443",
"PlaceFavoriteChannelsAtBeginning": "\u0420\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0438\u0437\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043d\u0430\u043b\u044b \u0432 \u043d\u0430\u0447\u0430\u043b\u0435", "PlaceFavoriteChannelsAtBeginning": "\u0420\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0438\u0437\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043d\u0430\u043b\u044b \u0432 \u043d\u0430\u0447\u0430\u043b\u0435",
"HeaderUnlockFeature": "\u0420\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443" "HeaderUnlockFeature": "\u0420\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -346,5 +346,9 @@
"ButtonAlreadyPaid": "Already Paid?", "ButtonAlreadyPaid": "Already Paid?",
"ButtonPlayOneMinute": "Play One Minute", "ButtonPlayOneMinute": "Play One Minute",
"PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning", "PlaceFavoriteChannelsAtBeginning": "Place favorite channels at the beginning",
"HeaderUnlockFeature": "Unlock Feature" "HeaderUnlockFeature": "Unlock Feature",
"MessageDidYouKnowCinemaMode": "Did you know that with Emby Premiere, you can enhance your experience with features like Cinema Mode?",
"MessageDidYouKnowCinemaMode2": "Cinema Mode gives you the true cinema experience with trailers and custom intros before the main feature.",
"HeaderPlayMyMedia": "Play my Media",
"HeaderDiscoverEmbyPremiere": "Discover Emby Premiere"
} }

View File

@ -7,4 +7,63 @@
contain: layout style; contain: layout style;
/* Can't use will-change because it causes the alpha picker to move when the page scrolls*/ /* Can't use will-change because it causes the alpha picker to move when the page scrolls*/
/*will-change: transform;*/ /*will-change: transform;*/
}
@keyframes view-fadeout {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@keyframes view-fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes view-slideleft {
from {
transform: translate3d(100%, 0, 0);
}
to {
transform: none;
}
}
@keyframes view-slideleft-r {
from {
transform: none;
}
to {
transform: translate3d(-100%, 0, 0);
}
}
@keyframes view-slideright {
from {
transform: translate3d(-100%, 0, 0);
}
to {
transform: none;
}
}
@keyframes view-slideright-r {
from {
transform: none;
}
to {
transform: translate3d(100%, 0, 0);
}
} }

View File

@ -116,72 +116,59 @@ define(['browser', 'css!./viewcontainer-lite'], function (browser) {
function slide(newAnimatedPage, oldAnimatedPage, transition, isBack) { function slide(newAnimatedPage, oldAnimatedPage, transition, isBack) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
var timings = {
duration: 450, var duration = 450;
iterations: 1,
easing: 'ease-out',
fill: 'both'
};
var animations = []; var animations = [];
if (oldAnimatedPage) { if (oldAnimatedPage) {
var destination = isBack ? '100%' : '-100%'; if (isBack) {
oldAnimatedPage.style.animation = 'view-slideright-r ' + duration + 'ms ease-out normal both';
animations.push(oldAnimatedPage.animate([ setAnimation(oldAnimatedPage, 'view-slideright-r ' + duration + 'ms ease-out normal both');
} else {
{ transform: 'none', offset: 0 }, setAnimation(oldAnimatedPage, 'view-slideleft-r ' + duration + 'ms ease-out normal both');
{ transform: 'translate3d(' + destination + ', 0, 0)', offset: 1 } }
animations.push(oldAnimatedPage);
], timings));
} }
var start = isBack ? '-100%' : '100%'; if (isBack) {
setAnimation(newAnimatedPage, 'view-slideright ' + duration + 'ms ease-out normal both');
animations.push(newAnimatedPage.animate([ } else {
setAnimation(newAnimatedPage, 'view-slideleft ' + duration + 'ms ease-out normal both');
{ transform: 'translate3d(' + start + ', 0, 0)', offset: 0 }, }
{ transform: 'none', offset: 1 } animations.push(newAnimatedPage);
], timings));
currentAnimations = animations; currentAnimations = animations;
animations[animations.length - 1].onfinish = resolve; setTimeout(resolve, duration);
}); });
} }
function fade(newAnimatedPage, oldAnimatedPage, transition, isBack) { function fade(newAnimatedPage, oldAnimatedPage, transition, isBack) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
var timings = {
duration: 300,
iterations: 1,
easing: 'ease-out',
fill: 'both'
};
var duration = 400;
var animations = []; var animations = [];
if (oldAnimatedPage) { if (oldAnimatedPage) {
animations.push(oldAnimatedPage.animate([ setAnimation(oldAnimatedPage, 'view-fadeout ' + duration + 'ms ease-out normal both');
animations.push(oldAnimatedPage);
{ opacity: 1, offset: 0 },
{ opacity: 0, offset: 1 }
], timings));
} }
animations.push(newAnimatedPage.animate([ setAnimation(newAnimatedPage, 'view-fadein ' + duration + 'ms ease-in normal both');
animations.push(newAnimatedPage);
{ opacity: 0, offset: 0 },
{ opacity: 1, offset: 1 }
], timings));
currentAnimations = animations; currentAnimations = animations;
animations[animations.length - 1].onfinish = resolve; setTimeout(resolve, duration);
});
}
function setAnimation(elem, value) {
requestAnimationFrame(function () {
elem.style.animation = value;
}); });
} }
@ -190,16 +177,7 @@ define(['browser', 'css!./viewcontainer-lite'], function (browser) {
var animations = currentAnimations; var animations = currentAnimations;
for (var i = 0, length = animations.length; i < length; i++) { for (var i = 0, length = animations.length; i < length; i++) {
cancelAnimation(animations[i]); animations[i].animation = 'none';
}
}
function cancelAnimation(animation) {
try {
animation.cancel();
} catch (err) {
console.log('Error canceling animation: ' + err);
} }
} }

View File

@ -1,4 +1,4 @@
define(['apphost', 'connectionManager', 'events', 'globalize', 'browser', 'require', 'dom', 'emby-tabs'], function (appHost, connectionManager, events, globalize, browser, require, dom) { define(['apphost', 'connectionManager', 'events', 'globalize', 'browser', 'require', 'dom', 'embyRouter', 'emby-tabs'], function (appHost, connectionManager, events, globalize, browser, require, dom, embyRouter) {
// Make sure this is pulled in after button and tab css // Make sure this is pulled in after button and tab css
require(['css!./dockedtabs']); require(['css!./dockedtabs']);
@ -13,7 +13,7 @@
})[0]; })[0];
if (view) { if (view) {
Emby.Page.showItem(view); embyRouter.showItem(view);
} }
} }
@ -22,13 +22,13 @@
switch (id) { switch (id) {
case 'settings': case 'settings':
Emby.Page.showSettings(); embyRouter.showSettings();
break; break;
case 'signout': case 'signout':
Dashboard.logout(); Dashboard.logout();
break; break;
case 'selectserver': case 'selectserver':
Emby.Page.showSelectServer(); embyRouter.showSelectServer();
break; break;
case 'reports': case 'reports':
Dashboard.navigate('reports.html'); Dashboard.navigate('reports.html');
@ -157,7 +157,7 @@
switch (index) { switch (index) {
case 0: case 0:
Emby.Page.goHome(); embyRouter.goHome();
break; break;
case 1: case 1:
showLibrariesMenu(this); showLibrariesMenu(this);
@ -165,10 +165,10 @@
e.stopPropagation(); e.stopPropagation();
break; break;
case 2: case 2:
Emby.Page.showLiveTV(); embyRouter.showLiveTV();
break; break;
case 3: case 3:
Emby.Page.showFavorites(); embyRouter.showFavorites();
break; break;
case 4: case 4:
Dashboard.navigate('mysync.html?mode=offline'); Dashboard.navigate('mysync.html?mode=offline');
@ -217,7 +217,7 @@
var html = ''; var html = '';
var liveTVButtonClass = appHost.supports('sync') ? ' dockedtab-midsize' : ''; var liveTVButtonClass = appHost.supports('sync') ? ' dockedtab-midsize' : '';
html += ' <div is="emby-tabs" class="dockedtabs-tabs" data-selectionbar="false">\ html += ' <div is="emby-tabs" class="dockedtabs-tabs" data-selectionbar="false">\
<button is="emby-button" class="dockedtabs-tab-button emby-tab-button emby-tab-button-active" data-index="0">\ <button is="emby-button" class="dockedtabs-tab-button emby-tab-button emby-tab-button-active" data-index="0">\
<div class="dockedtabs-tab-button-foreground emby-button-foreground"><i class="dockedtabs-tab-button-icon md-icon">home</i><div>' + globalize.translate('TabHome') + '</div></div>\ <div class="dockedtabs-tab-button-foreground emby-button-foreground"><i class="dockedtabs-tab-button-icon md-icon">home</i><div>' + globalize.translate('TabHome') + '</div></div>\

View File

@ -50,6 +50,15 @@
return globalize.translate('sharedcomponents#ButtonAlreadyPaid'); return globalize.translate('sharedcomponents#ButtonAlreadyPaid');
} }
function getPeriodicMessageIntervalMs(feature) {
if (feature == 'playback') {
return 259200000;
}
return 0;
}
return { return {
getProductInfo: getProductInfo, getProductInfo: getProductInfo,
beginPurchase: beginPurchase, beginPurchase: beginPurchase,
@ -57,7 +66,8 @@
getSubscriptionOptions: getSubscriptionOptions, getSubscriptionOptions: getSubscriptionOptions,
isUnlockedByDefault: isUnlockedByDefault, isUnlockedByDefault: isUnlockedByDefault,
getAdminFeatureName: getAdminFeatureName, getAdminFeatureName: getAdminFeatureName,
getRestoreButtonText: getRestoreButtonText getRestoreButtonText: getRestoreButtonText,
getPeriodicMessageIntervalMs: getPeriodicMessageIntervalMs
}; };
}); });

View File

@ -124,6 +124,17 @@
} }
} }
.ehsContent:not(.fullWidth), .ehsContent .pageTabContent {
width: 98%;
}
@media all and (min-width: 1200px) {
.ehsContent:not(.fullWidth), .ehsContent .pageTabContent {
width: 96%;
}
}
.homePageSection h1 { .homePageSection h1 {
padding-left: 2vw; padding-left: 2vw;
} }

View File

@ -16,7 +16,7 @@
</button> </button>
</div> </div>
</div> </div>
<div class="is-active pageTabContent ehsContent" id="homeTab" data-index="0"> <div class="is-active pageTabContent ehsContent fullWidth" id="homeTab" data-index="0">
<div class="ui-bar-b readOnlyContent welcomeMessage hide" style="padding: 2em; border-radius: 10px; margin: 2em auto; font-weight: normal;"> <div class="ui-bar-b readOnlyContent welcomeMessage hide" style="padding: 2em; border-radius: 10px; margin: 2em auto; font-weight: normal;">
<h1 style="margin-top: 0;" class="tourHeader"></h1> <h1 style="margin-top: 0;" class="tourHeader"></h1>
<p> <p>
@ -26,7 +26,7 @@
<div class="sections"></div> <div class="sections"></div>
</div> </div>
<div class="pageTabContent ehsContent" id="nextUpTab" data-index="1"> <div class="pageTabContent ehsContent fullWidth" id="nextUpTab" data-index="1">
<div class="homePageSection"> <div class="homePageSection">
<div> <div>
<h1 class="listHeader nextUpHeader" style="display: inline-block; vertical-align: middle;">${HeaderNextUp}</h1> <h1 class="listHeader nextUpHeader" style="display: inline-block; vertical-align: middle;">${HeaderNextUp}</h1>
@ -39,10 +39,10 @@
</div> </div>
<p class="noNextUpItems hide">${NoNextUpItemsMessage}</p> <p class="noNextUpItems hide">${NoNextUpItemsMessage}</p>
</div> </div>
<div class="pageTabContent ehsContent" id="favoritesTab" data-index="2"> <div class="pageTabContent ehsContent fullWidth" id="favoritesTab" data-index="2">
<div class="favoriteSections"></div> <div class="favoriteSections"></div>
</div> </div>
<div class="pageTabContent ehsContent" id="upcomingTab" data-index="3"> <div class="pageTabContent ehsContent fullWidth" id="upcomingTab" data-index="3">
<div id="upcomingItems"> <div id="upcomingItems">
</div> </div>
<div class="noItemsMessage hide"> <div class="noItemsMessage hide">

View File

@ -29,7 +29,7 @@
</div> </div>
</div> </div>
<div class="is-active pageTabContent ehsContent" id="suggestionsTab" data-index="0"> <div class="is-active pageTabContent ehsContent fullWidth" id="suggestionsTab" data-index="0">
<div id="activeRecordings" class="homePageSection hide"> <div id="activeRecordings" class="homePageSection hide">
<h1 class="listHeader">${HeaderActiveRecordings}</h1> <h1 class="listHeader">${HeaderActiveRecordings}</h1>
<div is="emby-itemscontainer" class="recordingItems itemsContainer"></div> <div is="emby-itemscontainer" class="recordingItems itemsContainer"></div>
@ -85,7 +85,7 @@
</div> </div>
<div is="emby-itemscontainer" id="items" class="itemsContainer vertical-wrap"></div> <div is="emby-itemscontainer" id="items" class="itemsContainer vertical-wrap"></div>
</div> </div>
<div class="pageTabContent ehsContent" id="recordingsTab" data-index="3"> <div class="pageTabContent ehsContent fullWidth" id="recordingsTab" data-index="3">
<div id="activeRecordings" class="homePageSection hide"> <div id="activeRecordings" class="homePageSection hide">
<h1 class="listHeader">${HeaderActiveRecordings}</h1> <h1 class="listHeader">${HeaderActiveRecordings}</h1>
<div is="emby-itemscontainer" class="recordingItems itemsContainer"></div> <div is="emby-itemscontainer" class="recordingItems itemsContainer"></div>
@ -141,7 +141,7 @@
<div id="recordingGroupItems"></div> <div id="recordingGroupItems"></div>
</div> </div>
</div> </div>
<div class="pageTabContent ehsContent" id="scheduleTab" data-index="4"> <div class="pageTabContent ehsContent fullWidth" id="scheduleTab" data-index="4">
<div id="activeRecordings" class="homePageSection hide"> <div id="activeRecordings" class="homePageSection hide">
<h1 class="listHeader">${HeaderActiveRecordings}</h1> <h1 class="listHeader">${HeaderActiveRecordings}</h1>
<div is="emby-itemscontainer" class="recordingItems itemsContainer"></div> <div is="emby-itemscontainer" class="recordingItems itemsContainer"></div>

View File

@ -22,7 +22,7 @@
</button> </button>
</div> </div>
</div> </div>
<div class="is-active pageTabContent ehsContent" id="suggestionsTab" data-index="0"> <div class="is-active pageTabContent ehsContent fullWidth" id="suggestionsTab" data-index="0">
<div id="resumableSection" class="homePageSection hide"> <div id="resumableSection" class="homePageSection hide">
<div> <div>
<h1 class="listHeader" style="display:inline-block;vertical-align:middle;">${HeaderResume}</h1> <h1 class="listHeader" style="display:inline-block;vertical-align:middle;">${HeaderResume}</h1>

View File

@ -26,7 +26,7 @@
</div> </div>
</div> </div>
<div class="pageTabContent is-active pageTabContent ehsContent" id="suggestionsTab" data-index="0"> <div class="pageTabContent is-active pageTabContent ehsContent fullWidth" id="suggestionsTab" data-index="0">
<div class="homePageSection"> <div class="homePageSection">
<h1 class="listHeader">${HeaderLatestMusic}</h1> <h1 class="listHeader">${HeaderLatestMusic}</h1>

View File

@ -298,13 +298,14 @@
} }
}); });
view.querySelector('.btnCancelSignup').addEventListener('click', function () { function goBack() {
Emby.Page.back(); require(['embyRouter'], function (embyRouter) {
}); embyRouter.back();
});
}
view.querySelector('.btnCancelManualServer').addEventListener('click', function () { view.querySelector('.btnCancelSignup').addEventListener('click', goBack);
Emby.Page.back(); view.querySelector('.btnCancelManualServer').addEventListener('click', goBack);
});
view.querySelector('.btnWelcomeNext').addEventListener('click', function () { view.querySelector('.btnWelcomeNext').addEventListener('click', function () {
Dashboard.navigate('connectlogin.html?mode=connect'); Dashboard.navigate('connectlogin.html?mode=connect');

View File

@ -450,7 +450,7 @@
html += '<div style="display:flex;align-items:center;justify-content:center;text-transform:uppercase;">'; html += '<div style="display:flex;align-items:center;justify-content:center;text-transform:uppercase;">';
var userImage = DashboardPage.getUserImage(session); var userImage = DashboardPage.getUserImage(session);
if (userImage) { if (userImage) {
html += '<img style="border-radius:50px;margin-right:.5em;" src="' + userImage + '" />'; html += '<img style="height:24px;border-radius:50px;margin-right:.5em;" src="' + userImage + '" />';
} else { } else {
html += '<div style="height:24px;"></div>'; html += '<div style="height:24px;"></div>';
} }

View File

@ -1,4 +1,4 @@
define(['imageLoader', 'layoutManager', 'viewManager', 'libraryBrowser', 'apphost', 'paper-icon-button-light', 'material-icons'], function (imageLoader, layoutManager, viewManager, libraryBrowser, appHost) { define(['imageLoader', 'layoutManager', 'viewManager', 'libraryBrowser', 'apphost', 'embyRouter', 'paper-icon-button-light', 'material-icons'], function (imageLoader, layoutManager, viewManager, libraryBrowser, appHost, embyRouter) {
var enableBottomTabs = AppInfo.isNativeApp; var enableBottomTabs = AppInfo.isNativeApp;
var enableLibraryNavDrawer = !enableBottomTabs; var enableLibraryNavDrawer = !enableBottomTabs;
@ -60,7 +60,7 @@
function onBackClick() { function onBackClick() {
Emby.Page.back(); embyRouter.back();
} }
function updateUserInHeader(user) { function updateUserInHeader(user) {
@ -908,7 +908,7 @@
var backButton = document.querySelector('.headerBackButton'); var backButton = document.querySelector('.headerBackButton');
if (backButton) { if (backButton) {
if (page.getAttribute('data-backbutton') == 'true' && Emby.Page.canGoBack()) { if (page.getAttribute('data-backbutton') == 'true' && embyRouter.canGoBack()) {
backButton.classList.remove('hide'); backButton.classList.remove('hide');
} else { } else {
backButton.classList.add('hide'); backButton.classList.add('hide');

View File

@ -157,7 +157,6 @@ define(['appSettings', 'userSettings', 'appStorage', 'datetime'], function (appS
if (!AppInfo.isNativeApp) { if (!AppInfo.isNativeApp) {
options.enableMkvProgressive = item.RunTimeTicks != null; options.enableMkvProgressive = item.RunTimeTicks != null;
options.enableTsProgressive = item.RunTimeTicks != null;
options.enableHls = !browserInfo.firefox || item.RunTimeTicks == null; options.enableHls = !browserInfo.firefox || item.RunTimeTicks == null;
options.disableVideoAudioCodecs = disableVideoAudioCodecs; options.disableVideoAudioCodecs = disableVideoAudioCodecs;
} }

View File

@ -1417,9 +1417,7 @@ var AppInfo = {};
}); });
// alias // alias
define("historyManager", [], function () { define("historyManager", ['embyRouter'], returnFirstDependency);
return Emby.Page;
});
define("headroom-window", ['headroom'], createWindowHeadroom); define("headroom-window", ['headroom'], createWindowHeadroom);
define("hammer-main", ['hammer'], createMainContentHammer); define("hammer-main", ['hammer'], createMainContentHammer);
@ -2682,7 +2680,6 @@ var AppInfo = {};
window.Emby = {}; window.Emby = {};
window.Emby.Page = pageObjects; window.Emby.Page = pageObjects;
window.Emby.TransparencyLevel = pageObjects.TransparencyLevel;
defineCoreRoutes(); defineCoreRoutes();
Emby.Page.start({ Emby.Page.start({
click: true, click: true,

View File

@ -26,7 +26,7 @@
</div> </div>
</div> </div>
<div class="is-active pageTabContent ehsContent" id="suggestionsTab" data-index="0"> <div class="is-active pageTabContent ehsContent fullWidth" id="suggestionsTab" data-index="0">
<div id="resumableSection" class="homePageSection"> <div id="resumableSection" class="homePageSection">
<div> <div>
<h1 class="listHeader" style="display: inline-block; vertical-align: middle;">${HeaderResume}</h1> <h1 class="listHeader" style="display: inline-block; vertical-align: middle;">${HeaderResume}</h1>
@ -51,7 +51,7 @@
</div> </div>
<p class="noNextUpItems" style="display: none;">${NoNextUpItemsMessage}</p> <p class="noNextUpItems" style="display: none;">${NoNextUpItemsMessage}</p>
</div> </div>
<div class="pageTabContent ehsContent" id="latestTab" data-index="1"> <div class="pageTabContent ehsContent fullWidth" id="latestTab" data-index="1">
<div class="homePageSection"> <div class="homePageSection">
<div> <div>
<h1 class="listHeader" style="display: inline-block; vertical-align: middle;">${HeaderLatestEpisodes}</h1> <h1 class="listHeader" style="display: inline-block; vertical-align: middle;">${HeaderLatestEpisodes}</h1>
@ -63,7 +63,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="pageTabContent ehsContent" id="upcomingTab" data-index="2"> <div class="pageTabContent ehsContent fullWidth" id="upcomingTab" data-index="2">
<div id="upcomingItems"> <div id="upcomingItems">
</div> </div>
<div class="noItemsMessage" style="display: none;"> <div class="noItemsMessage" style="display: none;">