test
This commit is contained in:
parent
1bac3c5b55
commit
84913c2bb1
@ -1 +1 @@
|
||||
<div class="max-height fill-me"><div class="row max-width grow flex-center"><div class="columns small-centered small-12 smedium-11 medium-9 large-7"><div class="row setting-row hidden" id=install-button><span class="columns small-6" data-translation=install></span> <span class="columns small-6 text-right" data-translation=">"></span></div><div class="row setting-row" id=theme-chooser><span class="columns small-6" data-translation=theme></span> <span class="columns small-6 text-right"><div id=theme-name></div></span></div><label class="switch row setting-row"><span class="columns small-6" data-translation=sound></span> <span class="columns small-6 text-right"><input type=checkbox class=setting id=play-sound name=play-sound value=1 data-default=1> <span class=slider></span></span></label> <label class="switch row setting-row"><span class="columns small-6" data-translation=music></span> <span class="columns small-6 text-right"><input type=checkbox class=setting id=play-music name=play-music value=1 data-default=1> <span class=slider></span></span></label><div class="row setting-row" id=credits-button><span class="columns small-6" data-translation=credits></span> <span class="columns small-6 text-right" data-translation=">"></span></div><div class="row setting-row" id=privacy-policy-button><span class="columns small-6" data-translation=privacy-policy></span> <span class="columns small-6 text-right" data-translation=">"></span></div><div class="row setting-row" id=impressum-button><span class="columns small-6" data-translation=impressum></span> <span class="columns small-6 text-right" data-translation=">"></span></div><div class="row setting-row" id=contact-button><span class="columns small-6" data-translation=contact></span> <span class="columns small-6 text-right" data-translation=">"></span></div><label class="switch row setting-row"><span class="columns small-6" data-translation=track></span> <span class="columns small-6 text-right"><input type=checkbox class=setting id=track-switch name=matomoShouldTrack value=1 data-default=1 data-raw=1> <span class=slider></span></span></label><div class="row setting-row hidden"><span class="column small-12" id=storage-info></span></div><button id=reset-levels class="button hidden" data-translation=reset-levels></button></div></div></div>
|
||||
<div class="max-height fill-me"><div class="row max-width grow flex-center"><div class="columns small-centered small-12 smedium-11 medium-9 large-7"><div class="row setting-row hidden" id=install-button><span class="columns small-6" data-translation=install></span> <span class="columns small-6 text-right" data-translation=">"></span></div><div class="row setting-row" id=theme-chooser><span class="columns small-6" data-translation=theme></span> <span class="columns small-6 text-right"><div id=theme-name></div></span></div><label class="switch row setting-row"><span class="columns small-6" data-translation=sound></span> <span class="columns small-6 text-right"><input type=checkbox class=setting id=play-sound name=play-sound value=1 data-default=1> <span class=slider></span></span></label> <label class="switch row setting-row"><span class="columns small-6" data-translation=music></span> <span class="columns small-6 text-right"><input type=checkbox class=setting id=play-music name=play-music value=1 data-default=1> <span class=slider></span></span></label><div class="row setting-row" id=credits-button><span class="columns small-6" data-translation=credits></span> <span class="columns small-6 text-right" data-translation=">"></span></div><div class="row setting-row" id=privacy-policy-button><span class="columns small-6" data-translation=privacy-policy></span> <span class="columns small-6 text-right" data-translation=">"></span></div><div class="row setting-row" id=impressum-button><span class="columns small-6" data-translation=impressum></span> <span class="columns small-6 text-right" data-translation=">"></span></div><div class="row setting-row" id=contact-button><span class="columns small-6" data-translation=contact></span> <span class="columns small-6 text-right" data-translation=">"></span></div><label class="switch row setting-row"><span class="columns small-6" data-translation=track></span> <span class="columns small-6 text-right"><input type=checkbox class=setting id=track-switch name=matomoShouldTrack value=1 data-default=1 data-raw=1> <span class=slider></span></span></label><div class="row setting-row hidden"><span class="column small-10" id=storage-info></span> <span class="columns small-6 text-right" data-translation=">"></span></div><button id=reset-levels class="button hidden" data-translation=reset-levels></button></div></div></div>
|
||||
143
public/js/app.js
143
public/js/app.js
@ -2682,6 +2682,28 @@ class Dialog {
|
||||
}
|
||||
}
|
||||
|
||||
class ConfirmDialog extends Dialog {
|
||||
constructor(content, title) {
|
||||
super(content, title);
|
||||
}
|
||||
|
||||
async show() {
|
||||
this.addButton("confirm-button", true);
|
||||
this.addButton("cancel-button", false);
|
||||
|
||||
return super.show();
|
||||
}
|
||||
|
||||
|
||||
close() {
|
||||
if (Helper.isNull(this.result))
|
||||
{
|
||||
this.result = false;
|
||||
}
|
||||
return super.close();
|
||||
}
|
||||
}
|
||||
|
||||
class FlashMessenger {
|
||||
static deleteMessage(_idNumber, _delayInMilliSeconds) {
|
||||
_delayInMilliSeconds = Helper.nonNull(_delayInMilliSeconds, 0);
|
||||
@ -7254,6 +7276,12 @@ InitPromise.addPromise(app => {
|
||||
app.addDeepLink("impressum", ImpressumSite);
|
||||
});
|
||||
|
||||
class PersistDialog extends ConfirmDialog{
|
||||
constructor() {
|
||||
super("persist-storage-dialog-message", "persist-storage-dialog-title");
|
||||
}
|
||||
}
|
||||
|
||||
class WordRotatorSettingFragment extends LocalStorageSettingsFragment {
|
||||
constructor(site) {
|
||||
super(site, "html/application/fragment/settings.html");
|
||||
@ -7328,39 +7356,53 @@ class WordRotatorSettingFragment extends LocalStorageSettingsFragment {
|
||||
installButton.classList.remove("hidden");
|
||||
});
|
||||
|
||||
// let storageManager = MyStorageManager.getInstance();
|
||||
// if (storageManager.canEstimateStorage()) {
|
||||
// console.log("can estimate storage!");
|
||||
// Promise.all([storageManager.estimate(), storageManager.isPersistent()]).then(res => {
|
||||
// let storage = res[0];
|
||||
// let isPersisted = res[1];
|
||||
// let storageObject = this.findBy("#storage-info");
|
||||
// console.log(isPersisted);
|
||||
// storageObject.appendChild(Translator.makePersistentTranslation("storage-info", [
|
||||
// Math.round(storage.usage / (1024 * 1024) * 100) / 100,
|
||||
// Math.round(storage.quota / (1024 * 1024) * 100) / 100,
|
||||
// Math.round(storage.usage / storage.quota * 10000) / 100,
|
||||
// ((isPersisted) ? "" : "nicht")]));
|
||||
// storageObject.parentElement.classList.remove("hidden");
|
||||
// storageObject.parentElement.addEventListener("click", () => {
|
||||
// storageManager.persist().then(isPersisted => {
|
||||
// storageObject.removeAllChildren().appendChild(Translator.makePersistentTranslation("storage-info", [
|
||||
// Math.round(storage.usage / (1024 * 1024) * 100) / 100,
|
||||
// Math.round(storage.quota / (1024 * 1024) * 100) / 100,
|
||||
// Math.round(storage.usage / storage.quota * 10000) / 100,
|
||||
// ((isPersisted) ? "" : "nicht")]));
|
||||
//
|
||||
// console.log("p", isPersisted);
|
||||
// if (!isPersisted){
|
||||
// FlashMessenger.addMessage("storage-permission-not-get");
|
||||
// }
|
||||
// else {
|
||||
// FlashMessenger.addMessage("storage-permission-get");
|
||||
// }
|
||||
// });
|
||||
// })
|
||||
// });
|
||||
// }
|
||||
let storageManager = MyStorageManager.getInstance();
|
||||
if (storageManager.canPersist()) {
|
||||
Promise.all([storageManager.isPersistent(), navigator.serviceWorker["ready"]]).then(res => {
|
||||
let isPersisted = res[0];
|
||||
let storageObject = this.findBy("#storage-info");
|
||||
storageObject.appendChild(Translator.makePersistentTranslation("storage-info", [
|
||||
((isPersisted) ? "" : "nicht")]));
|
||||
storageObject.parentElement.classList.remove("hidden");
|
||||
storageObject.parentElement.addEventListener("click", async () => {
|
||||
if (!isPersisted) {
|
||||
try {
|
||||
let shouldAskForNotifications = await (new PersistDialog().show());
|
||||
if (shouldAskForNotifications) {
|
||||
let sub = await res[1]["pushManager"]["subscribe"]({
|
||||
"userVisibleOnly": true,
|
||||
"applicationServerKey": new Uint8Array([0x4, 0x53, 0xb7, 0x8d, 0xc6, 0xd1, 0x1a, 0xd4, 0x8b, 0xb2, 0xeb, 0x82, 0xf0, 0x9e, 0x12, 0xf6, 0xd, 0x32, 0x18, 0xa, 0x35, 0xf, 0x2d, 0x4c, 0x5, 0x29, 0x15, 0x95, 0x23, 0xb1, 0xd3, 0xab, 0x87, 0x88, 0x85, 0x1d, 0xc0, 0x98, 0x6e, 0x65, 0xe3, 0xcb, 0xa2, 0x28, 0x63, 0x7, 0x34, 0x9b, 0xfa, 0x46, 0x9a, 0x49, 0xcc, 0x70, 0x7a, 0xdd, 0xbe, 0x1e, 0xfc, 0xde, 0xcc, 0xb3, 0x5b, 0xcb, 0xf4])
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
if ('Notification' in window && Notification.permission === 'denied') {
|
||||
FlashMessenger.addMessage('notification-permission-denied');
|
||||
}
|
||||
}
|
||||
|
||||
isPersisted = await storageManager.isPersistent();
|
||||
storageObject.removeAllChildren().appendChild(Translator.makePersistentTranslation("storage-info", [
|
||||
((isPersisted) ? "" : "nicht")]));
|
||||
|
||||
}
|
||||
// storageManager.persist().then(isPersisted => {
|
||||
// storageObject.removeAllChildren().appendChild(Translator.makePersistentTranslation("storage-info", [
|
||||
// Math.round(storage.usage / (1024 * 1024) * 100) / 100,
|
||||
// Math.round(storage.quota / (1024 * 1024) * 100) / 100,
|
||||
// Math.round(storage.usage / storage.quota * 10000) / 100,
|
||||
// ((isPersisted) ? "" : "nicht")]));
|
||||
//
|
||||
// console.log("p", isPersisted);
|
||||
// if (!isPersisted){
|
||||
// FlashMessenger.addMessage("storage-permission-not-get");
|
||||
// }
|
||||
// else {
|
||||
// FlashMessenger.addMessage("storage-permission-get");
|
||||
// }
|
||||
// });
|
||||
});
|
||||
});
|
||||
}
|
||||
return super.onFirstStart();
|
||||
}
|
||||
|
||||
@ -7569,24 +7611,23 @@ InitPromise.resolve(app$1).then(async function () {
|
||||
MyStorageManager.getInstance().persist();
|
||||
}
|
||||
|
||||
|
||||
window["applyAndroidBridge"] = AndroidBridge.applyDefinitions;
|
||||
});
|
||||
|
||||
console.log("trying push... 1");
|
||||
navigator.serviceWorker["ready"].then(function (registration) {
|
||||
console.log("trying push... 2");
|
||||
registration["pushManager"]["subscribe"]({
|
||||
"userVisibleOnly": false,
|
||||
"applicationServerKey": new Uint8Array([0x4, 0x53, 0xb7, 0x8d, 0xc6, 0xd1, 0x1a, 0xd4, 0x8b, 0xb2, 0xeb, 0x82, 0xf0, 0x9e, 0x12, 0xf6, 0xd, 0x32, 0x18, 0xa, 0x35, 0xf, 0x2d, 0x4c, 0x5, 0x29, 0x15, 0x95, 0x23, 0xb1, 0xd3, 0xab, 0x87, 0x88, 0x85, 0x1d, 0xc0, 0x98, 0x6e, 0x65, 0xe3, 0xcb, 0xa2, 0x28, 0x63, 0x7, 0x34, 0x9b, 0xfa, 0x46, 0x9a, 0x49, 0xcc, 0x70, 0x7a, 0xdd, 0xbe, 0x1e, 0xfc, 0xde, 0xcc, 0xb3, 0x5b, 0xcb, 0xf4])
|
||||
}).then(function (sub) {
|
||||
console.log("trying push... 3");
|
||||
console.log("Subscription", sub);
|
||||
}).catch(function (e) {
|
||||
// if ('Notification' in window && Notification.permission === 'denied') {
|
||||
// console.warn('Permission for notifications was denied');
|
||||
// } else {
|
||||
// console.error('Unable to subscribe to push', e);
|
||||
// }
|
||||
});
|
||||
});
|
||||
// console.log("trying push... 1");
|
||||
// navigator.serviceWorker["ready"].then(function (registration) {
|
||||
// console.log("trying push... 2");
|
||||
// registration["pushManager"]["subscribe"]({
|
||||
// "userVisibleOnly": true,
|
||||
// "applicationServerKey": new Uint8Array([0x4, 0x53, 0xb7, 0x8d, 0xc6, 0xd1, 0x1a, 0xd4, 0x8b, 0xb2, 0xeb, 0x82, 0xf0, 0x9e, 0x12, 0xf6, 0xd, 0x32, 0x18, 0xa, 0x35, 0xf, 0x2d, 0x4c, 0x5, 0x29, 0x15, 0x95, 0x23, 0xb1, 0xd3, 0xab, 0x87, 0x88, 0x85, 0x1d, 0xc0, 0x98, 0x6e, 0x65, 0xe3, 0xcb, 0xa2, 0x28, 0x63, 0x7, 0x34, 0x9b, 0xfa, 0x46, 0x9a, 0x49, 0xcc, 0x70, 0x7a, 0xdd, 0xbe, 0x1e, 0xfc, 0xde, 0xcc, 0xb3, 0x5b, 0xcb, 0xf4])
|
||||
// }).then(function (sub) {
|
||||
// console.log("trying push... 3");
|
||||
// console.log("Subscription", sub);
|
||||
// }).catch(function (e) {
|
||||
// // if ('Notification' in window && Notification.permission === 'denied') {
|
||||
// // console.warn('Permission for notifications was denied');
|
||||
// // } else {
|
||||
// // console.error('Unable to subscribe to push', e);
|
||||
// // }
|
||||
// });
|
||||
// });
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -91,24 +91,23 @@ InitPromise.resolve(app).then(async function () {
|
||||
MyStorageManager.getInstance().persist();
|
||||
}
|
||||
|
||||
|
||||
window["applyAndroidBridge"] = AndroidBridge.applyDefinitions;
|
||||
});
|
||||
|
||||
console.log("trying push... 1");
|
||||
navigator.serviceWorker["ready"].then(function (registration) {
|
||||
console.log("trying push... 2");
|
||||
registration["pushManager"]["subscribe"]({
|
||||
"userVisibleOnly": true,
|
||||
"applicationServerKey": new Uint8Array([0x4, 0x53, 0xb7, 0x8d, 0xc6, 0xd1, 0x1a, 0xd4, 0x8b, 0xb2, 0xeb, 0x82, 0xf0, 0x9e, 0x12, 0xf6, 0xd, 0x32, 0x18, 0xa, 0x35, 0xf, 0x2d, 0x4c, 0x5, 0x29, 0x15, 0x95, 0x23, 0xb1, 0xd3, 0xab, 0x87, 0x88, 0x85, 0x1d, 0xc0, 0x98, 0x6e, 0x65, 0xe3, 0xcb, 0xa2, 0x28, 0x63, 0x7, 0x34, 0x9b, 0xfa, 0x46, 0x9a, 0x49, 0xcc, 0x70, 0x7a, 0xdd, 0xbe, 0x1e, 0xfc, 0xde, 0xcc, 0xb3, 0x5b, 0xcb, 0xf4])
|
||||
}).then(function (sub) {
|
||||
console.log("trying push... 3");
|
||||
console.log("Subscription", sub);
|
||||
}).catch(function (e) {
|
||||
// if ('Notification' in window && Notification.permission === 'denied') {
|
||||
// console.warn('Permission for notifications was denied');
|
||||
// } else {
|
||||
// console.error('Unable to subscribe to push', e);
|
||||
// }
|
||||
});
|
||||
});
|
||||
// console.log("trying push... 1");
|
||||
// navigator.serviceWorker["ready"].then(function (registration) {
|
||||
// console.log("trying push... 2");
|
||||
// registration["pushManager"]["subscribe"]({
|
||||
// "userVisibleOnly": true,
|
||||
// "applicationServerKey": new Uint8Array([0x4, 0x53, 0xb7, 0x8d, 0xc6, 0xd1, 0x1a, 0xd4, 0x8b, 0xb2, 0xeb, 0x82, 0xf0, 0x9e, 0x12, 0xf6, 0xd, 0x32, 0x18, 0xa, 0x35, 0xf, 0x2d, 0x4c, 0x5, 0x29, 0x15, 0x95, 0x23, 0xb1, 0xd3, 0xab, 0x87, 0x88, 0x85, 0x1d, 0xc0, 0x98, 0x6e, 0x65, 0xe3, 0xcb, 0xa2, 0x28, 0x63, 0x7, 0x34, 0x9b, 0xfa, 0x46, 0x9a, 0x49, 0xcc, 0x70, 0x7a, 0xdd, 0xbe, 0x1e, 0xfc, 0xde, 0xcc, 0xb3, 0x5b, 0xcb, 0xf4])
|
||||
// }).then(function (sub) {
|
||||
// console.log("trying push... 3");
|
||||
// console.log("Subscription", sub);
|
||||
// }).catch(function (e) {
|
||||
// // if ('Notification' in window && Notification.permission === 'denied') {
|
||||
// // console.warn('Permission for notifications was denied');
|
||||
// // } else {
|
||||
// // console.error('Unable to subscribe to push', e);
|
||||
// // }
|
||||
// });
|
||||
// });
|
||||
@ -7,6 +7,7 @@ import {PrivacyPolicySite} from "../site/PrivacyPolicySite";
|
||||
import {ChooseThemeDialog} from "../dialog/ChooseThemeDialog";
|
||||
import {ContactSite} from "../../../../../js/lib/pwa-contact";
|
||||
import {ImpressumSite} from "../site/ImpressumSite";
|
||||
import {PersistDialog} from "../dialog/PersistDialog";
|
||||
|
||||
export class WordRotatorSettingFragment extends LocalStorageSettingsFragment {
|
||||
constructor(site) {
|
||||
@ -82,39 +83,56 @@ export class WordRotatorSettingFragment extends LocalStorageSettingsFragment {
|
||||
installButton.classList.remove("hidden");
|
||||
});
|
||||
|
||||
// let storageManager = MyStorageManager.getInstance();
|
||||
// if (storageManager.canEstimateStorage()) {
|
||||
// console.log("can estimate storage!");
|
||||
// Promise.all([storageManager.estimate(), storageManager.isPersistent()]).then(res => {
|
||||
// let storage = res[0];
|
||||
// let isPersisted = res[1];
|
||||
// let storageObject = this.findBy("#storage-info");
|
||||
// console.log(isPersisted);
|
||||
// storageObject.appendChild(Translator.makePersistentTranslation("storage-info", [
|
||||
// Math.round(storage.usage / (1024 * 1024) * 100) / 100,
|
||||
// Math.round(storage.quota / (1024 * 1024) * 100) / 100,
|
||||
// Math.round(storage.usage / storage.quota * 10000) / 100,
|
||||
// ((isPersisted) ? "" : "nicht")]));
|
||||
// storageObject.parentElement.classList.remove("hidden");
|
||||
// storageObject.parentElement.addEventListener("click", () => {
|
||||
// storageManager.persist().then(isPersisted => {
|
||||
// storageObject.removeAllChildren().appendChild(Translator.makePersistentTranslation("storage-info", [
|
||||
// Math.round(storage.usage / (1024 * 1024) * 100) / 100,
|
||||
// Math.round(storage.quota / (1024 * 1024) * 100) / 100,
|
||||
// Math.round(storage.usage / storage.quota * 10000) / 100,
|
||||
// ((isPersisted) ? "" : "nicht")]));
|
||||
//
|
||||
// console.log("p", isPersisted);
|
||||
// if (!isPersisted){
|
||||
// FlashMessenger.addMessage("storage-permission-not-get");
|
||||
// }
|
||||
// else {
|
||||
// FlashMessenger.addMessage("storage-permission-get");
|
||||
// }
|
||||
// });
|
||||
// })
|
||||
// });
|
||||
// }
|
||||
let storageManager = MyStorageManager.getInstance();
|
||||
if (storageManager.canPersist()) {
|
||||
Promise.all([storageManager.isPersistent(), navigator.serviceWorker["ready"]]).then(res => {
|
||||
let isPersisted = res[0];
|
||||
let storageObject = this.findBy("#storage-info");
|
||||
storageObject.appendChild(Translator.makePersistentTranslation("storage-info", [
|
||||
((isPersisted) ? "" : "nicht")]));
|
||||
storageObject.parentElement.classList.remove("hidden");
|
||||
storageObject.parentElement.addEventListener("click", async () => {
|
||||
if (!isPersisted) {
|
||||
try {
|
||||
let shouldAskForNotifications = await (new PersistDialog().show());
|
||||
if (shouldAskForNotifications) {
|
||||
let sub = await res[1]["pushManager"]["subscribe"]({
|
||||
"userVisibleOnly": true,
|
||||
"applicationServerKey": new Uint8Array([0x4, 0x53, 0xb7, 0x8d, 0xc6, 0xd1, 0x1a, 0xd4, 0x8b, 0xb2, 0xeb, 0x82, 0xf0, 0x9e, 0x12, 0xf6, 0xd, 0x32, 0x18, 0xa, 0x35, 0xf, 0x2d, 0x4c, 0x5, 0x29, 0x15, 0x95, 0x23, 0xb1, 0xd3, 0xab, 0x87, 0x88, 0x85, 0x1d, 0xc0, 0x98, 0x6e, 0x65, 0xe3, 0xcb, 0xa2, 0x28, 0x63, 0x7, 0x34, 0x9b, 0xfa, 0x46, 0x9a, 0x49, 0xcc, 0x70, 0x7a, 0xdd, 0xbe, 0x1e, 0xfc, 0xde, 0xcc, 0xb3, 0x5b, 0xcb, 0xf4])
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
if ('Notification' in window && Notification.permission === 'denied') {
|
||||
FlashMessenger.addMessage('notification-permission-denied');
|
||||
}
|
||||
}
|
||||
|
||||
isPersisted = await storageManager.isPersistent();
|
||||
storageObject.removeAllChildren().appendChild(Translator.makePersistentTranslation("storage-info", [
|
||||
((isPersisted) ? "" : "nicht")]));
|
||||
|
||||
}
|
||||
else {
|
||||
new Dialog("already-persited-dialog-message", "already-persited-dialog-title").show();
|
||||
}
|
||||
// storageManager.persist().then(isPersisted => {
|
||||
// storageObject.removeAllChildren().appendChild(Translator.makePersistentTranslation("storage-info", [
|
||||
// Math.round(storage.usage / (1024 * 1024) * 100) / 100,
|
||||
// Math.round(storage.quota / (1024 * 1024) * 100) / 100,
|
||||
// Math.round(storage.usage / storage.quota * 10000) / 100,
|
||||
// ((isPersisted) ? "" : "nicht")]));
|
||||
//
|
||||
// console.log("p", isPersisted);
|
||||
// if (!isPersisted){
|
||||
// FlashMessenger.addMessage("storage-permission-not-get");
|
||||
// }
|
||||
// else {
|
||||
// FlashMessenger.addMessage("storage-permission-get");
|
||||
// }
|
||||
// });
|
||||
})
|
||||
});
|
||||
}
|
||||
return super.onFirstStart();
|
||||
}
|
||||
|
||||
|
||||
7
src/module/Application/pwa/js/dialog/PersistDialog.js
Normal file
7
src/module/Application/pwa/js/dialog/PersistDialog.js
Normal file
@ -0,0 +1,7 @@
|
||||
import {ConfirmDialog, Dialog, Helper, ThemeManager, Translator, ViewInflater} from "../../../../../js/lib/pwa-lib";
|
||||
|
||||
export class PersistDialog extends ConfirmDialog{
|
||||
constructor() {
|
||||
super("persist-storage-dialog-message", "persist-storage-dialog-title");
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
<article>
|
||||
<section id = 'persistance-info-message'></section>
|
||||
</article>
|
||||
@ -52,8 +52,8 @@
|
||||
</span>
|
||||
</label>
|
||||
<div class='row setting-row hidden' >
|
||||
<span class = "column small-12" id='storage-info'></span>
|
||||
<!--<span class='columns small-2 text-right' data-translation=">"></span>-->
|
||||
<span class = "column small-10" id='storage-info'></span>
|
||||
<span class='columns small-6 text-right' data-translation=">"></span>
|
||||
</div>
|
||||
|
||||
<!--<iframe-->
|
||||
|
||||
@ -1,38 +1,37 @@
|
||||
{
|
||||
"won":"Gewonnen!",
|
||||
"continue":"Weiter",
|
||||
|
||||
"won": "Gewonnen!",
|
||||
"continue": "Weiter",
|
||||
"help": "?",
|
||||
"not-enough-coins":"Du hast zu wenig Münzen!",
|
||||
|
||||
"sync-error":"Es gab einen Fehler beim Aktualisieren der Level. Bitte stelle sicher, dass du eine aktive Internetverbindung hast und versuche es später erneut.",
|
||||
"game-ended":"<b>Oh nein!</b> <br/>Es sieht so aus, als ob du schon alle Level gespielt hast... <br/>Schau später noch einmal rein, evtl gibt es dann neue Level.",
|
||||
|
||||
"play":"Spielen!",
|
||||
|
||||
"not-enough-coins": "Du hast zu wenig Münzen!",
|
||||
"sync-error": "Es gab einen Fehler beim Aktualisieren der Level. Bitte stelle sicher, dass du eine aktive Internetverbindung hast und versuche es später erneut.",
|
||||
"game-ended": "<b>Oh nein!</b> <br/>Es sieht so aus, als ob du schon alle Level gespielt hast... <br/>Schau später noch einmal rein, evtl gibt es dann neue Level.",
|
||||
"play": "Spielen!",
|
||||
"tutorial-step-1": "Klicke auf ein Feld, um dieses rotieren zu lassen!",
|
||||
"tutorial-step-2": "Um zu gewinnen, drehe die Segmente so, dass du zwei Wörter lesen kannst.",
|
||||
"tutorial-step-3": "Die Hilfe löst ein Segment, kostet aber 25 Münzen. Probiere jetzt die Hilfe aus.",
|
||||
"tutorial-step-4": "Große Segmente drehst du, indem du diese ziehst.",
|
||||
"extra-coins-after-first-level":"Für das erste Level gibt es 50 extra Münzen!",
|
||||
|
||||
"dark":"Dunkel",
|
||||
"theme":"Theme:",
|
||||
"sound":"Sound:",
|
||||
"music":"Musik:",
|
||||
"credits":"Credits",
|
||||
"privacy-policy":"Datenschutzbestimmungen",
|
||||
"impressum":"Impressum",
|
||||
"track":"Anonymisierte Nutzungsdaten senden:",
|
||||
">":">",
|
||||
"choose-theme-dialog-title":"Theme auswählen:",
|
||||
"install":"Installieren",
|
||||
"share-dialog":"Teilen:",
|
||||
|
||||
"credits-sister-text":"Ich danke meiner Lieblingsschwester, denn ohne Sie würde diese App nicht so aussehen, wie sie aussieht (wahrscheinlich eher schlechter :p)",
|
||||
"credits-coin-text":"Sound:<br/>Der Münz-Sound ist von der Webseite <a href = '{0}' target='_blank' rel='noopener' class = 'link'>{0}</a>. Alle Rechte für diesen Münz-Sound gehören <a target='_blank' rel='noopener' href = '{0}' class = 'link'>{0}</a>.",
|
||||
"credits-music-text":"Musik:<br/>Bright And Beautiful - GEMAfreie Musik von <a href = '{0}' target='_blank' rel='noopener' class = 'link'>{0}</a><br/>Licensed under Creative Commons: By Attribution 4.0 International (CC BY 4.0)<br/><a href = '{1}' target='_blank' rel='noopener' class = 'link'>{1}</a><br/>Angepasst (geschnitten) für diese App",
|
||||
"storage-info":"Ungef. {0}/{1}MB genutzt ({2}%, {3} dauerhaft gespeichert)",
|
||||
"storage-permission-not-get":"Der Browser gibt nicht die Erlaubnis zur dauerhaften Speicherung...",
|
||||
"storage-permission-get":"Die Daten sind nun dauerhaft gespeichert"
|
||||
"extra-coins-after-first-level": "Für das erste Level gibt es 50 extra Münzen!",
|
||||
"dark": "Dunkel",
|
||||
"theme": "Theme:",
|
||||
"sound": "Sound:",
|
||||
"music": "Musik:",
|
||||
"credits": "Credits",
|
||||
"privacy-policy": "Datenschutzbestimmungen",
|
||||
"impressum": "Impressum",
|
||||
"track": "Anonymisierte Nutzungsdaten senden:",
|
||||
">": ">",
|
||||
"choose-theme-dialog-title": "Theme auswählen:",
|
||||
"install": "Installieren",
|
||||
"share-dialog": "Teilen:",
|
||||
"credits-sister-text": "Ich danke meiner Lieblingsschwester, denn ohne Sie würde diese App nicht so aussehen, wie sie aussieht (wahrscheinlich eher schlechter :p)",
|
||||
"credits-coin-text": "Sound:<br/>Der Münz-Sound ist von der Webseite <a href = '{0}' target='_blank' rel='noopener' class = 'link'>{0}</a>. Alle Rechte für diesen Münz-Sound gehören <a target='_blank' rel='noopener' href = '{0}' class = 'link'>{0}</a>.",
|
||||
"credits-music-text": "Musik:<br/>Bright And Beautiful - GEMAfreie Musik von <a href = '{0}' target='_blank' rel='noopener' class = 'link'>{0}</a><br/>Licensed under Creative Commons: By Attribution 4.0 International (CC BY 4.0)<br/><a href = '{1}' target='_blank' rel='noopener' class = 'link'>{1}</a><br/>Angepasst (geschnitten) für diese App",
|
||||
"storage-info": "Daten {0} dauerhaft gespeichert",
|
||||
"storage-permission-not-get": "Der Browser gibt nicht die Erlaubnis zur dauerhaften Speicherung...",
|
||||
"storage-permission-get": "Die Daten sind nun dauerhaft gespeichert",
|
||||
"persist-storage-dialog-title": "Daten dauerhaft speichern?",
|
||||
"persist-storage-dialog-message": "Der Fortschritt und die Level dieser WebApp sind nur temporär gespeichert. Damit die Daten dauerhaft gespeichert werden, muss eins von drei Kriterien erfüllt sein:<br/>1) Die Seite muss als Lesezeichen gespeichert werden (und maximal 5 Lesezeichen ingsesamt).<br/>2) Die Seite muss mit die meistbenutzte Seite sein. <br/>3) Benachrichtigungen müssen erlaubt werden.<br/>Damit die Daten dieser Webseite nicht gelöscht werden, erlaube bitte Benachrichtigungen. Alternativ kannst du die Seite auch als Lesezeichen speichern.",
|
||||
"notification-permission-denied":"Die Berechtigung für Benachrichtigungen wurde verwährt",
|
||||
"already-persisted-dialog-message":"Damit die Daten dauerhaft gespeichert werden, muss eins von drei Kriterien erfüllt sein:<br/>1) Die Seite muss als Lesezeichen gespeichert werden (und maximal 5 Lesezeichen ingsesamt).<br/>2) Die Seite muss mit die meistbenutzte Seite sein. <br/>3) Benachrichtigungen müssen erlaubt werden.<br/> Du erfüllst schon ein Kriterium und daher wird dein Fortschritt dauerhaft gespeichert (außer du löscht sie)",
|
||||
"already-persisted-dialog-title":"Daten werden dauerhaft gespeichert!"
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user