diff --git a/public/js/focus-creator.js b/public/js/focus-creator.js index 30e8739c3e6a84246401b54dd569e2c499b2fc3e..faac14f4c83172a2cbd00a9985e6b8bc1f266830 100644 --- a/public/js/focus-creator.js +++ b/public/js/focus-creator.js @@ -357,3 +357,69 @@ function checkboxCheckListener (event) { function setCheckedForAllWithName (name, checked) { $('.focusCheckbox[name=' + name + ']').prop('checked', checked); } + +/** + * Übersetzt den Key in die aktuelle Sprache. + * Die Sprache kann optional auch explizit angegeben werden. + * Verwendung: t('KEY') + */ + +// Speichert die Übersetzungen +var translations = { + 'de': { + 'select-engine': 'Bitte mindestens 1 Suchmaschine auswählen.', + 'select-valid-name': 'Bitte gültigen Namen eingeben:\n* Keine Sonderzeichen\n* Mindestens 1 Buchstabe\n', + 'confirm-overwrite-name': 'Name bereits genutzt.\nÜberschreiben?', + 'saved-settings': 'Auf der folgenden Startseite sind Ihre Einstellungen nun einmalig gespeichert. Nach Ihrer ersten Suche sind diese wieder verloren. Wenn Sie diese speichern möchten, können Sie sich allerdings ein Lesezeichen für die generierte Startseite einrichten.', + 'generated-plugin': 'Ihr Browserplugin mit den persönlichen Sucheinstellungen wurde generiert. Folgen Sie bitte der Anleitung auf der folgenden Seite um es zu installieren. Beachten Sie: Zuvor sollten Sie ein eventuell bereits installiertes MetaGer-Plugin entfernen.', + 'result-saver.title': 'Gespeicherte Ergebnisse', + 'result-saver.filter': 'Filtern', + 'result-saver.sort.chronological': 'Chronologisch', + 'result-saver.sort.ranking': 'MetaGer-Ranking', + 'result-saver.sort.alphabetical': 'Alphabetisch (Hostname)', + 'result-saver.delete': 'Ergebnis aus dem Speicher löschen' + }, + + 'en': { + 'select-engine': 'Please select at least 1 search engine.', + 'select-valid-name': 'No characters other than a-z, A-Z, 0-9, ä, ö, ü, ß, -, _ allowed, at least 1 character', + 'confirm-overwrite-name': 'Name already in use.\nOverwrite?', + 'saved-settings': 'On the following startpage your settings are saved one-time. They will be lost after your first search. Though if you want to save them, you can create a bookmark for the generated startpage.', + 'generated-plugin': 'Your browser plugin with personal settings was generated. Please follow the instructions on the following page to install it. Notice that beforehand you might have to delete a former MetaGer plugin.', + 'result-saver.title': 'Saved Results', + 'result-saver.filter': 'Filter', + 'result-saver.sort.chronological': 'Chronological', + 'result-saver.sort.ranking': 'MetaGer-Ranking', + 'result-saver.sort.alphabetical': 'Alphabetical (Hostname)', + 'result-saver.delete': 'Delete saved Result' + }, + + 'es': { + 'select-engine': 'Por favor, seleccione al menos un motor de búsqueda.', + 'select-valid-name': 'Por favor, introduzca un nombre válido constituido por letras y números.', + 'confirm-overwrite-name': 'Nombre ya ha sido elegido.\n¿Substituirlo?', + // 'saved-settings': '', + // 'generated-plugin': '' + // 'result-saver.sort.chronological': 'Chronologisch', + // 'result-saver.sort.ranking': 'MetaGer-Ranking', + // 'result-saver.sort.alphabetical': 'Alphabetisch (Hostname)', + // 'result-saver.delete': 'Ergebnis aus dem Speicher löschen', + } +}; + +/** + * Übersetzt den gegebenen Schlüssel in der gegebenen Sprache + * Gibt standardmäßig deutsche Sprachstrings zurück, da davon ausgegangen werden kann, dass diese immer vorhanden sind + * @param {string} key Zu übersetzender Schlüssel + * @param {string} lang Zu verwendende Sprache + */ +function t (key, lang) { + if (arguments.length == 1) { + var lang = $('html').attr('lang'); + return translations[lang][key]; + } else if (arguments.length == 2 && translations[lang] && translations[lang][key]) { + return translations[lang][key]; + } else { + return translations.de[key]; + } +} diff --git a/public/js/searchbar.js b/public/js/searchbar.js index 16e3a4dd26abe58fa2d8856193fe5bcac9657910..9ab409500fc409d254b9191ffcf6cb187f0aedc3 100644 --- a/public/js/searchbar.js +++ b/public/js/searchbar.js @@ -36,4 +36,69 @@ function setSettings () { if (requestMethod !== null && (requestMethod === 'GET' || requestMethod === 'POST')) { $('#searchForm').attr('method', requestMethod); } -} \ No newline at end of file +} +/** + * Übersetzt den Key in die aktuelle Sprache. + * Die Sprache kann optional auch explizit angegeben werden. + * Verwendung: t('KEY') + */ + +// Speichert die Übersetzungen +var translations = { + 'de': { + 'select-engine': 'Bitte mindestens 1 Suchmaschine auswählen.', + 'select-valid-name': 'Bitte gültigen Namen eingeben:\n* Keine Sonderzeichen\n* Mindestens 1 Buchstabe\n', + 'confirm-overwrite-name': 'Name bereits genutzt.\nÜberschreiben?', + 'saved-settings': 'Auf der folgenden Startseite sind Ihre Einstellungen nun einmalig gespeichert. Nach Ihrer ersten Suche sind diese wieder verloren. Wenn Sie diese speichern möchten, können Sie sich allerdings ein Lesezeichen für die generierte Startseite einrichten.', + 'generated-plugin': 'Ihr Browserplugin mit den persönlichen Sucheinstellungen wurde generiert. Folgen Sie bitte der Anleitung auf der folgenden Seite um es zu installieren. Beachten Sie: Zuvor sollten Sie ein eventuell bereits installiertes MetaGer-Plugin entfernen.', + 'result-saver.title': 'Gespeicherte Ergebnisse', + 'result-saver.filter': 'Filtern', + 'result-saver.sort.chronological': 'Chronologisch', + 'result-saver.sort.ranking': 'MetaGer-Ranking', + 'result-saver.sort.alphabetical': 'Alphabetisch (Hostname)', + 'result-saver.delete': 'Ergebnis aus dem Speicher löschen' + }, + + 'en': { + 'select-engine': 'Please select at least 1 search engine.', + 'select-valid-name': 'No characters other than a-z, A-Z, 0-9, ä, ö, ü, ß, -, _ allowed, at least 1 character', + 'confirm-overwrite-name': 'Name already in use.\nOverwrite?', + 'saved-settings': 'On the following startpage your settings are saved one-time. They will be lost after your first search. Though if you want to save them, you can create a bookmark for the generated startpage.', + 'generated-plugin': 'Your browser plugin with personal settings was generated. Please follow the instructions on the following page to install it. Notice that beforehand you might have to delete a former MetaGer plugin.', + 'result-saver.title': 'Saved Results', + 'result-saver.filter': 'Filter', + 'result-saver.sort.chronological': 'Chronological', + 'result-saver.sort.ranking': 'MetaGer-Ranking', + 'result-saver.sort.alphabetical': 'Alphabetical (Hostname)', + 'result-saver.delete': 'Delete saved Result' + }, + + 'es': { + 'select-engine': 'Por favor, seleccione al menos un motor de búsqueda.', + 'select-valid-name': 'Por favor, introduzca un nombre válido constituido por letras y números.', + 'confirm-overwrite-name': 'Nombre ya ha sido elegido.\n¿Substituirlo?', + // 'saved-settings': '', + // 'generated-plugin': '' + // 'result-saver.sort.chronological': 'Chronologisch', + // 'result-saver.sort.ranking': 'MetaGer-Ranking', + // 'result-saver.sort.alphabetical': 'Alphabetisch (Hostname)', + // 'result-saver.delete': 'Ergebnis aus dem Speicher löschen', + } +}; + +/** + * Übersetzt den gegebenen Schlüssel in der gegebenen Sprache + * Gibt standardmäßig deutsche Sprachstrings zurück, da davon ausgegangen werden kann, dass diese immer vorhanden sind + * @param {string} key Zu übersetzender Schlüssel + * @param {string} lang Zu verwendende Sprache + */ +function t (key, lang) { + if (arguments.length == 1) { + var lang = $('html').attr('lang'); + return translations[lang][key]; + } else if (arguments.length == 2 && translations[lang] && translations[lang][key]) { + return translations[lang][key]; + } else { + return translations.de[key]; + } +} diff --git a/resources/assets/js/result-saver.js b/resources/assets/js/result-saver.js index 444fb5dde8b0e210c222a7da5145b86a5efd7683..68f30cd3315239f54b9cff083ae828916d01f2ed 100644 --- a/resources/assets/js/result-saver.js +++ b/resources/assets/js/result-saver.js @@ -57,8 +57,8 @@ Results.prototype.sortResults = function () { break; case 'alphabetical': // by hostname this.results.sort(function (a, b) { - if (b.hostname > a.hostname) return -1; - if (b.hostname < a.hostname) return 1; + if (b.hosterName > a.hosterName) return -1; + if (b.hosterName < a.hosterName) return 1; return 0; }); break; @@ -78,7 +78,7 @@ Results.prototype.loadAllResults = function () { // Remove the prefix key = key.substr(this.prefix.length); // Create the result for this key by loading it from localstorage - var tmpResult = new Result(undefined, undefined, undefined, undefined, undefined, undefined, key); + var tmpResult = new Result(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, key); // Add the result to the list of results this.results.push(tmpResult); } @@ -141,13 +141,13 @@ Results.prototype.addToContainer = function (container) { var options = $('\