summaryrefslogtreecommitdiff
path: root/site/i18n.js
diff options
context:
space:
mode:
Diffstat (limited to 'site/i18n.js')
-rw-r--r--site/i18n.js67
1 files changed, 67 insertions, 0 deletions
diff --git a/site/i18n.js b/site/i18n.js
new file mode 100644
index 0000000..38ffe7b
--- /dev/null
+++ b/site/i18n.js
@@ -0,0 +1,67 @@
+
+
+
+let langs = {
+ en : {
+ // error message in case the survey url was obviously invalid (currently only the case if none was given)
+ "Error: nothing here": "There's nothing here. Maybe try appending something after the url?\n\nAlternatively, check to see if you copied the whole url.",
+ // error message in case the http request on the survey url returned a status code that wasn't 200
+ "Error: survey doesn't exist": "Could not load this survey; are you sure that it exists?",
+ // error message in case the survey url was loaded, but had some obviously invalid format (i.e. neither json nor age encryption)
+ "Error: unknown format": "Could not load this survey; it appears to be in a wrong or unknown format.",
+ // text fragment in error messages, after which the survey url will be printed
+ "attempted path:": "Attempted path:",
+ // prompt for a passphrase
+ "please enter passphrase": "please enter a passphrase to access the survey:",
+ // error message in case decryption failed
+ "passphrase incorrect": "passphrase was incorrect!",
+ // document title for the decryption dialog
+ "Enter Passphrase": "Enter Passphrase",
+ // header of the decryption dialog
+ "Passphrase": "Passphrase",
+ // the text on the "decrypt" button
+ "decrypt": "decrypt",
+ // the text on the "submit" button
+ "submit": "submit",
+ // error message in case the given answers were invalid
+ "Error: answers invalid":"Cannot submit: not all required questions were filled in!",
+ // error message in case the post request failed entirely (i.e. printed if the .catch-clause of the fetch() function is reached)
+ "Error: could not post":"Error: The http POST request did not succeed.",
+ // error message in case the post request returned some other status code than 200; its status code and message will be appended in the next line after the text given here
+ "Error: post returned error":"Error: The http POST request returned an error code:"
+ },
+ de : {
+ "Error: nothing here": "Hier ist nichts. Evtl. hilft es, etwas hinten an die url dranzuhängen?\n\nAnsonsten: bist du dir sicher, dass du den ganzen Link hierher kopiert hast?",
+ "Error: survey doesn't exist": "Diese Umfrage konnte nicht geladen werden. Bist du sicher, dass sie existiert?",
+ "Error: unknown format": "Diese Umfrage scheint ein unbekanntes Format zu haben und konnte nicht angezeigt werden",
+ "attempted path:": "Abgerufener Pfad:",
+ "please enter passphrase": "Bitte gebe eine Passphrase ein, um die Umfrage zu entschlüsseln",
+ "passphrase incorrect": "Passphrase war nicht korrekt!",
+ "Passphrase": "Passphrase",
+ "decrypt":"entschlüsseln",
+ "submit":"absenden",
+ "Enter Passphrase": "Passphrase eingeben",
+ "Error: answers invalid":"Einige verpflichtenden Antworten fehlen!",
+ "Error: could not post":"Fehler: Die http POST Anfrage schlug fehl.",
+ "Error: post returned error":"Fehler: Die http POST Anfragen schlug fehl und gab einen Fehlercode zurück:"
+ }
+}
+
+// we use english by default until something else is set
+let locale = "en";
+
+// the main translation function. if no fitting translation
+// is found, it returns the key as a fallback value
+// (therefore, keys should themselves be understandable texts)
+export function _(key) {
+ console.log("getting translation for ", locale, key);
+ return !(locale in langs) ? key
+ : !(key in langs[locale]) ? key
+ : langs[locale][key]
+}
+
+export function setLang (loc) {
+ locale = loc;
+}
+
+export default _;