Browse Source

feat: use yaml locale files

Gerald 9 years ago
parent
commit
d9fb27aca8

+ 3 - 0
gulpfile.js

@@ -21,6 +21,7 @@ const paths = {
     'src/**/*.js',
     'src/**/*.html',
     'src/**/*.json',
+    'src/**/*.yml',
   ],
   copy: [
     'src/*.js',
@@ -97,6 +98,7 @@ gulp.task('copy-i18n', () => (
     touchedOnly: true,
     useDefaultLang: true,
     markUntouched: false,
+    extension: '.json',
   }))
   .pipe(gulp.dest('dist'))
 ));
@@ -119,6 +121,7 @@ gulp.task('i18n', () => (
     touchedOnly: false,
     useDefaultLang: false,
     markUntouched: true,
+    extension: '.yml',
   }))
   .pipe(gulp.dest('src'))
 ));

+ 1 - 0
package.json

@@ -21,6 +21,7 @@
     "gulp-replace": "^0.5.4",
     "gulp-util": "^3.0.7",
     "html-minifier": "^1.1.1",
+    "js-yaml": "^3.5.5",
     "merge2": "^1.0.1",
     "ncp": "^2.0.0",
     "through2": "^2.0.1",

+ 56 - 15
scripts/i18n.js

@@ -1,23 +1,48 @@
 'use strict';
 
+const fs = require('fs');
+const path = require('path');
 const gutil = require('gulp-util');
 const through = require('through2');
-const fs = require('fs');
+const yaml = require('js-yaml');
+
+function readFile(file) {
+  return new Promise((resolve, reject) => {
+    fs.readFile(file, 'utf8', (err, data) => err ? reject(err) : resolve(data));
+  });
+}
 
-function Locale(lang, path, base) {
+function Locale(lang, _path, base) {
   this.lang = lang;
-  this.path = path;
+  const ext = this.ext = path.extname(_path);
+  if (ext) _path = _path.slice(0, -ext.length);
+  this.path = _path;
   this.base = base || '.';
   this.data = {};
-  this.loaded = this.read();
+  this.loaded = this.load();
 }
-Locale.prototype.read = function () {
-  return new Promise((resolve, reject) => {
-    const file = this.base + '/' + this.path;
-    fs.readFile(file, 'utf8', (err, data) => err ? reject(err) : resolve(data));
-  }).then((data) => {
+Locale.prototype.extensions = ['.yml', '.json'];
+Locale.prototype.load = function () {
+  const file = this.base + '/' + this.path;
+  return (
+    this.ext
+      ? readFile(file + this.ext)
+      : this.extensions.reduce((promise, ext) => promise.catch(() => (
+        readFile(file + ext)
+        .then(data => {
+          this.ext = ext;
+          return data;
+        })
+      )), Promise.reject())
+  ).then(data => {
     const desc = {};
-    data = JSON.parse(data);
+    if (this.ext === '.json') {
+      data = JSON.parse(data);
+    } else if (this.ext === '.yml') {
+      data = yaml.safeLoad(data);
+    } else {
+      throw 'Unknown extension name!';
+    }
     for (let key in data) {
       this.data[key] = data[key].message;
       desc[key] = data[key].description;
@@ -28,6 +53,20 @@ Locale.prototype.read = function () {
 Locale.prototype.get = function (key, def) {
   return this.data[key] || def;
 };
+Locale.prototype.dump = function (data, ext) {
+  ext = ext || this.ext;
+  if (ext === '.json') {
+    data = JSON.stringify(data, null, 2);
+  } else if (ext === '.yml') {
+    data = yaml.safeDump(data);
+  } else {
+    throw 'Unknown extension name!';
+  }
+  return {
+    path: this.path + ext,
+    data,
+  };
+};
 
 function Locales(prefix, base) {
   this.prefix = prefix || '.';
@@ -49,7 +88,7 @@ Locales.prototype.load = function () {
   return this.getLanguages().then((langs) => {
     this.langs = langs;
     return Promise.all(langs.map((lang) => {
-      const locale = this.data[lang] = new Locale(lang, `${this.prefix}/${lang}/messages.json`, this.base);
+      const locale = this.data[lang] = new Locale(lang, `${this.prefix}/${lang}/messages`, this.base);
       return locale.loaded;
     }));
   }).then((data) => {
@@ -79,13 +118,14 @@ Locales.prototype.getData = function (lang, options) {
   return data;
 };
 Locales.prototype.dump = function (options) {
-  return this.langs.map((lang) => {
+  return this.langs.map(lang => {
     const data = this.getData(lang, options);
-    const string = JSON.stringify(data, null, 2);
+    const locale = this.data[lang];
+    const out = locale.dump(data, options.extension);
     return new gutil.File({
       base: '',
-      path: this.data[lang].path,
-      contents: new Buffer(string),
+      path: out.path,
+      contents: new Buffer(out.data),
     });
   });
 };
@@ -143,6 +183,7 @@ function extract(options) {
         touchedOnly: options.touchedOnly,
         useDefaultLang: options.useDefaultLang,
         markUntouched: options.markUntouched,
+        extension: options.extension,
       });
     }).then((files) => {
       files.forEach((file) => {

+ 0 - 449
src/_locales/cs/messages.json

@@ -1,449 +0,0 @@
-{
-  "extName": {
-    "description": "Name of this extension.",
-    "message": "Violentmonkey"
-  },
-  "extDescription": {
-    "description": "Description for this extension.",
-    "message": "Podpora uživatelských skriptů pro Opera."
-  },
-  "extTranslator": {
-    "description": "Information of the translator.",
-    "message": "ahoj1234; nfsmaniac",
-    "touched": false
-  },
-  "msgUpdated": {
-    "description": "Message shown when a script is updated/reinstalled.",
-    "message": "Skript aktualizován."
-  },
-  "msgErrorFetchingScript": {
-    "description": "Message shown when Violentmonkey fails fetching a new version of the script.",
-    "message": "Chyba při načítání skritpu!"
-  },
-  "msgInstalled": {
-    "description": "Message shown when a script is installed.",
-    "message": "Skript nainstalován."
-  },
-  "Warning": {
-    "description": "Show warnings with a notification.",
-    "message": "Varování"
-  },
-  "msgWarnGrant": {
-    "description": "Message shown when `@grant` is not found in a script.",
-    "message": "Skript [$1] nemá žádné ‚@grant‘ řádky! Klikněte pro více podprobností."
-  },
-  "labelNoName": {
-    "description": "Text as the name of a script when no @name is assigned.",
-    "message": "Jméno skriptu nebylo určeno."
-  },
-  "msgUpdating": {
-    "description": "Message shown when a new version of script is being fetched.",
-    "message": "Aktualizuji..."
-  },
-  "msgNewVersion": {
-    "description": "Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided.",
-    "message": "Nalezena nová verze."
-  },
-  "msgCheckingForUpdate": {
-    "description": "Message shown when a script is being checked for updates by version numbers.",
-    "message": "Kontroluji aktualizace..."
-  },
-  "msgErrorFetchingUpdateInfo": {
-    "description": "Message shown when Violentmonkey fails fetching version data of the script.",
-    "message": "Načtení informací o aktualizaci se nezdařilo."
-  },
-  "msgNoUpdate": {
-    "description": "Message shown when there is no new version of a script.",
-    "message": "Aktualizace nenalezena."
-  },
-  "labelInstall": {
-    "description": "Shown in the title of the confirm page while trying to install a script.",
-    "message": "Instaluji skript"
-  },
-  "buttonInstallOptions": {
-    "description": "Button to show options of installation confirm page.",
-    "message": "Možnosti"
-  },
-  "installOptionClose": {
-    "description": "Option to close confirm window after installation.",
-    "message": "Zavřít po instalaci"
-  },
-  "installOptionTrack": {
-    "description": "Option to track the loading local file before window is closed.",
-    "message": "Sledovat místní soubor před zavřením tohoto okna"
-  },
-  "buttonConfirmInstallation": {
-    "description": "Button to confirm installation of a script.",
-    "message": "Potvrdit instalaci"
-  },
-  "buttonClose": {
-    "description": "Button to close window.",
-    "message": "Zavřít"
-  },
-  "msgErrorLoadingData": {
-    "description": "Message shown on confirm page when the script to be installed cannot be loaded.",
-    "message": "Chyba při načítání skriptu."
-  },
-  "msgLoadedData": {
-    "description": "Message shown in the confirm page when a javascript file to be installed is loaded.",
-    "message": "Skript načten."
-  },
-  "msgErrorLoadingDependency": {
-    "description": "Message shown when not all requirements are loaded successfully.",
-    "message": "Chyba při načítání požadavků."
-  },
-  "msgLoadingDependency": {
-    "description": "Message shown on confirm page when the requirements are being downloaded.",
-    "message": "Vkládání požadavků... ($1/$2)"
-  },
-  "msgScriptURL": {
-    "description": "URL of the script to be installed on confirm page.",
-    "message": "Umístění skriptu: $1",
-    "touched": false
-  },
-  "msgLoadingData": {
-    "description": "Message shown on confirm page when the script to be installed is loading.",
-    "message": "Nahrávám skript..."
-  },
-  "sideMenuInstalled": {
-    "description": "Side menu: Installed scripts",
-    "message": "Nainstalované skripty"
-  },
-  "sideMenuSettings": {
-    "description": "Side menu: Settings",
-    "message": "Nastavení"
-  },
-  "sideMenuAbout": {
-    "description": "Side menu: About",
-    "message": "O rozšíření"
-  },
-  "buttonNew": {
-    "description": "Button to create a new script.",
-    "message": "Nový"
-  },
-  "buttonUpdateAll": {
-    "description": "Check all scripts for updates.",
-    "message": "Zkontrolovat aktualizace"
-  },
-  "anchorGetMoreScripts": {
-    "description": "Link to get more scripts.",
-    "message": "Získej více skritpů"
-  },
-  "msgLoading": {
-    "description": "Message shown in the options page before script list is loaded.",
-    "message": "Nahrávám..."
-  },
-  "labelSettings": {
-    "description": "Label shown on the top of settings page",
-    "message": "Nastavení"
-  },
-  "labelAutoUpdate": {
-    "description": "Option to allow automatically checking scripts for updates every 24 hours.",
-    "message": "Automaticky kontrolovat aktualizace skriptu každý den"
-  },
-  "labelIgnoreGrant": {
-    "description": "Option to suppress no @grant warnings.",
-    "message": "Zobrazovat všechna @grant varování"
-  },
-  "labelInjectMode": {
-    "description": "Label for a combo box to choose script injection modes.",
-    "message": "Způsob podvržení skriptu:"
-  },
-  "injectModeNormal": {
-    "description": "Script injection mode: Normal",
-    "message": "Obyčejný"
-  },
-  "injectModeAdvanced": {
-    "description": "Script injection mode: Advanced",
-    "message": "Pokročilý"
-  },
-  "labelDataImport": {
-    "description": "Section title of data import.",
-    "message": "Obnova dat"
-  },
-  "buttonImportData": {
-    "description": "Button to choose a file for data import.",
-    "message": "Obnovit ze souboru ZIP"
-  },
-  "buttonVacuum": {
-    "description": "Button to vacuum extension data.",
-    "message": "Vyprázdnit data"
-  },
-  "labelDataExport": {
-    "description": "Section title of data export.",
-    "message": "Záloha dat"
-  },
-  "labelScriptsToExport": {
-    "description": "Label shown on top of the script list for export.",
-    "message": "Skripty k zálohování"
-  },
-  "labelExportScriptData": {
-    "description": "Option to export script data along with scripts.",
-    "message": "Zálohovat data skriptu"
-  },
-  "buttonAllNone": {
-    "description": "Button to select all scripts or none.",
-    "message": "Vše/Žádný"
-  },
-  "buttonExportData": {
-    "description": "Button to open the data export dialog.",
-    "message": "Zálohovat do souboru ZIP"
-  },
-  "labelAbout": {
-    "description": "Label shown on top of the about page.",
-    "message": "O Violentmonkey"
-  },
-  "labelRelated": {
-    "description": "Label of related links.",
-    "message": "Související odkazy: "
-  },
-  "anchorSupportPage": {
-    "description": "Link to the support page of Violentmonkey.",
-    "message": "<a href=https://github.com/gera2ld/Violentmonkey/wiki target=_blank>Violentmonkey</a>"
-  },
-  "labelDonate": {
-    "description": "Label of link to donate page.",
-    "message": "Přispět"
-  },
-  "labelFeedback": {
-    "description": "Label of link to feedback page.",
-    "message": "Zpětná vazba"
-  },
-  "labelAuthor": {
-    "description": "Label of author shown in the details of a script.",
-    "message": "Autor: "
-  },
-  "anchorAuthor": {
-    "description": "Author shown on about tab.",
-    "message": "<a href=mailto:[email protected]>Gerald</a>"
-  },
-  "labelTranslator": {
-    "description": "Label of translator.",
-    "message": "Překladatel: "
-  },
-  "anchorTranslator": {
-    "description": "Translator shown on about tab.",
-    "message": "<a href=https://www.transifex.com/user/profile/nfsmaniac target=_blank>nfsmaniac</a>"
-  },
-  "labelCurrentLang": {
-    "description": "Label of current language.",
-    "message": "Současný jazyk: "
-  },
-  "labelScriptEditor": {
-    "description": "Shown in the title of the script editing page.",
-    "message": "Úprava skriptu"
-  },
-  "buttonCustomMeta": {
-    "description": "Button to edit the custom meta data of a script.",
-    "message": "Vlastní metadata"
-  },
-  "labelName": {
-    "description": "Label of script name.",
-    "message": "Jméno:"
-  },
-  "labelRunAt": {
-    "description": "Label of script @run-at properties in custom meta data.",
-    "message": "Spustit na: "
-  },
-  "labelRunAtDefault": {
-    "description": "Shown when custom @run-at is not assigned.",
-    "message": "(standardní)"
-  },
-  "labelHomepageURL": {
-    "description": "Label of script @homepageURL in custom meta data.",
-    "message": "Domovská stránka (URL):"
-  },
-  "labelUpdateURL": {
-    "description": "Label of script @updateURL in custom meta data.",
-    "message": "Aktualizace (URL):"
-  },
-  "labelDownloadURL": {
-    "description": "Label of script @downloadURL in custom meta data.",
-    "message": "Stažení (URL):"
-  },
-  "labelInclude": {
-    "description": "Label of @include rules.",
-    "message": "Zahrnout"
-  },
-  "labelKeepInclude": {
-    "description": "Option to keep the original @include rules.",
-    "message": "Dodržovat původní zahrnutí"
-  },
-  "labelCustomInclude": {
-    "description": "Label of custom @include rules.",
-    "message": "Vlastní pravidla pro zahrnování: <em>(Jedno na řádek)</em>"
-  },
-  "labelMatch": {
-    "description": "Label of @match rules.",
-    "message": "Přiřazení"
-  },
-  "labelKeepMatch": {
-    "description": "Option to keep the original @match rules.",
-    "message": "Dodržovat původní přiřazení"
-  },
-  "labelCustomMatch": {
-    "description": "Label of custom @match rules.",
-    "message": "Vlastní pravidla pro přiřazení: <em>(Jedno na řádek)</em>"
-  },
-  "labelExclude": {
-    "description": "Label of @exclude rules.",
-    "message": "Výjimky"
-  },
-  "labelKeepExclude": {
-    "description": "Option to keep the original @exclude rules.",
-    "message": "Dodržovat původní výjimky"
-  },
-  "labelCustomExclude": {
-    "description": "Label of custom @exclude rules.",
-    "message": "Vlastní pravidla pro výjimky: <em>(Jedno na řádek)</em>"
-  },
-  "labelAllowUpdate": {
-    "description": "Option to allow checking updates for a script.",
-    "message": "Povolit aktualizace"
-  },
-  "buttonSave": {
-    "description": "Button to save modifications of a script.",
-    "message": "Uložit"
-  },
-  "buttonSaveClose": {
-    "description": "Button to save modifications of a script and then close the editing page.",
-    "message": "Uložit a zavřít"
-  },
-  "labelNoScripts": {
-    "description": "Message shown when no script is installed.",
-    "message": "Ajaj, zatím nemáte žádné skripty."
-  },
-  "hintSupportPage": {
-    "description": "Hint for support page.",
-    "message": "Stránka podpory",
-    "touched": false
-  },
-  "buttonDisable": {
-    "description": "Button to disable a script.",
-    "message": "Vypnout"
-  },
-  "buttonEnable": {
-    "description": "Button to enable a script.",
-    "message": "Zapnout"
-  },
-  "buttonEdit": {
-    "description": "Button to edit a script.",
-    "message": "Upravit"
-  },
-  "buttonRemove": {
-    "description": "Button to remove a script.",
-    "message": "Odstranit"
-  },
-  "buttonUpdate": {
-    "description": "Check a script for updates.",
-    "message": "Zkontrolovat aktualizace"
-  },
-  "msgImported": {
-    "description": "Message shown after import. There is an argument referring to the count of scripts imported.",
-    "message": "$1 věc(i) jsou obnovenyy."
-  },
-  "hintUseDownloadURL": {
-    "description": "Shown as a place holder for @updateURL when it is not assigned",
-    "message": "Použít @downloadURL"
-  },
-  "confirmNotSaved": {
-    "description": "Confirm message shown when there are unsaved script modifications.",
-    "message": "Úpravy nebyly uloženy! Klikni na OK pro návrat a ztrátu změn, nebo na zrušit pro setrvání na této stránce."
-  },
-  "buttonVacuuming": {
-    "description": "Message shown when data vacuum is in progress.",
-    "message": "Čištení dat..."
-  },
-  "buttonVacuumed": {
-    "description": "Message shown when data is vacuumed.",
-    "message": "Data vyprázdněna"
-  },
-  "hintVacuum": {
-    "description": "Hint for vacuuming data.",
-    "message": "Zbavit se nadbytečného a zkusit znovu načíst chybějící zdroje v mezipaměti."
-  },
-  "menuManageScripts": {
-    "description": "Menu item to manage scripts, or to open the options page of the extension.",
-    "message": "Řízení skriptů"
-  },
-  "menuFindScripts": {
-    "description": "Menu item to find scripts for a site.",
-    "message": "Najdi skripty pro tuto stránku"
-  },
-  "menuScriptEnabled": {
-    "description": "Menu item showing the status of Violentmonkey, when enabled.",
-    "message": "Skripty zapnuty"
-  },
-  "menuScriptDisabled": {
-    "description": "Menu item showing the status of Violentmonkey, when disabled.",
-    "message": ""
-  },
-  "menuBack": {
-    "description": "Menu item to go back to main menu from script commands.",
-    "message": "Zpět"
-  },
-  "menuCommands": {
-    "description": "Menu item to list script commands.",
-    "message": "Skriptové příkazy..."
-  },
-  "labelSearch": {
-    "description": "Label for search input in search box.",
-    "message": "Hledat: "
-  },
-  "labelSearchFor": {
-    "description": "Text shown as a place holder in the search box.",
-    "message": "Vyhledat..."
-  },
-  "labelReplace": {
-    "description": "Label for replace input in search box.",
-    "message": "Nahradit: "
-  },
-  "labelReplaceWith": {
-    "description": "Text shown as a place holder in the replace box.",
-    "message": "Nahradit s..."
-  },
-  "buttonReplace": {
-    "description": "Button to replace the current match.",
-    "message": "Nahradit"
-  },
-  "buttonReplaceAll": {
-    "description": "Button to replace all matches.",
-    "message": "Vše"
-  },
-  "labelAutoReloadCurrentTab": {
-    "description": "Option to reload current tab after a script is switched on or off from menu.",
-    "message": "Znovu načíst současný list po zapnutí či vypnutí skriptu z nabídky."
-  },
-  "hintInjectModeNormal": {
-    "description": "Hint to explain the normal injection mode.",
-    "message": "Účinné, ale selhává na dobře zabezpečených stránkách – např. https://github.com"
-  },
-  "hintInjectModeAdvanced": {
-    "description": "Hint to explain the advanced injection mode.",
-    "message": "Pracuje na většině stránek, současně se jedná o hack."
-  },
-  "hintInputURL": {
-    "description": "Hint for a prompt box to input URL of a user script.",
-    "message": "Adresa skriptu:"
-  },
-  "buttonInstallFromURL": {
-    "description": "Button to ask for URL of a user script.",
-    "message": "Instalovat vzdálený skript"
-  },
-  "labelSync": {
-    "description": "Label for sync options.",
-    "message": ""
-  },
-  "labelSyncDropbox": {
-    "description": "Label for sync to dropbox option.",
-    "message": ""
-  },
-  "buttonAuthorize": {
-    "description": "Button to authorize permissions for sync.",
-    "message": ""
-  },
-  "buttonAuthorized": {
-    "description": "Button shown when permissions are already authorized for sync.",
-    "message": ""
-  }
-}

+ 348 - 0
src/_locales/cs/messages.yml

@@ -0,0 +1,348 @@
+extName:
+  description: Name of this extension.
+  message: Violentmonkey
+extDescription:
+  description: Description for this extension.
+  message: Podpora uživatelských skriptů pro Opera.
+extTranslator:
+  description: Information of the translator.
+  message: ahoj1234; nfsmaniac
+  touched: false
+msgUpdated:
+  description: Message shown when a script is updated/reinstalled.
+  message: Skript aktualizován.
+msgErrorFetchingScript:
+  description: Message shown when Violentmonkey fails fetching a new version of the script.
+  message: 'Chyba při načítání skritpu!'
+msgInstalled:
+  description: Message shown when a script is installed.
+  message: Skript nainstalován.
+Warning:
+  description: Show warnings with a notification.
+  message: Varování
+msgWarnGrant:
+  description: Message shown when `@grant` is not found in a script.
+  message: 'Skript [$1] nemá žádné ‚@grant‘ řádky! Klikněte pro více podprobností.'
+labelNoName:
+  description: Text as the name of a script when no @name is assigned.
+  message: Jméno skriptu nebylo určeno.
+msgUpdating:
+  description: Message shown when a new version of script is being fetched.
+  message: Aktualizuji...
+msgNewVersion:
+  description: 'Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided.'
+  message: Nalezena nová verze.
+msgCheckingForUpdate:
+  description: Message shown when a script is being checked for updates by version numbers.
+  message: Kontroluji aktualizace...
+msgErrorFetchingUpdateInfo:
+  description: Message shown when Violentmonkey fails fetching version data of the script.
+  message: Načtení informací o aktualizaci se nezdařilo.
+msgNoUpdate:
+  description: Message shown when there is no new version of a script.
+  message: Aktualizace nenalezena.
+labelInstall:
+  description: Shown in the title of the confirm page while trying to install a script.
+  message: Instaluji skript
+buttonInstallOptions:
+  description: Button to show options of installation confirm page.
+  message: Možnosti
+installOptionClose:
+  description: Option to close confirm window after installation.
+  message: Zavřít po instalaci
+installOptionTrack:
+  description: Option to track the loading local file before window is closed.
+  message: Sledovat místní soubor před zavřením tohoto okna
+buttonConfirmInstallation:
+  description: Button to confirm installation of a script.
+  message: Potvrdit instalaci
+buttonClose:
+  description: Button to close window.
+  message: Zavřít
+msgErrorLoadingData:
+  description: Message shown on confirm page when the script to be installed cannot be loaded.
+  message: Chyba při načítání skriptu.
+msgLoadedData:
+  description: Message shown in the confirm page when a javascript file to be installed is loaded.
+  message: Skript načten.
+msgErrorLoadingDependency:
+  description: Message shown when not all requirements are loaded successfully.
+  message: Chyba při načítání požadavků.
+msgLoadingDependency:
+  description: Message shown on confirm page when the requirements are being downloaded.
+  message: Vkládání požadavků... ($1/$2)
+msgScriptURL:
+  description: URL of the script to be installed on confirm page.
+  message: 'Umístění skriptu: $1'
+  touched: false
+msgLoadingData:
+  description: Message shown on confirm page when the script to be installed is loading.
+  message: Nahrávám skript...
+sideMenuInstalled:
+  description: 'Side menu: Installed scripts'
+  message: Nainstalované skripty
+sideMenuSettings:
+  description: 'Side menu: Settings'
+  message: Nastavení
+sideMenuAbout:
+  description: 'Side menu: About'
+  message: O rozšíření
+buttonNew:
+  description: Button to create a new script.
+  message: Nový
+buttonUpdateAll:
+  description: Check all scripts for updates.
+  message: Zkontrolovat aktualizace
+anchorGetMoreScripts:
+  description: Link to get more scripts.
+  message: Získej více skritpů
+msgLoading:
+  description: Message shown in the options page before script list is loaded.
+  message: Nahrávám...
+labelSettings:
+  description: Label shown on the top of settings page
+  message: Nastavení
+labelAutoUpdate:
+  description: Option to allow automatically checking scripts for updates every 24 hours.
+  message: Automaticky kontrolovat aktualizace skriptu každý den
+labelIgnoreGrant:
+  description: Option to suppress no @grant warnings.
+  message: Zobrazovat všechna @grant varování
+labelInjectMode:
+  description: Label for a combo box to choose script injection modes.
+  message: 'Způsob podvržení skriptu:'
+injectModeNormal:
+  description: 'Script injection mode: Normal'
+  message: Obyčejný
+injectModeAdvanced:
+  description: 'Script injection mode: Advanced'
+  message: Pokročilý
+labelDataImport:
+  description: Section title of data import.
+  message: Obnova dat
+buttonImportData:
+  description: Button to choose a file for data import.
+  message: Obnovit ze souboru ZIP
+buttonVacuum:
+  description: Button to vacuum extension data.
+  message: Vyprázdnit data
+labelDataExport:
+  description: Section title of data export.
+  message: Záloha dat
+labelScriptsToExport:
+  description: Label shown on top of the script list for export.
+  message: Skripty k zálohování
+labelExportScriptData:
+  description: Option to export script data along with scripts.
+  message: Zálohovat data skriptu
+buttonAllNone:
+  description: Button to select all scripts or none.
+  message: Vše/Žádný
+buttonExportData:
+  description: Button to open the data export dialog.
+  message: Zálohovat do souboru ZIP
+labelAbout:
+  description: Label shown on top of the about page.
+  message: O Violentmonkey
+labelRelated:
+  description: Label of related links.
+  message: 'Související odkazy: '
+anchorSupportPage:
+  description: Link to the support page of Violentmonkey.
+  message: '<a href=https://github.com/gera2ld/Violentmonkey/wiki target=_blank>Violentmonkey</a>'
+labelDonate:
+  description: Label of link to donate page.
+  message: Přispět
+labelFeedback:
+  description: Label of link to feedback page.
+  message: Zpětná vazba
+labelAuthor:
+  description: Label of author shown in the details of a script.
+  message: 'Autor: '
+anchorAuthor:
+  description: Author shown on about tab.
+  message: '<a href=mailto:[email protected]>Gerald</a>'
+labelTranslator:
+  description: Label of translator.
+  message: 'Překladatel: '
+anchorTranslator:
+  description: Translator shown on about tab.
+  message: '<a href=https://www.transifex.com/user/profile/nfsmaniac target=_blank>nfsmaniac</a>'
+labelCurrentLang:
+  description: Label of current language.
+  message: 'Současný jazyk: '
+labelScriptEditor:
+  description: Shown in the title of the script editing page.
+  message: Úprava skriptu
+buttonCustomMeta:
+  description: Button to edit the custom meta data of a script.
+  message: Vlastní metadata
+labelName:
+  description: Label of script name.
+  message: 'Jméno:'
+labelRunAt:
+  description: Label of script @run-at properties in custom meta data.
+  message: 'Spustit na: '
+labelRunAtDefault:
+  description: Shown when custom @run-at is not assigned.
+  message: (standardní)
+labelHomepageURL:
+  description: Label of script @homepageURL in custom meta data.
+  message: 'Domovská stránka (URL):'
+labelUpdateURL:
+  description: Label of script @updateURL in custom meta data.
+  message: 'Aktualizace (URL):'
+labelDownloadURL:
+  description: Label of script @downloadURL in custom meta data.
+  message: 'Stažení (URL):'
+labelInclude:
+  description: Label of @include rules.
+  message: Zahrnout
+labelKeepInclude:
+  description: Option to keep the original @include rules.
+  message: Dodržovat původní zahrnutí
+labelCustomInclude:
+  description: Label of custom @include rules.
+  message: 'Vlastní pravidla pro zahrnování: <em>(Jedno na řádek)</em>'
+labelMatch:
+  description: Label of @match rules.
+  message: Přiřazení
+labelKeepMatch:
+  description: Option to keep the original @match rules.
+  message: Dodržovat původní přiřazení
+labelCustomMatch:
+  description: Label of custom @match rules.
+  message: 'Vlastní pravidla pro přiřazení: <em>(Jedno na řádek)</em>'
+labelExclude:
+  description: Label of @exclude rules.
+  message: Výjimky
+labelKeepExclude:
+  description: Option to keep the original @exclude rules.
+  message: Dodržovat původní výjimky
+labelCustomExclude:
+  description: Label of custom @exclude rules.
+  message: 'Vlastní pravidla pro výjimky: <em>(Jedno na řádek)</em>'
+labelAllowUpdate:
+  description: Option to allow checking updates for a script.
+  message: Povolit aktualizace
+buttonSave:
+  description: Button to save modifications of a script.
+  message: Uložit
+buttonSaveClose:
+  description: Button to save modifications of a script and then close the editing page.
+  message: Uložit a zavřít
+labelNoScripts:
+  description: Message shown when no script is installed.
+  message: 'Ajaj, zatím nemáte žádné skripty.'
+hintSupportPage:
+  description: Hint for support page.
+  message: Stránka podpory
+  touched: false
+buttonDisable:
+  description: Button to disable a script.
+  message: Vypnout
+buttonEnable:
+  description: Button to enable a script.
+  message: Zapnout
+buttonEdit:
+  description: Button to edit a script.
+  message: Upravit
+buttonRemove:
+  description: Button to remove a script.
+  message: Odstranit
+buttonUpdate:
+  description: Check a script for updates.
+  message: Zkontrolovat aktualizace
+msgImported:
+  description: Message shown after import. There is an argument referring to the count of scripts imported.
+  message: $1 věc(i) jsou obnovenyy.
+hintUseDownloadURL:
+  description: Shown as a place holder for @updateURL when it is not assigned
+  message: Použít @downloadURL
+confirmNotSaved:
+  description: Confirm message shown when there are unsaved script modifications.
+  message: 'Úpravy nebyly uloženy! Klikni na OK pro návrat a ztrátu změn, nebo na zrušit pro setrvání na této stránce.'
+buttonVacuuming:
+  description: Message shown when data vacuum is in progress.
+  message: Čištení dat...
+buttonVacuumed:
+  description: Message shown when data is vacuumed.
+  message: Data vyprázdněna
+hintVacuum:
+  description: Hint for vacuuming data.
+  message: Zbavit se nadbytečného a zkusit znovu načíst chybějící zdroje v mezipaměti.
+menuManageScripts:
+  description: 'Menu item to manage scripts, or to open the options page of the extension.'
+  message: Řízení skriptů
+menuFindScripts:
+  description: Menu item to find scripts for a site.
+  message: Najdi skripty pro tuto stránku
+menuScriptEnabled:
+  description: 'Menu item showing the status of Violentmonkey, when enabled.'
+  message: Skripty zapnuty
+menuScriptDisabled:
+  description: 'Menu item showing the status of Violentmonkey, when disabled.'
+  message: ''
+menuBack:
+  description: Menu item to go back to main menu from script commands.
+  message: Zpět
+menuCommands:
+  description: Menu item to list script commands.
+  message: Skriptové příkazy...
+labelSearch:
+  description: Label for search input in search box.
+  message: 'Hledat: '
+labelSearchFor:
+  description: Text shown as a place holder in the search box.
+  message: Vyhledat...
+labelReplace:
+  description: Label for replace input in search box.
+  message: 'Nahradit: '
+labelReplaceWith:
+  description: Text shown as a place holder in the replace box.
+  message: Nahradit s...
+buttonReplace:
+  description: Button to replace the current match.
+  message: Nahradit
+buttonReplaceAll:
+  description: Button to replace all matches.
+  message: Vše
+labelAutoReloadCurrentTab:
+  description: Option to reload current tab after a script is switched on or off from menu.
+  message: Znovu načíst současný list po zapnutí či vypnutí skriptu z nabídky.
+hintInjectModeNormal:
+  description: Hint to explain the normal injection mode.
+  message: 'Účinné, ale selhává na dobře zabezpečených stránkách – např. https://github.com'
+hintInjectModeAdvanced:
+  description: Hint to explain the advanced injection mode.
+  message: 'Pracuje na většině stránek, současně se jedná o hack.'
+hintInputURL:
+  description: Hint for a prompt box to input URL of a user script.
+  message: 'Adresa skriptu:'
+buttonInstallFromURL:
+  description: Button to ask for URL of a user script.
+  message: Instalovat vzdálený skript
+labelSync:
+  description: Label for sync options.
+  message: ''
+buttonAuthorize:
+  description: Button to authorize permissions for sync.
+  message: ''
+buttonAuthorized:
+  description: Button shown when permissions are already authorized for sync.
+  message: ''
+labelSyncTo:
+  description: Label for sync service.
+  message: ''
+lastSync:
+  description: Label for last sync timestamp.
+  message: ''
+msgSyncError:
+  description: Message shown when sync failed.
+  message: ''
+msgSyncing:
+  description: Message shown when sync is in progress.
+  message: ''
+msgSyncInit:
+  description: Message shown when sync service is initializing.
+  message: ''

+ 0 - 449
src/_locales/de/messages.json

@@ -1,449 +0,0 @@
-{
-  "extName": {
-    "description": "Name of this extension.",
-    "message": "Violentmonkey"
-  },
-  "extDescription": {
-    "description": "Description for this extension.",
-    "message": "Userscript-Unterstützung für Opera."
-  },
-  "extTranslator": {
-    "description": "Information of the translator.",
-    "message": "<a href=\"http://blog.scrobble.me\">Adrian Moerchen</a>",
-    "touched": false
-  },
-  "msgUpdated": {
-    "description": "Message shown when a script is updated/reinstalled.",
-    "message": "Das Skript wurde aktualisiert."
-  },
-  "msgErrorFetchingScript": {
-    "description": "Message shown when Violentmonkey fails fetching a new version of the script.",
-    "message": "Fehler beim Herunterladen der neuen Version!"
-  },
-  "msgInstalled": {
-    "description": "Message shown when a script is installed.",
-    "message": "Das Skript wurde installiert."
-  },
-  "Warning": {
-    "description": "Show warnings with a notification.",
-    "message": "Warnung"
-  },
-  "msgWarnGrant": {
-    "description": "Message shown when `@grant` is not found in a script.",
-    "message": "Das Skript [$1] hat keinen Eintrag für `@grant`! Für mehr Details klicken."
-  },
-  "labelNoName": {
-    "description": "Text as the name of a script when no @name is assigned.",
-    "message": "Kein Name"
-  },
-  "msgUpdating": {
-    "description": "Message shown when a new version of script is being fetched.",
-    "message": "Aktualisiere..."
-  },
-  "msgNewVersion": {
-    "description": "Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided.",
-    "message": "Neue Version verfügbar."
-  },
-  "msgCheckingForUpdate": {
-    "description": "Message shown when a script is being checked for updates by version numbers.",
-    "message": "Prüfe auf Aktualisierung..."
-  },
-  "msgErrorFetchingUpdateInfo": {
-    "description": "Message shown when Violentmonkey fails fetching version data of the script.",
-    "message": "Fehler beim Abrufen von Aktualisierungsinformationen."
-  },
-  "msgNoUpdate": {
-    "description": "Message shown when there is no new version of a script.",
-    "message": "Keine Aktualisierung gefunden."
-  },
-  "labelInstall": {
-    "description": "Shown in the title of the confirm page while trying to install a script.",
-    "message": "Skript installieren"
-  },
-  "buttonInstallOptions": {
-    "description": "Button to show options of installation confirm page.",
-    "message": "Optionen"
-  },
-  "installOptionClose": {
-    "description": "Option to close confirm window after installation.",
-    "message": "Nach der Installation schließen"
-  },
-  "installOptionTrack": {
-    "description": "Option to track the loading local file before window is closed.",
-    "message": "Track local file before this window is closed"
-  },
-  "buttonConfirmInstallation": {
-    "description": "Button to confirm installation of a script.",
-    "message": "Installation bestätigen"
-  },
-  "buttonClose": {
-    "description": "Button to close window.",
-    "message": "Schließen"
-  },
-  "msgErrorLoadingData": {
-    "description": "Message shown on confirm page when the script to be installed cannot be loaded.",
-    "message": "Fehler beim Laden der Skriptdaten."
-  },
-  "msgLoadedData": {
-    "description": "Message shown in the confirm page when a javascript file to be installed is loaded.",
-    "message": "Skriptdaten geladen"
-  },
-  "msgErrorLoadingDependency": {
-    "description": "Message shown when not all requirements are loaded successfully.",
-    "message": "Fehler beim Laden der Abhängigkeiten."
-  },
-  "msgLoadingDependency": {
-    "description": "Message shown on confirm page when the requirements are being downloaded.",
-    "message": "Lade Abhängigkeiten... ($1/$2)"
-  },
-  "msgScriptURL": {
-    "description": "URL of the script to be installed on confirm page.",
-    "message": "Skript URL: $1",
-    "touched": false
-  },
-  "msgLoadingData": {
-    "description": "Message shown on confirm page when the script to be installed is loading.",
-    "message": "Skriptdaten werden geladen..."
-  },
-  "sideMenuInstalled": {
-    "description": "Side menu: Installed scripts",
-    "message": "Installierte Skripte"
-  },
-  "sideMenuSettings": {
-    "description": "Side menu: Settings",
-    "message": "Einstellungen"
-  },
-  "sideMenuAbout": {
-    "description": "Side menu: About",
-    "message": "Über"
-  },
-  "buttonNew": {
-    "description": "Button to create a new script.",
-    "message": "Neu"
-  },
-  "buttonUpdateAll": {
-    "description": "Check all scripts for updates.",
-    "message": "Auf Aktualisierungen prüfen"
-  },
-  "anchorGetMoreScripts": {
-    "description": "Link to get more scripts.",
-    "message": "Mehr Skripte finden"
-  },
-  "msgLoading": {
-    "description": "Message shown in the options page before script list is loaded.",
-    "message": "Lade ..."
-  },
-  "labelSettings": {
-    "description": "Label shown on the top of settings page",
-    "message": "Einstellungen"
-  },
-  "labelAutoUpdate": {
-    "description": "Option to allow automatically checking scripts for updates every 24 hours.",
-    "message": "Prüfe täglich auf Aktualisierungen"
-  },
-  "labelIgnoreGrant": {
-    "description": "Option to suppress no @grant warnings.",
-    "message": "Unterdrücke @grant Warnungen"
-  },
-  "labelInjectMode": {
-    "description": "Label for a combo box to choose script injection modes.",
-    "message": "Script injection mode:"
-  },
-  "injectModeNormal": {
-    "description": "Script injection mode: Normal",
-    "message": "Normal"
-  },
-  "injectModeAdvanced": {
-    "description": "Script injection mode: Advanced",
-    "message": "Advanced"
-  },
-  "labelDataImport": {
-    "description": "Section title of data import.",
-    "message": "Importieren"
-  },
-  "buttonImportData": {
-    "description": "Button to choose a file for data import.",
-    "message": "Aus ZIP importieren"
-  },
-  "buttonVacuum": {
-    "description": "Button to vacuum extension data.",
-    "message": "Datenbank säubern"
-  },
-  "labelDataExport": {
-    "description": "Section title of data export.",
-    "message": "Exportieren"
-  },
-  "labelScriptsToExport": {
-    "description": "Label shown on top of the script list for export.",
-    "message": "Skripte"
-  },
-  "labelExportScriptData": {
-    "description": "Option to export script data along with scripts.",
-    "message": "Skriptdaten exportieren"
-  },
-  "buttonAllNone": {
-    "description": "Button to select all scripts or none.",
-    "message": "Alle/Keins"
-  },
-  "buttonExportData": {
-    "description": "Button to open the data export dialog.",
-    "message": "Als ZIP exportieren"
-  },
-  "labelAbout": {
-    "description": "Label shown on top of the about page.",
-    "message": "Über Violentmonkey"
-  },
-  "labelRelated": {
-    "description": "Label of related links.",
-    "message": "Links: "
-  },
-  "anchorSupportPage": {
-    "description": "Link to the support page of Violentmonkey.",
-    "message": "<a href=https://github.com/gera2ld/Violentmonkey/wiki target=_blank>Violentmonkey</a>"
-  },
-  "labelDonate": {
-    "description": "Label of link to donate page.",
-    "message": "Spenden"
-  },
-  "labelFeedback": {
-    "description": "Label of link to feedback page.",
-    "message": "Feedback"
-  },
-  "labelAuthor": {
-    "description": "Label of author shown in the details of a script.",
-    "message": "Autor: "
-  },
-  "anchorAuthor": {
-    "description": "Author shown on about tab.",
-    "message": "<a href=mailto:[email protected]>Gerald</a>"
-  },
-  "labelTranslator": {
-    "description": "Label of translator.",
-    "message": "Übersetzer: "
-  },
-  "anchorTranslator": {
-    "description": "Translator shown on about tab.",
-    "message": "<a href=\"http://blog.scrobble.me\">Adrian Moerchen</a>"
-  },
-  "labelCurrentLang": {
-    "description": "Label of current language.",
-    "message": "Gewählte Sprache: "
-  },
-  "labelScriptEditor": {
-    "description": "Shown in the title of the script editing page.",
-    "message": "Editor"
-  },
-  "buttonCustomMeta": {
-    "description": "Button to edit the custom meta data of a script.",
-    "message": "Eigene Metadaten"
-  },
-  "labelName": {
-    "description": "Label of script name.",
-    "message": "Name:"
-  },
-  "labelRunAt": {
-    "description": "Label of script @run-at properties in custom meta data.",
-    "message": "Run-At:"
-  },
-  "labelRunAtDefault": {
-    "description": "Shown when custom @run-at is not assigned.",
-    "message": "(Standard)"
-  },
-  "labelHomepageURL": {
-    "description": "Label of script @homepageURL in custom meta data.",
-    "message": "Homepage URL:"
-  },
-  "labelUpdateURL": {
-    "description": "Label of script @updateURL in custom meta data.",
-    "message": "Update URL:"
-  },
-  "labelDownloadURL": {
-    "description": "Label of script @downloadURL in custom meta data.",
-    "message": "Download URL:"
-  },
-  "labelInclude": {
-    "description": "Label of @include rules.",
-    "message": "Einschließen (@include)"
-  },
-  "labelKeepInclude": {
-    "description": "Option to keep the original @include rules.",
-    "message": "Ursprüngliche Regeln beibehalten"
-  },
-  "labelCustomInclude": {
-    "description": "Label of custom @include rules.",
-    "message": "Eigene @include-Regeln: <em>(Eine pro Zeile)</em>"
-  },
-  "labelMatch": {
-    "description": "Label of @match rules.",
-    "message": "Übereinstimmungen (@match)"
-  },
-  "labelKeepMatch": {
-    "description": "Option to keep the original @match rules.",
-    "message": "Ursprüngliche Regeln beibehalten"
-  },
-  "labelCustomMatch": {
-    "description": "Label of custom @match rules.",
-    "message": "Eigene @match-Regeln: <em>(Eine pro Zeile)</em>"
-  },
-  "labelExclude": {
-    "description": "Label of @exclude rules.",
-    "message": "Ausschließen (@exclude)"
-  },
-  "labelKeepExclude": {
-    "description": "Option to keep the original @exclude rules.",
-    "message": "Ursprüngliche Regeln beibehalten"
-  },
-  "labelCustomExclude": {
-    "description": "Label of custom @exclude rules.",
-    "message": "Eigene @exclude-Regeln: <em>(Eine pro Zeile)</em>"
-  },
-  "labelAllowUpdate": {
-    "description": "Option to allow checking updates for a script.",
-    "message": "Aktualisierung erlauben"
-  },
-  "buttonSave": {
-    "description": "Button to save modifications of a script.",
-    "message": "Speichern"
-  },
-  "buttonSaveClose": {
-    "description": "Button to save modifications of a script and then close the editing page.",
-    "message": "Speichern & Schließen"
-  },
-  "labelNoScripts": {
-    "description": "Message shown when no script is installed.",
-    "message": "Es ist noch kein Script installiert."
-  },
-  "hintSupportPage": {
-    "description": "Hint for support page.",
-    "message": "Support",
-    "touched": false
-  },
-  "buttonDisable": {
-    "description": "Button to disable a script.",
-    "message": "Deaktivieren"
-  },
-  "buttonEnable": {
-    "description": "Button to enable a script.",
-    "message": "Aktivieren"
-  },
-  "buttonEdit": {
-    "description": "Button to edit a script.",
-    "message": "Bearbeiten"
-  },
-  "buttonRemove": {
-    "description": "Button to remove a script.",
-    "message": "Entfernen"
-  },
-  "buttonUpdate": {
-    "description": "Check a script for updates.",
-    "message": "Auf Aktualisierung prüfen"
-  },
-  "msgImported": {
-    "description": "Message shown after import. There is an argument referring to the count of scripts imported.",
-    "message": "$1 Skript(e) wurden importiert."
-  },
-  "hintUseDownloadURL": {
-    "description": "Shown as a place holder for @updateURL when it is not assigned",
-    "message": "Verwende @downloadURL"
-  },
-  "confirmNotSaved": {
-    "description": "Confirm message shown when there are unsaved script modifications.",
-    "message": "Die Änderungen wurden nicht gespreichert!Zum Verwerfen OK drücken oder Abbrechen um fortzufahren."
-  },
-  "buttonVacuuming": {
-    "description": "Message shown when data vacuum is in progress.",
-    "message": "Säubere Daten..."
-  },
-  "buttonVacuumed": {
-    "description": "Message shown when data is vacuumed.",
-    "message": "Daten gesäubert"
-  },
-  "hintVacuum": {
-    "description": "Hint for vacuuming data.",
-    "message": "Redundazen verwerfen und fehlenden Ressourcen aus dem Cache neuladen."
-  },
-  "menuManageScripts": {
-    "description": "Menu item to manage scripts, or to open the options page of the extension.",
-    "message": "Skripte verwalten"
-  },
-  "menuFindScripts": {
-    "description": "Menu item to find scripts for a site.",
-    "message": "Finde Skripte für diese Seite"
-  },
-  "menuScriptEnabled": {
-    "description": "Menu item showing the status of Violentmonkey, when enabled.",
-    "message": "Skripte aktiviert"
-  },
-  "menuScriptDisabled": {
-    "description": "Menu item showing the status of Violentmonkey, when disabled.",
-    "message": ""
-  },
-  "menuBack": {
-    "description": "Menu item to go back to main menu from script commands.",
-    "message": "Zurück"
-  },
-  "menuCommands": {
-    "description": "Menu item to list script commands.",
-    "message": "Skriptbefehle..."
-  },
-  "labelSearch": {
-    "description": "Label for search input in search box.",
-    "message": "Suche nach: "
-  },
-  "labelSearchFor": {
-    "description": "Text shown as a place holder in the search box.",
-    "message": "Suche nach..."
-  },
-  "labelReplace": {
-    "description": "Label for replace input in search box.",
-    "message": "Ersetzen mit: "
-  },
-  "labelReplaceWith": {
-    "description": "Text shown as a place holder in the replace box.",
-    "message": "Ersetzen mit..."
-  },
-  "buttonReplace": {
-    "description": "Button to replace the current match.",
-    "message": "Ersetzen"
-  },
-  "buttonReplaceAll": {
-    "description": "Button to replace all matches.",
-    "message": "Alle"
-  },
-  "labelAutoReloadCurrentTab": {
-    "description": "Option to reload current tab after a script is switched on or off from menu.",
-    "message": "Neustart der momentanen Tabelle vom Menue nachdem an und aus schalten"
-  },
-  "hintInjectModeNormal": {
-    "description": "Hint to explain the normal injection mode.",
-    "message": ""
-  },
-  "hintInjectModeAdvanced": {
-    "description": "Hint to explain the advanced injection mode.",
-    "message": ""
-  },
-  "hintInputURL": {
-    "description": "Hint for a prompt box to input URL of a user script.",
-    "message": ""
-  },
-  "buttonInstallFromURL": {
-    "description": "Button to ask for URL of a user script.",
-    "message": ""
-  },
-  "labelSync": {
-    "description": "Label for sync options.",
-    "message": ""
-  },
-  "labelSyncDropbox": {
-    "description": "Label for sync to dropbox option.",
-    "message": ""
-  },
-  "buttonAuthorize": {
-    "description": "Button to authorize permissions for sync.",
-    "message": ""
-  },
-  "buttonAuthorized": {
-    "description": "Button shown when permissions are already authorized for sync.",
-    "message": ""
-  }
-}

+ 348 - 0
src/_locales/de/messages.yml

@@ -0,0 +1,348 @@
+extName:
+  description: Name of this extension.
+  message: Violentmonkey
+extDescription:
+  description: Description for this extension.
+  message: Userscript-Unterstützung für Opera.
+extTranslator:
+  description: Information of the translator.
+  message: '<a href="http://blog.scrobble.me">Adrian Moerchen</a>'
+  touched: false
+msgUpdated:
+  description: Message shown when a script is updated/reinstalled.
+  message: Das Skript wurde aktualisiert.
+msgErrorFetchingScript:
+  description: Message shown when Violentmonkey fails fetching a new version of the script.
+  message: 'Fehler beim Herunterladen der neuen Version!'
+msgInstalled:
+  description: Message shown when a script is installed.
+  message: Das Skript wurde installiert.
+Warning:
+  description: Show warnings with a notification.
+  message: Warnung
+msgWarnGrant:
+  description: Message shown when `@grant` is not found in a script.
+  message: 'Das Skript [$1] hat keinen Eintrag für `@grant`! Für mehr Details klicken.'
+labelNoName:
+  description: Text as the name of a script when no @name is assigned.
+  message: Kein Name
+msgUpdating:
+  description: Message shown when a new version of script is being fetched.
+  message: Aktualisiere...
+msgNewVersion:
+  description: 'Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided.'
+  message: Neue Version verfügbar.
+msgCheckingForUpdate:
+  description: Message shown when a script is being checked for updates by version numbers.
+  message: Prüfe auf Aktualisierung...
+msgErrorFetchingUpdateInfo:
+  description: Message shown when Violentmonkey fails fetching version data of the script.
+  message: Fehler beim Abrufen von Aktualisierungsinformationen.
+msgNoUpdate:
+  description: Message shown when there is no new version of a script.
+  message: Keine Aktualisierung gefunden.
+labelInstall:
+  description: Shown in the title of the confirm page while trying to install a script.
+  message: Skript installieren
+buttonInstallOptions:
+  description: Button to show options of installation confirm page.
+  message: Optionen
+installOptionClose:
+  description: Option to close confirm window after installation.
+  message: Nach der Installation schließen
+installOptionTrack:
+  description: Option to track the loading local file before window is closed.
+  message: Track local file before this window is closed
+buttonConfirmInstallation:
+  description: Button to confirm installation of a script.
+  message: Installation bestätigen
+buttonClose:
+  description: Button to close window.
+  message: Schließen
+msgErrorLoadingData:
+  description: Message shown on confirm page when the script to be installed cannot be loaded.
+  message: Fehler beim Laden der Skriptdaten.
+msgLoadedData:
+  description: Message shown in the confirm page when a javascript file to be installed is loaded.
+  message: Skriptdaten geladen
+msgErrorLoadingDependency:
+  description: Message shown when not all requirements are loaded successfully.
+  message: Fehler beim Laden der Abhängigkeiten.
+msgLoadingDependency:
+  description: Message shown on confirm page when the requirements are being downloaded.
+  message: Lade Abhängigkeiten... ($1/$2)
+msgScriptURL:
+  description: URL of the script to be installed on confirm page.
+  message: 'Skript URL: $1'
+  touched: false
+msgLoadingData:
+  description: Message shown on confirm page when the script to be installed is loading.
+  message: Skriptdaten werden geladen...
+sideMenuInstalled:
+  description: 'Side menu: Installed scripts'
+  message: Installierte Skripte
+sideMenuSettings:
+  description: 'Side menu: Settings'
+  message: Einstellungen
+sideMenuAbout:
+  description: 'Side menu: About'
+  message: Über
+buttonNew:
+  description: Button to create a new script.
+  message: Neu
+buttonUpdateAll:
+  description: Check all scripts for updates.
+  message: Auf Aktualisierungen prüfen
+anchorGetMoreScripts:
+  description: Link to get more scripts.
+  message: Mehr Skripte finden
+msgLoading:
+  description: Message shown in the options page before script list is loaded.
+  message: Lade ...
+labelSettings:
+  description: Label shown on the top of settings page
+  message: Einstellungen
+labelAutoUpdate:
+  description: Option to allow automatically checking scripts for updates every 24 hours.
+  message: Prüfe täglich auf Aktualisierungen
+labelIgnoreGrant:
+  description: Option to suppress no @grant warnings.
+  message: Unterdrücke @grant Warnungen
+labelInjectMode:
+  description: Label for a combo box to choose script injection modes.
+  message: 'Script injection mode:'
+injectModeNormal:
+  description: 'Script injection mode: Normal'
+  message: Normal
+injectModeAdvanced:
+  description: 'Script injection mode: Advanced'
+  message: Advanced
+labelDataImport:
+  description: Section title of data import.
+  message: Importieren
+buttonImportData:
+  description: Button to choose a file for data import.
+  message: Aus ZIP importieren
+buttonVacuum:
+  description: Button to vacuum extension data.
+  message: Datenbank säubern
+labelDataExport:
+  description: Section title of data export.
+  message: Exportieren
+labelScriptsToExport:
+  description: Label shown on top of the script list for export.
+  message: Skripte
+labelExportScriptData:
+  description: Option to export script data along with scripts.
+  message: Skriptdaten exportieren
+buttonAllNone:
+  description: Button to select all scripts or none.
+  message: Alle/Keins
+buttonExportData:
+  description: Button to open the data export dialog.
+  message: Als ZIP exportieren
+labelAbout:
+  description: Label shown on top of the about page.
+  message: Über Violentmonkey
+labelRelated:
+  description: Label of related links.
+  message: 'Links: '
+anchorSupportPage:
+  description: Link to the support page of Violentmonkey.
+  message: '<a href=https://github.com/gera2ld/Violentmonkey/wiki target=_blank>Violentmonkey</a>'
+labelDonate:
+  description: Label of link to donate page.
+  message: Spenden
+labelFeedback:
+  description: Label of link to feedback page.
+  message: Feedback
+labelAuthor:
+  description: Label of author shown in the details of a script.
+  message: 'Autor: '
+anchorAuthor:
+  description: Author shown on about tab.
+  message: '<a href=mailto:[email protected]>Gerald</a>'
+labelTranslator:
+  description: Label of translator.
+  message: 'Übersetzer: '
+anchorTranslator:
+  description: Translator shown on about tab.
+  message: '<a href="http://blog.scrobble.me">Adrian Moerchen</a>'
+labelCurrentLang:
+  description: Label of current language.
+  message: 'Gewählte Sprache: '
+labelScriptEditor:
+  description: Shown in the title of the script editing page.
+  message: Editor
+buttonCustomMeta:
+  description: Button to edit the custom meta data of a script.
+  message: Eigene Metadaten
+labelName:
+  description: Label of script name.
+  message: 'Name:'
+labelRunAt:
+  description: Label of script @run-at properties in custom meta data.
+  message: 'Run-At:'
+labelRunAtDefault:
+  description: Shown when custom @run-at is not assigned.
+  message: (Standard)
+labelHomepageURL:
+  description: Label of script @homepageURL in custom meta data.
+  message: 'Homepage URL:'
+labelUpdateURL:
+  description: Label of script @updateURL in custom meta data.
+  message: 'Update URL:'
+labelDownloadURL:
+  description: Label of script @downloadURL in custom meta data.
+  message: 'Download URL:'
+labelInclude:
+  description: Label of @include rules.
+  message: Einschließen (@include)
+labelKeepInclude:
+  description: Option to keep the original @include rules.
+  message: Ursprüngliche Regeln beibehalten
+labelCustomInclude:
+  description: Label of custom @include rules.
+  message: 'Eigene @include-Regeln: <em>(Eine pro Zeile)</em>'
+labelMatch:
+  description: Label of @match rules.
+  message: Übereinstimmungen (@match)
+labelKeepMatch:
+  description: Option to keep the original @match rules.
+  message: Ursprüngliche Regeln beibehalten
+labelCustomMatch:
+  description: Label of custom @match rules.
+  message: 'Eigene @match-Regeln: <em>(Eine pro Zeile)</em>'
+labelExclude:
+  description: Label of @exclude rules.
+  message: Ausschließen (@exclude)
+labelKeepExclude:
+  description: Option to keep the original @exclude rules.
+  message: Ursprüngliche Regeln beibehalten
+labelCustomExclude:
+  description: Label of custom @exclude rules.
+  message: 'Eigene @exclude-Regeln: <em>(Eine pro Zeile)</em>'
+labelAllowUpdate:
+  description: Option to allow checking updates for a script.
+  message: Aktualisierung erlauben
+buttonSave:
+  description: Button to save modifications of a script.
+  message: Speichern
+buttonSaveClose:
+  description: Button to save modifications of a script and then close the editing page.
+  message: 'Speichern & Schließen'
+labelNoScripts:
+  description: Message shown when no script is installed.
+  message: Es ist noch kein Script installiert.
+hintSupportPage:
+  description: Hint for support page.
+  message: Support
+  touched: false
+buttonDisable:
+  description: Button to disable a script.
+  message: Deaktivieren
+buttonEnable:
+  description: Button to enable a script.
+  message: Aktivieren
+buttonEdit:
+  description: Button to edit a script.
+  message: Bearbeiten
+buttonRemove:
+  description: Button to remove a script.
+  message: Entfernen
+buttonUpdate:
+  description: Check a script for updates.
+  message: Auf Aktualisierung prüfen
+msgImported:
+  description: Message shown after import. There is an argument referring to the count of scripts imported.
+  message: $1 Skript(e) wurden importiert.
+hintUseDownloadURL:
+  description: Shown as a place holder for @updateURL when it is not assigned
+  message: Verwende @downloadURL
+confirmNotSaved:
+  description: Confirm message shown when there are unsaved script modifications.
+  message: 'Die Änderungen wurden nicht gespreichert!Zum Verwerfen OK drücken oder Abbrechen um fortzufahren.'
+buttonVacuuming:
+  description: Message shown when data vacuum is in progress.
+  message: Säubere Daten...
+buttonVacuumed:
+  description: Message shown when data is vacuumed.
+  message: Daten gesäubert
+hintVacuum:
+  description: Hint for vacuuming data.
+  message: Redundazen verwerfen und fehlenden Ressourcen aus dem Cache neuladen.
+menuManageScripts:
+  description: 'Menu item to manage scripts, or to open the options page of the extension.'
+  message: Skripte verwalten
+menuFindScripts:
+  description: Menu item to find scripts for a site.
+  message: Finde Skripte für diese Seite
+menuScriptEnabled:
+  description: 'Menu item showing the status of Violentmonkey, when enabled.'
+  message: Skripte aktiviert
+menuScriptDisabled:
+  description: 'Menu item showing the status of Violentmonkey, when disabled.'
+  message: ''
+menuBack:
+  description: Menu item to go back to main menu from script commands.
+  message: Zurück
+menuCommands:
+  description: Menu item to list script commands.
+  message: Skriptbefehle...
+labelSearch:
+  description: Label for search input in search box.
+  message: 'Suche nach: '
+labelSearchFor:
+  description: Text shown as a place holder in the search box.
+  message: Suche nach...
+labelReplace:
+  description: Label for replace input in search box.
+  message: 'Ersetzen mit: '
+labelReplaceWith:
+  description: Text shown as a place holder in the replace box.
+  message: Ersetzen mit...
+buttonReplace:
+  description: Button to replace the current match.
+  message: Ersetzen
+buttonReplaceAll:
+  description: Button to replace all matches.
+  message: Alle
+labelAutoReloadCurrentTab:
+  description: Option to reload current tab after a script is switched on or off from menu.
+  message: Neustart der momentanen Tabelle vom Menue nachdem an und aus schalten
+hintInjectModeNormal:
+  description: Hint to explain the normal injection mode.
+  message: ''
+hintInjectModeAdvanced:
+  description: Hint to explain the advanced injection mode.
+  message: ''
+hintInputURL:
+  description: Hint for a prompt box to input URL of a user script.
+  message: ''
+buttonInstallFromURL:
+  description: Button to ask for URL of a user script.
+  message: ''
+labelSync:
+  description: Label for sync options.
+  message: ''
+buttonAuthorize:
+  description: Button to authorize permissions for sync.
+  message: ''
+buttonAuthorized:
+  description: Button shown when permissions are already authorized for sync.
+  message: ''
+labelSyncTo:
+  description: Label for sync service.
+  message: ''
+lastSync:
+  description: Label for last sync timestamp.
+  message: ''
+msgSyncError:
+  description: Message shown when sync failed.
+  message: ''
+msgSyncing:
+  description: Message shown when sync is in progress.
+  message: ''
+msgSyncInit:
+  description: Message shown when sync service is initializing.
+  message: ''

+ 0 - 449
src/_locales/en/messages.json

@@ -1,449 +0,0 @@
-{
-  "extName": {
-    "description": "Name of this extension.",
-    "message": "Violentmonkey"
-  },
-  "extDescription": {
-    "description": "Description for this extension.",
-    "message": "Userscript support for Opera."
-  },
-  "extTranslator": {
-    "description": "Information of the translator.",
-    "message": "Gerald <[email protected]>",
-    "touched": false
-  },
-  "msgUpdated": {
-    "description": "Message shown when a script is updated/reinstalled.",
-    "message": "Script updated."
-  },
-  "msgErrorFetchingScript": {
-    "description": "Message shown when Violentmonkey fails fetching a new version of the script.",
-    "message": "Error fetching script!"
-  },
-  "msgInstalled": {
-    "description": "Message shown when a script is installed.",
-    "message": "Script installed."
-  },
-  "Warning": {
-    "description": "Show warnings with a notification.",
-    "message": "Warning"
-  },
-  "msgWarnGrant": {
-    "description": "Message shown when `@grant` is not found in a script.",
-    "message": "Script [$1] has no `@grant` lines! Click to see more details."
-  },
-  "labelNoName": {
-    "description": "Text as the name of a script when no @name is assigned.",
-    "message": "No Name"
-  },
-  "msgUpdating": {
-    "description": "Message shown when a new version of script is being fetched.",
-    "message": "Updating..."
-  },
-  "msgNewVersion": {
-    "description": "Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided.",
-    "message": "New version found."
-  },
-  "msgCheckingForUpdate": {
-    "description": "Message shown when a script is being checked for updates by version numbers.",
-    "message": "Checking for updates..."
-  },
-  "msgErrorFetchingUpdateInfo": {
-    "description": "Message shown when Violentmonkey fails fetching version data of the script.",
-    "message": "Failed fetching update information."
-  },
-  "msgNoUpdate": {
-    "description": "Message shown when there is no new version of a script.",
-    "message": "No update found."
-  },
-  "labelInstall": {
-    "description": "Shown in the title of the confirm page while trying to install a script.",
-    "message": "Installing script"
-  },
-  "buttonInstallOptions": {
-    "description": "Button to show options of installation confirm page.",
-    "message": "Options"
-  },
-  "installOptionClose": {
-    "description": "Option to close confirm window after installation.",
-    "message": "Close after installation"
-  },
-  "installOptionTrack": {
-    "description": "Option to track the loading local file before window is closed.",
-    "message": "Track local file before this window is closed"
-  },
-  "buttonConfirmInstallation": {
-    "description": "Button to confirm installation of a script.",
-    "message": "Confirm installation"
-  },
-  "buttonClose": {
-    "description": "Button to close window.",
-    "message": "Close"
-  },
-  "msgErrorLoadingData": {
-    "description": "Message shown on confirm page when the script to be installed cannot be loaded.",
-    "message": "Error loading script data."
-  },
-  "msgLoadedData": {
-    "description": "Message shown in the confirm page when a javascript file to be installed is loaded.",
-    "message": "Script data loaded."
-  },
-  "msgErrorLoadingDependency": {
-    "description": "Message shown when not all requirements are loaded successfully.",
-    "message": "Error loading dependencies."
-  },
-  "msgLoadingDependency": {
-    "description": "Message shown on confirm page when the requirements are being downloaded.",
-    "message": "Loading dependencies... ($1/$2)"
-  },
-  "msgScriptURL": {
-    "description": "URL of the script to be installed on confirm page.",
-    "message": "Script URL: $1",
-    "touched": false
-  },
-  "msgLoadingData": {
-    "description": "Message shown on confirm page when the script to be installed is loading.",
-    "message": "Loading script data..."
-  },
-  "sideMenuInstalled": {
-    "description": "Side menu: Installed scripts",
-    "message": "Installed scripts"
-  },
-  "sideMenuSettings": {
-    "description": "Side menu: Settings",
-    "message": "Settings"
-  },
-  "sideMenuAbout": {
-    "description": "Side menu: About",
-    "message": "About"
-  },
-  "buttonNew": {
-    "description": "Button to create a new script.",
-    "message": "New"
-  },
-  "buttonUpdateAll": {
-    "description": "Check all scripts for updates.",
-    "message": "Check all for updates"
-  },
-  "anchorGetMoreScripts": {
-    "description": "Link to get more scripts.",
-    "message": "Get more scripts"
-  },
-  "msgLoading": {
-    "description": "Message shown in the options page before script list is loaded.",
-    "message": "Loading ..."
-  },
-  "labelSettings": {
-    "description": "Label shown on the top of settings page",
-    "message": "Settings"
-  },
-  "labelAutoUpdate": {
-    "description": "Option to allow automatically checking scripts for updates every 24 hours.",
-    "message": "Automatically check scripts for updates every day"
-  },
-  "labelIgnoreGrant": {
-    "description": "Option to suppress no @grant warnings.",
-    "message": "Suppress no @grant warnings"
-  },
-  "labelInjectMode": {
-    "description": "Label for a combo box to choose script injection modes.",
-    "message": "Script injection mode:"
-  },
-  "injectModeNormal": {
-    "description": "Script injection mode: Normal",
-    "message": "Normal"
-  },
-  "injectModeAdvanced": {
-    "description": "Script injection mode: Advanced",
-    "message": "Advanced"
-  },
-  "labelDataImport": {
-    "description": "Section title of data import.",
-    "message": "Data Import"
-  },
-  "buttonImportData": {
-    "description": "Button to choose a file for data import.",
-    "message": "Import from zip"
-  },
-  "buttonVacuum": {
-    "description": "Button to vacuum extension data.",
-    "message": "Vacuum database"
-  },
-  "labelDataExport": {
-    "description": "Section title of data export.",
-    "message": "Data Export"
-  },
-  "labelScriptsToExport": {
-    "description": "Label shown on top of the script list for export.",
-    "message": "Scripts to export"
-  },
-  "labelExportScriptData": {
-    "description": "Option to export script data along with scripts.",
-    "message": "Export script data"
-  },
-  "buttonAllNone": {
-    "description": "Button to select all scripts or none.",
-    "message": "All/None"
-  },
-  "buttonExportData": {
-    "description": "Button to open the data export dialog.",
-    "message": "Export to zip"
-  },
-  "labelAbout": {
-    "description": "Label shown on top of the about page.",
-    "message": "About Violentmonkey"
-  },
-  "labelRelated": {
-    "description": "Label of related links.",
-    "message": "Related links: "
-  },
-  "anchorSupportPage": {
-    "description": "Link to the support page of Violentmonkey.",
-    "message": "<a href=https://github.com/Violentmonkey/Violentmonkey/wiki target=_blank>Violentmonkey</a>"
-  },
-  "labelDonate": {
-    "description": "Label of link to donate page.",
-    "message": "Donate"
-  },
-  "labelFeedback": {
-    "description": "Label of link to feedback page.",
-    "message": "Feedback"
-  },
-  "labelAuthor": {
-    "description": "Label of author shown in the details of a script.",
-    "message": "Author: "
-  },
-  "anchorAuthor": {
-    "description": "Author shown on about tab.",
-    "message": "<a href=mailto:[email protected]>Gerald</a>"
-  },
-  "labelTranslator": {
-    "description": "Label of translator.",
-    "message": "Translator: "
-  },
-  "anchorTranslator": {
-    "description": "Translator shown on about tab.",
-    "message": "<a href=mailto:[email protected]>Gerald</a>"
-  },
-  "labelCurrentLang": {
-    "description": "Label of current language.",
-    "message": "Current Language: "
-  },
-  "labelScriptEditor": {
-    "description": "Shown in the title of the script editing page.",
-    "message": "Script Editor"
-  },
-  "buttonCustomMeta": {
-    "description": "Button to edit the custom meta data of a script.",
-    "message": "Custom meta data"
-  },
-  "labelName": {
-    "description": "Label of script name.",
-    "message": "Name:"
-  },
-  "labelRunAt": {
-    "description": "Label of script @run-at properties in custom meta data.",
-    "message": "Run-At:"
-  },
-  "labelRunAtDefault": {
-    "description": "Shown when custom @run-at is not assigned.",
-    "message": "(Default)"
-  },
-  "labelHomepageURL": {
-    "description": "Label of script @homepageURL in custom meta data.",
-    "message": "Homepage URL:"
-  },
-  "labelUpdateURL": {
-    "description": "Label of script @updateURL in custom meta data.",
-    "message": "Update URL:"
-  },
-  "labelDownloadURL": {
-    "description": "Label of script @downloadURL in custom meta data.",
-    "message": "Download URL:"
-  },
-  "labelInclude": {
-    "description": "Label of @include rules.",
-    "message": "Includes"
-  },
-  "labelKeepInclude": {
-    "description": "Option to keep the original @include rules.",
-    "message": "Keep original include rules"
-  },
-  "labelCustomInclude": {
-    "description": "Label of custom @include rules.",
-    "message": "Custom include rules: <em>(One per line)</em>"
-  },
-  "labelMatch": {
-    "description": "Label of @match rules.",
-    "message": "Matches"
-  },
-  "labelKeepMatch": {
-    "description": "Option to keep the original @match rules.",
-    "message": "Keep original match rules"
-  },
-  "labelCustomMatch": {
-    "description": "Label of custom @match rules.",
-    "message": "Custom match rules: <em>(One per line)</em>"
-  },
-  "labelExclude": {
-    "description": "Label of @exclude rules.",
-    "message": "Excludes"
-  },
-  "labelKeepExclude": {
-    "description": "Option to keep the original @exclude rules.",
-    "message": "Keep original exclude rules"
-  },
-  "labelCustomExclude": {
-    "description": "Label of custom @exclude rules.",
-    "message": "Custom exclude rules: <em>(One per line)</em>"
-  },
-  "labelAllowUpdate": {
-    "description": "Option to allow checking updates for a script.",
-    "message": "Allow update"
-  },
-  "buttonSave": {
-    "description": "Button to save modifications of a script.",
-    "message": "Save"
-  },
-  "buttonSaveClose": {
-    "description": "Button to save modifications of a script and then close the editing page.",
-    "message": "Save & Close"
-  },
-  "labelNoScripts": {
-    "description": "Message shown when no script is installed.",
-    "message": "Oops, you haven't got any script yet."
-  },
-  "hintSupportPage": {
-    "description": "Hint for support page.",
-    "message": "Support page",
-    "touched": false
-  },
-  "buttonDisable": {
-    "description": "Button to disable a script.",
-    "message": "Disable"
-  },
-  "buttonEnable": {
-    "description": "Button to enable a script.",
-    "message": "Enable"
-  },
-  "buttonEdit": {
-    "description": "Button to edit a script.",
-    "message": "Edit"
-  },
-  "buttonRemove": {
-    "description": "Button to remove a script.",
-    "message": "Remove"
-  },
-  "buttonUpdate": {
-    "description": "Check a script for updates.",
-    "message": "Check for updates"
-  },
-  "msgImported": {
-    "description": "Message shown after import. There is an argument referring to the count of scripts imported.",
-    "message": "$1 item(s) are imported."
-  },
-  "hintUseDownloadURL": {
-    "description": "Shown as a place holder for @updateURL when it is not assigned",
-    "message": "Use @downloadURL"
-  },
-  "confirmNotSaved": {
-    "description": "Confirm message shown when there are unsaved script modifications.",
-    "message": "Modifications are not saved!\nClick OK to discard them or cancel to stay."
-  },
-  "buttonVacuuming": {
-    "description": "Message shown when data vacuum is in progress.",
-    "message": "Vacuuming data..."
-  },
-  "buttonVacuumed": {
-    "description": "Message shown when data is vacuumed.",
-    "message": "Data vacuumed"
-  },
-  "hintVacuum": {
-    "description": "Hint for vacuuming data.",
-    "message": "Discard the redundancy and try to reload the missing resources in cache."
-  },
-  "menuManageScripts": {
-    "description": "Menu item to manage scripts, or to open the options page of the extension.",
-    "message": "Manage scripts"
-  },
-  "menuFindScripts": {
-    "description": "Menu item to find scripts for a site.",
-    "message": "Find scripts for this site"
-  },
-  "menuScriptEnabled": {
-    "description": "Menu item showing the status of Violentmonkey, when enabled.",
-    "message": "Scripts enabled"
-  },
-  "menuScriptDisabled": {
-    "description": "Menu item showing the status of Violentmonkey, when disabled.",
-    "message": "Scripts disabled"
-  },
-  "menuBack": {
-    "description": "Menu item to go back to main menu from script commands.",
-    "message": "Back"
-  },
-  "menuCommands": {
-    "description": "Menu item to list script commands.",
-    "message": "Script commands..."
-  },
-  "labelSearch": {
-    "description": "Label for search input in search box.",
-    "message": "Search for: "
-  },
-  "labelSearchFor": {
-    "description": "Text shown as a place holder in the search box.",
-    "message": "Search for..."
-  },
-  "labelReplace": {
-    "description": "Label for replace input in search box.",
-    "message": "Replace with: "
-  },
-  "labelReplaceWith": {
-    "description": "Text shown as a place holder in the replace box.",
-    "message": "Replace with..."
-  },
-  "buttonReplace": {
-    "description": "Button to replace the current match.",
-    "message": "Replace"
-  },
-  "buttonReplaceAll": {
-    "description": "Button to replace all matches.",
-    "message": "All"
-  },
-  "labelAutoReloadCurrentTab": {
-    "description": "Option to reload current tab after a script is switched on or off from menu.",
-    "message": "Reload current tab after switching on/off a script from menu"
-  },
-  "hintInjectModeNormal": {
-    "description": "Hint to explain the normal injection mode.",
-    "message": "Efficient but fails in some high security pages, e.g. https://github.com"
-  },
-  "hintInjectModeAdvanced": {
-    "description": "Hint to explain the advanced injection mode.",
-    "message": "Works in most pages, actually a hack"
-  },
-  "hintInputURL": {
-    "description": "Hint for a prompt box to input URL of a user script.",
-    "message": "Input URL:"
-  },
-  "buttonInstallFromURL": {
-    "description": "Button to ask for URL of a user script.",
-    "message": "Install from URL"
-  },
-  "labelSync": {
-    "description": "Label for sync options.",
-    "message": "Sync"
-  },
-  "labelSyncDropbox": {
-    "description": "Label for sync to dropbox option.",
-    "message": "Sync to Dropbox"
-  },
-  "buttonAuthorize": {
-    "description": "Button to authorize permissions for sync.",
-    "message": "Authorize"
-  },
-  "buttonAuthorized": {
-    "description": "Button shown when permissions are already authorized for sync.",
-    "message": "Authorized"
-  }
-}

+ 350 - 0
src/_locales/en/messages.yml

@@ -0,0 +1,350 @@
+extName:
+  description: Name of this extension.
+  message: Violentmonkey
+extDescription:
+  description: Description for this extension.
+  message: Userscript support for Opera.
+extTranslator:
+  description: Information of the translator.
+  message: 'Gerald <[email protected]>'
+  touched: false
+msgUpdated:
+  description: Message shown when a script is updated/reinstalled.
+  message: Script updated.
+msgErrorFetchingScript:
+  description: Message shown when Violentmonkey fails fetching a new version of the script.
+  message: 'Error fetching script!'
+msgInstalled:
+  description: Message shown when a script is installed.
+  message: Script installed.
+Warning:
+  description: Show warnings with a notification.
+  message: Warning
+msgWarnGrant:
+  description: Message shown when `@grant` is not found in a script.
+  message: 'Script [$1] has no `@grant` lines! Click to see more details.'
+labelNoName:
+  description: Text as the name of a script when no @name is assigned.
+  message: No Name
+msgUpdating:
+  description: Message shown when a new version of script is being fetched.
+  message: Updating...
+msgNewVersion:
+  description: 'Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided.'
+  message: New version found.
+msgCheckingForUpdate:
+  description: Message shown when a script is being checked for updates by version numbers.
+  message: Checking for updates...
+msgErrorFetchingUpdateInfo:
+  description: Message shown when Violentmonkey fails fetching version data of the script.
+  message: Failed fetching update information.
+msgNoUpdate:
+  description: Message shown when there is no new version of a script.
+  message: No update found.
+labelInstall:
+  description: Shown in the title of the confirm page while trying to install a script.
+  message: Installing script
+buttonInstallOptions:
+  description: Button to show options of installation confirm page.
+  message: Options
+installOptionClose:
+  description: Option to close confirm window after installation.
+  message: Close after installation
+installOptionTrack:
+  description: Option to track the loading local file before window is closed.
+  message: Track local file before this window is closed
+buttonConfirmInstallation:
+  description: Button to confirm installation of a script.
+  message: Confirm installation
+buttonClose:
+  description: Button to close window.
+  message: Close
+msgErrorLoadingData:
+  description: Message shown on confirm page when the script to be installed cannot be loaded.
+  message: Error loading script data.
+msgLoadedData:
+  description: Message shown in the confirm page when a javascript file to be installed is loaded.
+  message: Script data loaded.
+msgErrorLoadingDependency:
+  description: Message shown when not all requirements are loaded successfully.
+  message: Error loading dependencies.
+msgLoadingDependency:
+  description: Message shown on confirm page when the requirements are being downloaded.
+  message: Loading dependencies... ($1/$2)
+msgScriptURL:
+  description: URL of the script to be installed on confirm page.
+  message: 'Script URL: $1'
+  touched: false
+msgLoadingData:
+  description: Message shown on confirm page when the script to be installed is loading.
+  message: Loading script data...
+sideMenuInstalled:
+  description: 'Side menu: Installed scripts'
+  message: Installed scripts
+sideMenuSettings:
+  description: 'Side menu: Settings'
+  message: Settings
+sideMenuAbout:
+  description: 'Side menu: About'
+  message: About
+buttonNew:
+  description: Button to create a new script.
+  message: New
+buttonUpdateAll:
+  description: Check all scripts for updates.
+  message: Check all for updates
+anchorGetMoreScripts:
+  description: Link to get more scripts.
+  message: Get more scripts
+msgLoading:
+  description: Message shown in the options page before script list is loaded.
+  message: Loading ...
+labelSettings:
+  description: Label shown on the top of settings page
+  message: Settings
+labelAutoUpdate:
+  description: Option to allow automatically checking scripts for updates every 24 hours.
+  message: Automatically check scripts for updates every day
+labelIgnoreGrant:
+  description: Option to suppress no @grant warnings.
+  message: Suppress no @grant warnings
+labelInjectMode:
+  description: Label for a combo box to choose script injection modes.
+  message: 'Script injection mode:'
+injectModeNormal:
+  description: 'Script injection mode: Normal'
+  message: Normal
+injectModeAdvanced:
+  description: 'Script injection mode: Advanced'
+  message: Advanced
+labelDataImport:
+  description: Section title of data import.
+  message: Data Import
+buttonImportData:
+  description: Button to choose a file for data import.
+  message: Import from zip
+buttonVacuum:
+  description: Button to vacuum extension data.
+  message: Vacuum database
+labelDataExport:
+  description: Section title of data export.
+  message: Data Export
+labelScriptsToExport:
+  description: Label shown on top of the script list for export.
+  message: Scripts to export
+labelExportScriptData:
+  description: Option to export script data along with scripts.
+  message: Export script data
+buttonAllNone:
+  description: Button to select all scripts or none.
+  message: All/None
+buttonExportData:
+  description: Button to open the data export dialog.
+  message: Export to zip
+labelAbout:
+  description: Label shown on top of the about page.
+  message: About Violentmonkey
+labelRelated:
+  description: Label of related links.
+  message: 'Related links: '
+anchorSupportPage:
+  description: Link to the support page of Violentmonkey.
+  message: '<a href=https://github.com/Violentmonkey/Violentmonkey/wiki target=_blank>Violentmonkey</a>'
+labelDonate:
+  description: Label of link to donate page.
+  message: Donate
+labelFeedback:
+  description: Label of link to feedback page.
+  message: Feedback
+labelAuthor:
+  description: Label of author shown in the details of a script.
+  message: 'Author: '
+anchorAuthor:
+  description: Author shown on about tab.
+  message: '<a href=mailto:[email protected]>Gerald</a>'
+labelTranslator:
+  description: Label of translator.
+  message: 'Translator: '
+anchorTranslator:
+  description: Translator shown on about tab.
+  message: '<a href=mailto:[email protected]>Gerald</a>'
+labelCurrentLang:
+  description: Label of current language.
+  message: 'Current Language: '
+labelScriptEditor:
+  description: Shown in the title of the script editing page.
+  message: Script Editor
+buttonCustomMeta:
+  description: Button to edit the custom meta data of a script.
+  message: Custom meta data
+labelName:
+  description: Label of script name.
+  message: 'Name:'
+labelRunAt:
+  description: Label of script @run-at properties in custom meta data.
+  message: 'Run-At:'
+labelRunAtDefault:
+  description: Shown when custom @run-at is not assigned.
+  message: (Default)
+labelHomepageURL:
+  description: Label of script @homepageURL in custom meta data.
+  message: 'Homepage URL:'
+labelUpdateURL:
+  description: Label of script @updateURL in custom meta data.
+  message: 'Update URL:'
+labelDownloadURL:
+  description: Label of script @downloadURL in custom meta data.
+  message: 'Download URL:'
+labelInclude:
+  description: Label of @include rules.
+  message: Includes
+labelKeepInclude:
+  description: Option to keep the original @include rules.
+  message: Keep original include rules
+labelCustomInclude:
+  description: Label of custom @include rules.
+  message: 'Custom include rules: <em>(One per line)</em>'
+labelMatch:
+  description: Label of @match rules.
+  message: Matches
+labelKeepMatch:
+  description: Option to keep the original @match rules.
+  message: Keep original match rules
+labelCustomMatch:
+  description: Label of custom @match rules.
+  message: 'Custom match rules: <em>(One per line)</em>'
+labelExclude:
+  description: Label of @exclude rules.
+  message: Excludes
+labelKeepExclude:
+  description: Option to keep the original @exclude rules.
+  message: Keep original exclude rules
+labelCustomExclude:
+  description: Label of custom @exclude rules.
+  message: 'Custom exclude rules: <em>(One per line)</em>'
+labelAllowUpdate:
+  description: Option to allow checking updates for a script.
+  message: Allow update
+buttonSave:
+  description: Button to save modifications of a script.
+  message: Save
+buttonSaveClose:
+  description: Button to save modifications of a script and then close the editing page.
+  message: 'Save & Close'
+labelNoScripts:
+  description: Message shown when no script is installed.
+  message: "Oops, you haven't got any script yet."
+hintSupportPage:
+  description: Hint for support page.
+  message: Support page
+  touched: false
+buttonDisable:
+  description: Button to disable a script.
+  message: Disable
+buttonEnable:
+  description: Button to enable a script.
+  message: Enable
+buttonEdit:
+  description: Button to edit a script.
+  message: Edit
+buttonRemove:
+  description: Button to remove a script.
+  message: Remove
+buttonUpdate:
+  description: Check a script for updates.
+  message: Check for updates
+msgImported:
+  description: Message shown after import. There is an argument referring to the count of scripts imported.
+  message: $1 item(s) are imported.
+hintUseDownloadURL:
+  description: Shown as a place holder for @updateURL when it is not assigned
+  message: Use @downloadURL
+confirmNotSaved:
+  description: Confirm message shown when there are unsaved script modifications.
+  message: |-
+    Modifications are not saved!
+    Click OK to discard them or cancel to stay.
+buttonVacuuming:
+  description: Message shown when data vacuum is in progress.
+  message: Vacuuming data...
+buttonVacuumed:
+  description: Message shown when data is vacuumed.
+  message: Data vacuumed
+hintVacuum:
+  description: Hint for vacuuming data.
+  message: Discard the redundancy and try to reload the missing resources in cache.
+menuManageScripts:
+  description: 'Menu item to manage scripts, or to open the options page of the extension.'
+  message: Manage scripts
+menuFindScripts:
+  description: Menu item to find scripts for a site.
+  message: Find scripts for this site
+menuScriptEnabled:
+  description: 'Menu item showing the status of Violentmonkey, when enabled.'
+  message: Scripts enabled
+menuScriptDisabled:
+  description: 'Menu item showing the status of Violentmonkey, when disabled.'
+  message: Scripts disabled
+menuBack:
+  description: Menu item to go back to main menu from script commands.
+  message: Back
+menuCommands:
+  description: Menu item to list script commands.
+  message: Script commands...
+labelSearch:
+  description: Label for search input in search box.
+  message: 'Search for: '
+labelSearchFor:
+  description: Text shown as a place holder in the search box.
+  message: Search for...
+labelReplace:
+  description: Label for replace input in search box.
+  message: 'Replace with: '
+labelReplaceWith:
+  description: Text shown as a place holder in the replace box.
+  message: Replace with...
+buttonReplace:
+  description: Button to replace the current match.
+  message: Replace
+buttonReplaceAll:
+  description: Button to replace all matches.
+  message: All
+labelAutoReloadCurrentTab:
+  description: Option to reload current tab after a script is switched on or off from menu.
+  message: Reload current tab after switching on/off a script from menu
+hintInjectModeNormal:
+  description: Hint to explain the normal injection mode.
+  message: 'Efficient but fails in some high security pages, e.g. https://github.com'
+hintInjectModeAdvanced:
+  description: Hint to explain the advanced injection mode.
+  message: 'Works in most pages, actually a hack'
+hintInputURL:
+  description: Hint for a prompt box to input URL of a user script.
+  message: 'Input URL:'
+buttonInstallFromURL:
+  description: Button to ask for URL of a user script.
+  message: Install from URL
+labelSync:
+  description: Label for sync options.
+  message: Sync
+buttonAuthorize:
+  description: Button to authorize permissions for sync.
+  message: Authorize
+buttonAuthorized:
+  description: Button shown when permissions are already authorized for sync.
+  message: Authorized
+labelSyncTo:
+  description: Label for sync service.
+  message: Sync to $1
+lastSync:
+  description: Label for last sync timestamp.
+  message: Last sync at $1
+msgSyncError:
+  description: Message shown when sync failed.
+  message: 'Sync error!'
+msgSyncing:
+  description: Message shown when sync is in progress.
+  message: Syncing...
+msgSyncInit:
+  description: Message shown when sync service is initializing.
+  message: Initializing...

+ 0 - 449
src/_locales/pl/messages.json

@@ -1,449 +0,0 @@
-{
-  "extName": {
-    "description": "Name of this extension.",
-    "message": "Violentmonkey"
-  },
-  "extDescription": {
-    "description": "Description for this extension.",
-    "message": "Wsparcie dla UserScriptów dla Opery."
-  },
-  "extTranslator": {
-    "description": "Information of the translator.",
-    "message": "MISI90 <[email protected]>, Piter432 <[email protected]>",
-    "touched": false
-  },
-  "msgUpdated": {
-    "description": "Message shown when a script is updated/reinstalled.",
-    "message": "Skrypt zaktualizowany."
-  },
-  "msgErrorFetchingScript": {
-    "description": "Message shown when Violentmonkey fails fetching a new version of the script.",
-    "message": "Błąd przy pobieraniu skryptu!"
-  },
-  "msgInstalled": {
-    "description": "Message shown when a script is installed.",
-    "message": "Skrypt zainstalowany"
-  },
-  "Warning": {
-    "description": "Show warnings with a notification.",
-    "message": "Warning"
-  },
-  "msgWarnGrant": {
-    "description": "Message shown when `@grant` is not found in a script.",
-    "message": "Script [$1] has no `@grant` lines! Click to see more details."
-  },
-  "labelNoName": {
-    "description": "Text as the name of a script when no @name is assigned.",
-    "message": "Bez nazwy"
-  },
-  "msgUpdating": {
-    "description": "Message shown when a new version of script is being fetched.",
-    "message": "Aktualizowanie skryptu..."
-  },
-  "msgNewVersion": {
-    "description": "Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided.",
-    "message": "Znaleziono nową wersję tego skryptu."
-  },
-  "msgCheckingForUpdate": {
-    "description": "Message shown when a script is being checked for updates by version numbers.",
-    "message": "Sprawdzanie aktualizacji skryptu..."
-  },
-  "msgErrorFetchingUpdateInfo": {
-    "description": "Message shown when Violentmonkey fails fetching version data of the script.",
-    "message": "Błąd podczas pobierania informacji aktualizacji dla tego skryptu."
-  },
-  "msgNoUpdate": {
-    "description": "Message shown when there is no new version of a script.",
-    "message": "Brak aktualizacji dla tego skryptu."
-  },
-  "labelInstall": {
-    "description": "Shown in the title of the confirm page while trying to install a script.",
-    "message": "Instalator skryptu"
-  },
-  "buttonInstallOptions": {
-    "description": "Button to show options of installation confirm page.",
-    "message": "Options"
-  },
-  "installOptionClose": {
-    "description": "Option to close confirm window after installation.",
-    "message": "Zamknij instalator tego skryptu po zakończeniu instalacji skryptu"
-  },
-  "installOptionTrack": {
-    "description": "Option to track the loading local file before window is closed.",
-    "message": "Track local file before this window is closed"
-  },
-  "buttonConfirmInstallation": {
-    "description": "Button to confirm installation of a script.",
-    "message": "Potwierdź instalację skryptu"
-  },
-  "buttonClose": {
-    "description": "Button to close window.",
-    "message": "Zamknij edytor/instalator"
-  },
-  "msgErrorLoadingData": {
-    "description": "Message shown on confirm page when the script to be installed cannot be loaded.",
-    "message": "Błąd wczytywania skryptu."
-  },
-  "msgLoadedData": {
-    "description": "Message shown in the confirm page when a javascript file to be installed is loaded.",
-    "message": "Skrypt wczytany."
-  },
-  "msgErrorLoadingDependency": {
-    "description": "Message shown when not all requirements are loaded successfully.",
-    "message": "Błąd podczas wczytywania wymagań."
-  },
-  "msgLoadingDependency": {
-    "description": "Message shown on confirm page when the requirements are being downloaded.",
-    "message": "Wczytywanie wymagań... ($1/$2)"
-  },
-  "msgScriptURL": {
-    "description": "URL of the script to be installed on confirm page.",
-    "message": "Adres URL skryptu: $1",
-    "touched": false
-  },
-  "msgLoadingData": {
-    "description": "Message shown on confirm page when the script to be installed is loading.",
-    "message": "Wczytywanie skryptu..."
-  },
-  "sideMenuInstalled": {
-    "description": "Side menu: Installed scripts",
-    "message": "Zainstalowane skrypty"
-  },
-  "sideMenuSettings": {
-    "description": "Side menu: Settings",
-    "message": "Ustawienia"
-  },
-  "sideMenuAbout": {
-    "description": "Side menu: About",
-    "message": "O rozszerzeniu"
-  },
-  "buttonNew": {
-    "description": "Button to create a new script.",
-    "message": "Nowy skrypt"
-  },
-  "buttonUpdateAll": {
-    "description": "Check all scripts for updates.",
-    "message": "Sprawdź aktualizacje dla wszystkich skryptów"
-  },
-  "anchorGetMoreScripts": {
-    "description": "Link to get more scripts.",
-    "message": "Znajdź nowe skrypty"
-  },
-  "msgLoading": {
-    "description": "Message shown in the options page before script list is loaded.",
-    "message": "Wczytywanie ..."
-  },
-  "labelSettings": {
-    "description": "Label shown on the top of settings page",
-    "message": "Ustawienia"
-  },
-  "labelAutoUpdate": {
-    "description": "Option to allow automatically checking scripts for updates every 24 hours.",
-    "message": "Automatycznie sprawdzaj aktualizacje dla skryptów każdego dnia"
-  },
-  "labelIgnoreGrant": {
-    "description": "Option to suppress no @grant warnings.",
-    "message": "Suppress no @grant warnings"
-  },
-  "labelInjectMode": {
-    "description": "Label for a combo box to choose script injection modes.",
-    "message": "Script injection mode:"
-  },
-  "injectModeNormal": {
-    "description": "Script injection mode: Normal",
-    "message": "Normal"
-  },
-  "injectModeAdvanced": {
-    "description": "Script injection mode: Advanced",
-    "message": "Advanced"
-  },
-  "labelDataImport": {
-    "description": "Section title of data import.",
-    "message": "Import danych"
-  },
-  "buttonImportData": {
-    "description": "Button to choose a file for data import.",
-    "message": "Importuj skrypty z pliku \".zip\""
-  },
-  "buttonVacuum": {
-    "description": "Button to vacuum extension data.",
-    "message": "Wyczyść dane skryptów"
-  },
-  "labelDataExport": {
-    "description": "Section title of data export.",
-    "message": "Eksport danych"
-  },
-  "labelScriptsToExport": {
-    "description": "Label shown on top of the script list for export.",
-    "message": "Skrypty do eksportu"
-  },
-  "labelExportScriptData": {
-    "description": "Option to export script data along with scripts.",
-    "message": "Eksportuj dane skryptu"
-  },
-  "buttonAllNone": {
-    "description": "Button to select all scripts or none.",
-    "message": "Wszystkie/Żaden"
-  },
-  "buttonExportData": {
-    "description": "Button to open the data export dialog.",
-    "message": "Eksportuj skrypty do pliku \".zip\""
-  },
-  "labelAbout": {
-    "description": "Label shown on top of the about page.",
-    "message": "O rozszerzeniu Violentmonkey"
-  },
-  "labelRelated": {
-    "description": "Label of related links.",
-    "message": "Related links: "
-  },
-  "anchorSupportPage": {
-    "description": "Link to the support page of Violentmonkey.",
-    "message": "<a href=https://github.com/gera2ld/Violentmonkey/wiki target=_blank>Violentmonkey</a>"
-  },
-  "labelDonate": {
-    "description": "Label of link to donate page.",
-    "message": "Dotacja"
-  },
-  "labelFeedback": {
-    "description": "Label of link to feedback page.",
-    "message": "Feedback"
-  },
-  "labelAuthor": {
-    "description": "Label of author shown in the details of a script.",
-    "message": "Autor: "
-  },
-  "anchorAuthor": {
-    "description": "Author shown on about tab.",
-    "message": "<a href=mailto:[email protected]>Gerald</a>"
-  },
-  "labelTranslator": {
-    "description": "Label of translator.",
-    "message": "Tłumacze: "
-  },
-  "anchorTranslator": {
-    "description": "Translator shown on about tab.",
-    "message": "<a href=mailto:[email protected]>MISI90</a>, <a href=mailto:[email protected]>Piter432</a>"
-  },
-  "labelCurrentLang": {
-    "description": "Label of current language.",
-    "message": "Current Language: "
-  },
-  "labelScriptEditor": {
-    "description": "Shown in the title of the script editing page.",
-    "message": "Edytor skryptu"
-  },
-  "buttonCustomMeta": {
-    "description": "Button to edit the custom meta data of a script.",
-    "message": "Własne metadane skryptu"
-  },
-  "labelName": {
-    "description": "Label of script name.",
-    "message": "Nazwa skryptu:"
-  },
-  "labelRunAt": {
-    "description": "Label of script @run-at properties in custom meta data.",
-    "message": "Uruchom gdy:"
-  },
-  "labelRunAtDefault": {
-    "description": "Shown when custom @run-at is not assigned.",
-    "message": "(domyślnie)"
-  },
-  "labelHomepageURL": {
-    "description": "Label of script @homepageURL in custom meta data.",
-    "message": "Strona domowa skryptu URL:"
-  },
-  "labelUpdateURL": {
-    "description": "Label of script @updateURL in custom meta data.",
-    "message": "URL do aktualizacji skryptu:"
-  },
-  "labelDownloadURL": {
-    "description": "Label of script @downloadURL in custom meta data.",
-    "message": "URL do pobrania skryptu:"
-  },
-  "labelInclude": {
-    "description": "Label of @include rules.",
-    "message": "Includes"
-  },
-  "labelKeepInclude": {
-    "description": "Option to keep the original @include rules.",
-    "message": "Zachowaj oryginalne zasady include"
-  },
-  "labelCustomInclude": {
-    "description": "Label of custom @include rules.",
-    "message": "Własne zasady include: <em>(jedna na linię)</em>"
-  },
-  "labelMatch": {
-    "description": "Label of @match rules.",
-    "message": "Matches"
-  },
-  "labelKeepMatch": {
-    "description": "Option to keep the original @match rules.",
-    "message": "Zachowaj oryginalne zasady match"
-  },
-  "labelCustomMatch": {
-    "description": "Label of custom @match rules.",
-    "message": "Własne zasady match: <em>(jedna na linię)</em>"
-  },
-  "labelExclude": {
-    "description": "Label of @exclude rules.",
-    "message": "Excludes"
-  },
-  "labelKeepExclude": {
-    "description": "Option to keep the original @exclude rules.",
-    "message": "Zachowaj oryginalne zasady exclude"
-  },
-  "labelCustomExclude": {
-    "description": "Label of custom @exclude rules.",
-    "message": "Własne zasady exclude: <em>(jedna na linię)</em>"
-  },
-  "labelAllowUpdate": {
-    "description": "Option to allow checking updates for a script.",
-    "message": "Zezwalaj na aktualizacje tego skryptu"
-  },
-  "buttonSave": {
-    "description": "Button to save modifications of a script.",
-    "message": "Zapisz skrypt"
-  },
-  "buttonSaveClose": {
-    "description": "Button to save modifications of a script and then close the editing page.",
-    "message": "Zapisz skrypt i zamknij edytor"
-  },
-  "labelNoScripts": {
-    "description": "Message shown when no script is installed.",
-    "message": "Oops, you haven't got any script yet."
-  },
-  "hintSupportPage": {
-    "description": "Hint for support page.",
-    "message": "Strona wsparcia",
-    "touched": false
-  },
-  "buttonDisable": {
-    "description": "Button to disable a script.",
-    "message": "Wyłącz skrypt"
-  },
-  "buttonEnable": {
-    "description": "Button to enable a script.",
-    "message": "Włącz skrypt"
-  },
-  "buttonEdit": {
-    "description": "Button to edit a script.",
-    "message": "Edytuj skrypt"
-  },
-  "buttonRemove": {
-    "description": "Button to remove a script.",
-    "message": "Usuń skrypt"
-  },
-  "buttonUpdate": {
-    "description": "Check a script for updates.",
-    "message": "Sprawdź aktualizację/e skryptu"
-  },
-  "msgImported": {
-    "description": "Message shown after import. There is an argument referring to the count of scripts imported.",
-    "message": "$1 pozycja/e/i zaimportowana/e/ych."
-  },
-  "hintUseDownloadURL": {
-    "description": "Shown as a place holder for @updateURL when it is not assigned",
-    "message": "Use @downloadURL"
-  },
-  "confirmNotSaved": {
-    "description": "Confirm message shown when there are unsaved script modifications.",
-    "message": "Modyfikacje w tym skrypcie nie zostały zapisane! Kliknij \"OK\", aby wyjść lub \"Anuluj\", aby pozostać."
-  },
-  "buttonVacuuming": {
-    "description": "Message shown when data vacuum is in progress.",
-    "message": "Czyszczenie danych..."
-  },
-  "buttonVacuumed": {
-    "description": "Message shown when data is vacuumed.",
-    "message": "Dane wyczyszczone"
-  },
-  "hintVacuum": {
-    "description": "Hint for vacuuming data.",
-    "message": "Usuń nadmiarowość i spróbuj przeładować brakujące dane w pamięci podręcznej."
-  },
-  "menuManageScripts": {
-    "description": "Menu item to manage scripts, or to open the options page of the extension.",
-    "message": "Zarządzaj skryptami"
-  },
-  "menuFindScripts": {
-    "description": "Menu item to find scripts for a site.",
-    "message": "Znajdź skrypty dla tej strony"
-  },
-  "menuScriptEnabled": {
-    "description": "Menu item showing the status of Violentmonkey, when enabled.",
-    "message": "Skrypty włączone"
-  },
-  "menuScriptDisabled": {
-    "description": "Menu item showing the status of Violentmonkey, when disabled.",
-    "message": ""
-  },
-  "menuBack": {
-    "description": "Menu item to go back to main menu from script commands.",
-    "message": "Wstecz"
-  },
-  "menuCommands": {
-    "description": "Menu item to list script commands.",
-    "message": "Komendy skryptu..."
-  },
-  "labelSearch": {
-    "description": "Label for search input in search box.",
-    "message": "Szukaj w: "
-  },
-  "labelSearchFor": {
-    "description": "Text shown as a place holder in the search box.",
-    "message": "Search for..."
-  },
-  "labelReplace": {
-    "description": "Label for replace input in search box.",
-    "message": "Zamień na: "
-  },
-  "labelReplaceWith": {
-    "description": "Text shown as a place holder in the replace box.",
-    "message": "Replace with..."
-  },
-  "buttonReplace": {
-    "description": "Button to replace the current match.",
-    "message": "Zamień"
-  },
-  "buttonReplaceAll": {
-    "description": "Button to replace all matches.",
-    "message": "Wszystko"
-  },
-  "labelAutoReloadCurrentTab": {
-    "description": "Option to reload current tab after a script is switched on or off from menu.",
-    "message": ""
-  },
-  "hintInjectModeNormal": {
-    "description": "Hint to explain the normal injection mode.",
-    "message": ""
-  },
-  "hintInjectModeAdvanced": {
-    "description": "Hint to explain the advanced injection mode.",
-    "message": ""
-  },
-  "hintInputURL": {
-    "description": "Hint for a prompt box to input URL of a user script.",
-    "message": ""
-  },
-  "buttonInstallFromURL": {
-    "description": "Button to ask for URL of a user script.",
-    "message": ""
-  },
-  "labelSync": {
-    "description": "Label for sync options.",
-    "message": ""
-  },
-  "labelSyncDropbox": {
-    "description": "Label for sync to dropbox option.",
-    "message": ""
-  },
-  "buttonAuthorize": {
-    "description": "Button to authorize permissions for sync.",
-    "message": ""
-  },
-  "buttonAuthorized": {
-    "description": "Button shown when permissions are already authorized for sync.",
-    "message": ""
-  }
-}

+ 348 - 0
src/_locales/pl/messages.yml

@@ -0,0 +1,348 @@
+extName:
+  description: Name of this extension.
+  message: Violentmonkey
+extDescription:
+  description: Description for this extension.
+  message: Wsparcie dla UserScriptów dla Opery.
+extTranslator:
+  description: Information of the translator.
+  message: 'MISI90 <[email protected]>, Piter432 <[email protected]>'
+  touched: false
+msgUpdated:
+  description: Message shown when a script is updated/reinstalled.
+  message: Skrypt zaktualizowany.
+msgErrorFetchingScript:
+  description: Message shown when Violentmonkey fails fetching a new version of the script.
+  message: 'Błąd przy pobieraniu skryptu!'
+msgInstalled:
+  description: Message shown when a script is installed.
+  message: Skrypt zainstalowany
+Warning:
+  description: Show warnings with a notification.
+  message: Warning
+msgWarnGrant:
+  description: Message shown when `@grant` is not found in a script.
+  message: 'Script [$1] has no `@grant` lines! Click to see more details.'
+labelNoName:
+  description: Text as the name of a script when no @name is assigned.
+  message: Bez nazwy
+msgUpdating:
+  description: Message shown when a new version of script is being fetched.
+  message: Aktualizowanie skryptu...
+msgNewVersion:
+  description: 'Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided.'
+  message: Znaleziono nową wersję tego skryptu.
+msgCheckingForUpdate:
+  description: Message shown when a script is being checked for updates by version numbers.
+  message: Sprawdzanie aktualizacji skryptu...
+msgErrorFetchingUpdateInfo:
+  description: Message shown when Violentmonkey fails fetching version data of the script.
+  message: Błąd podczas pobierania informacji aktualizacji dla tego skryptu.
+msgNoUpdate:
+  description: Message shown when there is no new version of a script.
+  message: Brak aktualizacji dla tego skryptu.
+labelInstall:
+  description: Shown in the title of the confirm page while trying to install a script.
+  message: Instalator skryptu
+buttonInstallOptions:
+  description: Button to show options of installation confirm page.
+  message: Options
+installOptionClose:
+  description: Option to close confirm window after installation.
+  message: Zamknij instalator tego skryptu po zakończeniu instalacji skryptu
+installOptionTrack:
+  description: Option to track the loading local file before window is closed.
+  message: Track local file before this window is closed
+buttonConfirmInstallation:
+  description: Button to confirm installation of a script.
+  message: Potwierdź instalację skryptu
+buttonClose:
+  description: Button to close window.
+  message: Zamknij edytor/instalator
+msgErrorLoadingData:
+  description: Message shown on confirm page when the script to be installed cannot be loaded.
+  message: Błąd wczytywania skryptu.
+msgLoadedData:
+  description: Message shown in the confirm page when a javascript file to be installed is loaded.
+  message: Skrypt wczytany.
+msgErrorLoadingDependency:
+  description: Message shown when not all requirements are loaded successfully.
+  message: Błąd podczas wczytywania wymagań.
+msgLoadingDependency:
+  description: Message shown on confirm page when the requirements are being downloaded.
+  message: Wczytywanie wymagań... ($1/$2)
+msgScriptURL:
+  description: URL of the script to be installed on confirm page.
+  message: 'Adres URL skryptu: $1'
+  touched: false
+msgLoadingData:
+  description: Message shown on confirm page when the script to be installed is loading.
+  message: Wczytywanie skryptu...
+sideMenuInstalled:
+  description: 'Side menu: Installed scripts'
+  message: Zainstalowane skrypty
+sideMenuSettings:
+  description: 'Side menu: Settings'
+  message: Ustawienia
+sideMenuAbout:
+  description: 'Side menu: About'
+  message: O rozszerzeniu
+buttonNew:
+  description: Button to create a new script.
+  message: Nowy skrypt
+buttonUpdateAll:
+  description: Check all scripts for updates.
+  message: Sprawdź aktualizacje dla wszystkich skryptów
+anchorGetMoreScripts:
+  description: Link to get more scripts.
+  message: Znajdź nowe skrypty
+msgLoading:
+  description: Message shown in the options page before script list is loaded.
+  message: Wczytywanie ...
+labelSettings:
+  description: Label shown on the top of settings page
+  message: Ustawienia
+labelAutoUpdate:
+  description: Option to allow automatically checking scripts for updates every 24 hours.
+  message: Automatycznie sprawdzaj aktualizacje dla skryptów każdego dnia
+labelIgnoreGrant:
+  description: Option to suppress no @grant warnings.
+  message: Suppress no @grant warnings
+labelInjectMode:
+  description: Label for a combo box to choose script injection modes.
+  message: 'Script injection mode:'
+injectModeNormal:
+  description: 'Script injection mode: Normal'
+  message: Normal
+injectModeAdvanced:
+  description: 'Script injection mode: Advanced'
+  message: Advanced
+labelDataImport:
+  description: Section title of data import.
+  message: Import danych
+buttonImportData:
+  description: Button to choose a file for data import.
+  message: 'Importuj skrypty z pliku ".zip"'
+buttonVacuum:
+  description: Button to vacuum extension data.
+  message: Wyczyść dane skryptów
+labelDataExport:
+  description: Section title of data export.
+  message: Eksport danych
+labelScriptsToExport:
+  description: Label shown on top of the script list for export.
+  message: Skrypty do eksportu
+labelExportScriptData:
+  description: Option to export script data along with scripts.
+  message: Eksportuj dane skryptu
+buttonAllNone:
+  description: Button to select all scripts or none.
+  message: Wszystkie/Żaden
+buttonExportData:
+  description: Button to open the data export dialog.
+  message: 'Eksportuj skrypty do pliku ".zip"'
+labelAbout:
+  description: Label shown on top of the about page.
+  message: O rozszerzeniu Violentmonkey
+labelRelated:
+  description: Label of related links.
+  message: 'Related links: '
+anchorSupportPage:
+  description: Link to the support page of Violentmonkey.
+  message: '<a href=https://github.com/gera2ld/Violentmonkey/wiki target=_blank>Violentmonkey</a>'
+labelDonate:
+  description: Label of link to donate page.
+  message: Dotacja
+labelFeedback:
+  description: Label of link to feedback page.
+  message: Feedback
+labelAuthor:
+  description: Label of author shown in the details of a script.
+  message: 'Autor: '
+anchorAuthor:
+  description: Author shown on about tab.
+  message: '<a href=mailto:[email protected]>Gerald</a>'
+labelTranslator:
+  description: Label of translator.
+  message: 'Tłumacze: '
+anchorTranslator:
+  description: Translator shown on about tab.
+  message: '<a href=mailto:[email protected]>MISI90</a>, <a href=mailto:[email protected]>Piter432</a>'
+labelCurrentLang:
+  description: Label of current language.
+  message: 'Current Language: '
+labelScriptEditor:
+  description: Shown in the title of the script editing page.
+  message: Edytor skryptu
+buttonCustomMeta:
+  description: Button to edit the custom meta data of a script.
+  message: Własne metadane skryptu
+labelName:
+  description: Label of script name.
+  message: 'Nazwa skryptu:'
+labelRunAt:
+  description: Label of script @run-at properties in custom meta data.
+  message: 'Uruchom gdy:'
+labelRunAtDefault:
+  description: Shown when custom @run-at is not assigned.
+  message: (domyślnie)
+labelHomepageURL:
+  description: Label of script @homepageURL in custom meta data.
+  message: 'Strona domowa skryptu URL:'
+labelUpdateURL:
+  description: Label of script @updateURL in custom meta data.
+  message: 'URL do aktualizacji skryptu:'
+labelDownloadURL:
+  description: Label of script @downloadURL in custom meta data.
+  message: 'URL do pobrania skryptu:'
+labelInclude:
+  description: Label of @include rules.
+  message: Includes
+labelKeepInclude:
+  description: Option to keep the original @include rules.
+  message: Zachowaj oryginalne zasady include
+labelCustomInclude:
+  description: Label of custom @include rules.
+  message: 'Własne zasady include: <em>(jedna na linię)</em>'
+labelMatch:
+  description: Label of @match rules.
+  message: Matches
+labelKeepMatch:
+  description: Option to keep the original @match rules.
+  message: Zachowaj oryginalne zasady match
+labelCustomMatch:
+  description: Label of custom @match rules.
+  message: 'Własne zasady match: <em>(jedna na linię)</em>'
+labelExclude:
+  description: Label of @exclude rules.
+  message: Excludes
+labelKeepExclude:
+  description: Option to keep the original @exclude rules.
+  message: Zachowaj oryginalne zasady exclude
+labelCustomExclude:
+  description: Label of custom @exclude rules.
+  message: 'Własne zasady exclude: <em>(jedna na linię)</em>'
+labelAllowUpdate:
+  description: Option to allow checking updates for a script.
+  message: Zezwalaj na aktualizacje tego skryptu
+buttonSave:
+  description: Button to save modifications of a script.
+  message: Zapisz skrypt
+buttonSaveClose:
+  description: Button to save modifications of a script and then close the editing page.
+  message: Zapisz skrypt i zamknij edytor
+labelNoScripts:
+  description: Message shown when no script is installed.
+  message: "Oops, you haven't got any script yet."
+hintSupportPage:
+  description: Hint for support page.
+  message: Strona wsparcia
+  touched: false
+buttonDisable:
+  description: Button to disable a script.
+  message: Wyłącz skrypt
+buttonEnable:
+  description: Button to enable a script.
+  message: Włącz skrypt
+buttonEdit:
+  description: Button to edit a script.
+  message: Edytuj skrypt
+buttonRemove:
+  description: Button to remove a script.
+  message: Usuń skrypt
+buttonUpdate:
+  description: Check a script for updates.
+  message: Sprawdź aktualizację/e skryptu
+msgImported:
+  description: Message shown after import. There is an argument referring to the count of scripts imported.
+  message: $1 pozycja/e/i zaimportowana/e/ych.
+hintUseDownloadURL:
+  description: Shown as a place holder for @updateURL when it is not assigned
+  message: Use @downloadURL
+confirmNotSaved:
+  description: Confirm message shown when there are unsaved script modifications.
+  message: 'Modyfikacje w tym skrypcie nie zostały zapisane! Kliknij "OK", aby wyjść lub "Anuluj", aby pozostać.'
+buttonVacuuming:
+  description: Message shown when data vacuum is in progress.
+  message: Czyszczenie danych...
+buttonVacuumed:
+  description: Message shown when data is vacuumed.
+  message: Dane wyczyszczone
+hintVacuum:
+  description: Hint for vacuuming data.
+  message: Usuń nadmiarowość i spróbuj przeładować brakujące dane w pamięci podręcznej.
+menuManageScripts:
+  description: 'Menu item to manage scripts, or to open the options page of the extension.'
+  message: Zarządzaj skryptami
+menuFindScripts:
+  description: Menu item to find scripts for a site.
+  message: Znajdź skrypty dla tej strony
+menuScriptEnabled:
+  description: 'Menu item showing the status of Violentmonkey, when enabled.'
+  message: Skrypty włączone
+menuScriptDisabled:
+  description: 'Menu item showing the status of Violentmonkey, when disabled.'
+  message: ''
+menuBack:
+  description: Menu item to go back to main menu from script commands.
+  message: Wstecz
+menuCommands:
+  description: Menu item to list script commands.
+  message: Komendy skryptu...
+labelSearch:
+  description: Label for search input in search box.
+  message: 'Szukaj w: '
+labelSearchFor:
+  description: Text shown as a place holder in the search box.
+  message: Search for...
+labelReplace:
+  description: Label for replace input in search box.
+  message: 'Zamień na: '
+labelReplaceWith:
+  description: Text shown as a place holder in the replace box.
+  message: Replace with...
+buttonReplace:
+  description: Button to replace the current match.
+  message: Zamień
+buttonReplaceAll:
+  description: Button to replace all matches.
+  message: Wszystko
+labelAutoReloadCurrentTab:
+  description: Option to reload current tab after a script is switched on or off from menu.
+  message: ''
+hintInjectModeNormal:
+  description: Hint to explain the normal injection mode.
+  message: ''
+hintInjectModeAdvanced:
+  description: Hint to explain the advanced injection mode.
+  message: ''
+hintInputURL:
+  description: Hint for a prompt box to input URL of a user script.
+  message: ''
+buttonInstallFromURL:
+  description: Button to ask for URL of a user script.
+  message: ''
+labelSync:
+  description: Label for sync options.
+  message: ''
+buttonAuthorize:
+  description: Button to authorize permissions for sync.
+  message: ''
+buttonAuthorized:
+  description: Button shown when permissions are already authorized for sync.
+  message: ''
+labelSyncTo:
+  description: Label for sync service.
+  message: ''
+lastSync:
+  description: Label for last sync timestamp.
+  message: ''
+msgSyncError:
+  description: Message shown when sync failed.
+  message: ''
+msgSyncing:
+  description: Message shown when sync is in progress.
+  message: ''
+msgSyncInit:
+  description: Message shown when sync service is initializing.
+  message: ''

+ 0 - 449
src/_locales/ru/messages.json

@@ -1,449 +0,0 @@
-{
-  "extName": {
-    "description": "Name of this extension.",
-    "message": "Violentmonkey"
-  },
-  "extDescription": {
-    "description": "Description for this extension.",
-    "message": "Поддержка пользовательских скриптов для Opera."
-  },
-  "extTranslator": {
-    "description": "Information of the translator.",
-    "message": "softovikk",
-    "touched": false
-  },
-  "msgUpdated": {
-    "description": "Message shown when a script is updated/reinstalled.",
-    "message": "Скрипт обновлен."
-  },
-  "msgErrorFetchingScript": {
-    "description": "Message shown when Violentmonkey fails fetching a new version of the script.",
-    "message": "Ошибка загрузки скрипта!"
-  },
-  "msgInstalled": {
-    "description": "Message shown when a script is installed.",
-    "message": "Скрипт установлен."
-  },
-  "Warning": {
-    "description": "Show warnings with a notification.",
-    "message": "Предупреждение"
-  },
-  "msgWarnGrant": {
-    "description": "Message shown when `@grant` is not found in a script.",
-    "message": "У скрипта [$1] отсутствует поле `@grant`! Кликните для подробностей."
-  },
-  "labelNoName": {
-    "description": "Text as the name of a script when no @name is assigned.",
-    "message": "Новый скрипт"
-  },
-  "msgUpdating": {
-    "description": "Message shown when a new version of script is being fetched.",
-    "message": "Обновление..."
-  },
-  "msgNewVersion": {
-    "description": "Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided.",
-    "message": "Доступна новая версия."
-  },
-  "msgCheckingForUpdate": {
-    "description": "Message shown when a script is being checked for updates by version numbers.",
-    "message": "Проверка наличия обновлений..."
-  },
-  "msgErrorFetchingUpdateInfo": {
-    "description": "Message shown when Violentmonkey fails fetching version data of the script.",
-    "message": "Не удается проверить обновления."
-  },
-  "msgNoUpdate": {
-    "description": "Message shown when there is no new version of a script.",
-    "message": "Обновления не найдены."
-  },
-  "labelInstall": {
-    "description": "Shown in the title of the confirm page while trying to install a script.",
-    "message": "Установка скрипта"
-  },
-  "buttonInstallOptions": {
-    "description": "Button to show options of installation confirm page.",
-    "message": "Настройки"
-  },
-  "installOptionClose": {
-    "description": "Option to close confirm window after installation.",
-    "message": "Закрыть после установки"
-  },
-  "installOptionTrack": {
-    "description": "Option to track the loading local file before window is closed.",
-    "message": "Следить за обновлениями локального файла, пока это окно открыто"
-  },
-  "buttonConfirmInstallation": {
-    "description": "Button to confirm installation of a script.",
-    "message": "Установить"
-  },
-  "buttonClose": {
-    "description": "Button to close window.",
-    "message": "Закрыть"
-  },
-  "msgErrorLoadingData": {
-    "description": "Message shown on confirm page when the script to be installed cannot be loaded.",
-    "message": "Ошибка загрузки скрипта."
-  },
-  "msgLoadedData": {
-    "description": "Message shown in the confirm page when a javascript file to be installed is loaded.",
-    "message": "Скрипт загружен."
-  },
-  "msgErrorLoadingDependency": {
-    "description": "Message shown when not all requirements are loaded successfully.",
-    "message": "Ошибка загрузки требований."
-  },
-  "msgLoadingDependency": {
-    "description": "Message shown on confirm page when the requirements are being downloaded.",
-    "message": "Загрузка требований... ($1/$2)"
-  },
-  "msgScriptURL": {
-    "description": "URL of the script to be installed on confirm page.",
-    "message": "URL-адрес скрипта: $1",
-    "touched": false
-  },
-  "msgLoadingData": {
-    "description": "Message shown on confirm page when the script to be installed is loading.",
-    "message": "Загружается скрипт..."
-  },
-  "sideMenuInstalled": {
-    "description": "Side menu: Installed scripts",
-    "message": "Установленные скрипты"
-  },
-  "sideMenuSettings": {
-    "description": "Side menu: Settings",
-    "message": "Настройки"
-  },
-  "sideMenuAbout": {
-    "description": "Side menu: About",
-    "message": "О расширении"
-  },
-  "buttonNew": {
-    "description": "Button to create a new script.",
-    "message": "Создать"
-  },
-  "buttonUpdateAll": {
-    "description": "Check all scripts for updates.",
-    "message": "Проверить обновления скриптов"
-  },
-  "anchorGetMoreScripts": {
-    "description": "Link to get more scripts.",
-    "message": "Скачать скрипты"
-  },
-  "msgLoading": {
-    "description": "Message shown in the options page before script list is loaded.",
-    "message": "Загрузка ..."
-  },
-  "labelSettings": {
-    "description": "Label shown on the top of settings page",
-    "message": "Настройки"
-  },
-  "labelAutoUpdate": {
-    "description": "Option to allow automatically checking scripts for updates every 24 hours.",
-    "message": "Ежедневно проверять обновления скриптов"
-  },
-  "labelIgnoreGrant": {
-    "description": "Option to suppress no @grant warnings.",
-    "message": "Не показывать предупреждения об отсутствии поля @grant"
-  },
-  "labelInjectMode": {
-    "description": "Label for a combo box to choose script injection modes.",
-    "message": "Режим встраивания скриптов:"
-  },
-  "injectModeNormal": {
-    "description": "Script injection mode: Normal",
-    "message": "Обычный"
-  },
-  "injectModeAdvanced": {
-    "description": "Script injection mode: Advanced",
-    "message": "Расширенный"
-  },
-  "labelDataImport": {
-    "description": "Section title of data import.",
-    "message": "Импорт данных"
-  },
-  "buttonImportData": {
-    "description": "Button to choose a file for data import.",
-    "message": "Импорт из zip-файла"
-  },
-  "buttonVacuum": {
-    "description": "Button to vacuum extension data.",
-    "message": "Сбросить кэш"
-  },
-  "labelDataExport": {
-    "description": "Section title of data export.",
-    "message": "Экспорт данных"
-  },
-  "labelScriptsToExport": {
-    "description": "Label shown on top of the script list for export.",
-    "message": "Скрипты для экспорта"
-  },
-  "labelExportScriptData": {
-    "description": "Option to export script data along with scripts.",
-    "message": "Настройки скрипта"
-  },
-  "buttonAllNone": {
-    "description": "Button to select all scripts or none.",
-    "message": "Выбрать Всё/Ничего"
-  },
-  "buttonExportData": {
-    "description": "Button to open the data export dialog.",
-    "message": "Экспорт в zip-файл"
-  },
-  "labelAbout": {
-    "description": "Label shown on top of the about page.",
-    "message": "О Violentmonkey"
-  },
-  "labelRelated": {
-    "description": "Label of related links.",
-    "message": "Связанные ссылки: "
-  },
-  "anchorSupportPage": {
-    "description": "Link to the support page of Violentmonkey.",
-    "message": "<a href=https://github.com/gera2ld/Violentmonkey/wiki target=_blank>Violentmonkey</a>"
-  },
-  "labelDonate": {
-    "description": "Label of link to donate page.",
-    "message": "Пожертвовать"
-  },
-  "labelFeedback": {
-    "description": "Label of link to feedback page.",
-    "message": "Обратная связь"
-  },
-  "labelAuthor": {
-    "description": "Label of author shown in the details of a script.",
-    "message": "Автор: "
-  },
-  "anchorAuthor": {
-    "description": "Author shown on about tab.",
-    "message": "<a href=mailto:[email protected]>Gerald</a>"
-  },
-  "labelTranslator": {
-    "description": "Label of translator.",
-    "message": "Переводчик: "
-  },
-  "anchorTranslator": {
-    "description": "Translator shown on about tab.",
-    "message": "softovikk"
-  },
-  "labelCurrentLang": {
-    "description": "Label of current language.",
-    "message": "Текущий язык: "
-  },
-  "labelScriptEditor": {
-    "description": "Shown in the title of the script editing page.",
-    "message": "Редактор скриптов"
-  },
-  "buttonCustomMeta": {
-    "description": "Button to edit the custom meta data of a script.",
-    "message": "Пользовательские meta-данные"
-  },
-  "labelName": {
-    "description": "Label of script name.",
-    "message": "Название:"
-  },
-  "labelRunAt": {
-    "description": "Label of script @run-at properties in custom meta data.",
-    "message": "Выполнить:"
-  },
-  "labelRunAtDefault": {
-    "description": "Shown when custom @run-at is not assigned.",
-    "message": "(по умолчанию)"
-  },
-  "labelHomepageURL": {
-    "description": "Label of script @homepageURL in custom meta data.",
-    "message": "Дом. страница:"
-  },
-  "labelUpdateURL": {
-    "description": "Label of script @updateURL in custom meta data.",
-    "message": "Адрес обновления:"
-  },
-  "labelDownloadURL": {
-    "description": "Label of script @downloadURL in custom meta data.",
-    "message": "Источник загрузки:"
-  },
-  "labelInclude": {
-    "description": "Label of @include rules.",
-    "message": "Задействовать на (правила включений include):"
-  },
-  "labelKeepInclude": {
-    "description": "Option to keep the original @include rules.",
-    "message": "Использовать оригинальные правила"
-  },
-  "labelCustomInclude": {
-    "description": "Label of custom @include rules.",
-    "message": "Пользовательские правила (одно на строку):"
-  },
-  "labelMatch": {
-    "description": "Label of @match rules.",
-    "message": "Задействовать на (правила совпадений match):"
-  },
-  "labelKeepMatch": {
-    "description": "Option to keep the original @match rules.",
-    "message": "Использовать оригинальные правила"
-  },
-  "labelCustomMatch": {
-    "description": "Label of custom @match rules.",
-    "message": "Пользовательские правила (одно на строку):"
-  },
-  "labelExclude": {
-    "description": "Label of @exclude rules.",
-    "message": "Не задействовать на (правила исключений exclude):"
-  },
-  "labelKeepExclude": {
-    "description": "Option to keep the original @exclude rules.",
-    "message": "Использовать оригинальные правила"
-  },
-  "labelCustomExclude": {
-    "description": "Label of custom @exclude rules.",
-    "message": "Пользовательские правила (одно на строку):"
-  },
-  "labelAllowUpdate": {
-    "description": "Option to allow checking updates for a script.",
-    "message": "Разрешить обновление"
-  },
-  "buttonSave": {
-    "description": "Button to save modifications of a script.",
-    "message": "Сохранить"
-  },
-  "buttonSaveClose": {
-    "description": "Button to save modifications of a script and then close the editing page.",
-    "message": "Сохранить и закрыть"
-  },
-  "labelNoScripts": {
-    "description": "Message shown when no script is installed.",
-    "message": "У вас ещё не установлено ни одного скрипта."
-  },
-  "hintSupportPage": {
-    "description": "Hint for support page.",
-    "message": "Поддержка",
-    "touched": false
-  },
-  "buttonDisable": {
-    "description": "Button to disable a script.",
-    "message": "Выключить"
-  },
-  "buttonEnable": {
-    "description": "Button to enable a script.",
-    "message": "Включить"
-  },
-  "buttonEdit": {
-    "description": "Button to edit a script.",
-    "message": "Изменить"
-  },
-  "buttonRemove": {
-    "description": "Button to remove a script.",
-    "message": "Удалить"
-  },
-  "buttonUpdate": {
-    "description": "Check a script for updates.",
-    "message": "Проверить обновления"
-  },
-  "msgImported": {
-    "description": "Message shown after import. There is an argument referring to the count of scripts imported.",
-    "message": "$1 скрипт(ов) импортировано."
-  },
-  "hintUseDownloadURL": {
-    "description": "Shown as a place holder for @updateURL when it is not assigned",
-    "message": "Use @downloadURL"
-  },
-  "confirmNotSaved": {
-    "description": "Confirm message shown when there are unsaved script modifications.",
-    "message": "Изменения не сохранены!\nНажмите OK, чтобы выйти или Отмена, чтобы вернуться."
-  },
-  "buttonVacuuming": {
-    "description": "Message shown when data vacuum is in progress.",
-    "message": "Очистка данных кэша..."
-  },
-  "buttonVacuumed": {
-    "description": "Message shown when data is vacuumed.",
-    "message": "Сбросить кэш"
-  },
-  "hintVacuum": {
-    "description": "Hint for vacuuming data.",
-    "message": "Сбросить избыточность кэша и попробовать подгрузить недостающие ресурсы"
-  },
-  "menuManageScripts": {
-    "description": "Menu item to manage scripts, or to open the options page of the extension.",
-    "message": "Управление скриптами"
-  },
-  "menuFindScripts": {
-    "description": "Menu item to find scripts for a site.",
-    "message": "Найти скрипты для сайта"
-  },
-  "menuScriptEnabled": {
-    "description": "Menu item showing the status of Violentmonkey, when enabled.",
-    "message": "Включить скрипты"
-  },
-  "menuScriptDisabled": {
-    "description": "Menu item showing the status of Violentmonkey, when disabled.",
-    "message": ""
-  },
-  "menuBack": {
-    "description": "Menu item to go back to main menu from script commands.",
-    "message": "Назад"
-  },
-  "menuCommands": {
-    "description": "Menu item to list script commands.",
-    "message": "Команды скриптов..."
-  },
-  "labelSearch": {
-    "description": "Label for search input in search box.",
-    "message": "Найти для: "
-  },
-  "labelSearchFor": {
-    "description": "Text shown as a place holder in the search box.",
-    "message": "Поиск..."
-  },
-  "labelReplace": {
-    "description": "Label for replace input in search box.",
-    "message": "Заменить на: "
-  },
-  "labelReplaceWith": {
-    "description": "Text shown as a place holder in the replace box.",
-    "message": "Заменить..."
-  },
-  "buttonReplace": {
-    "description": "Button to replace the current match.",
-    "message": "Заменять"
-  },
-  "buttonReplaceAll": {
-    "description": "Button to replace all matches.",
-    "message": "Заменить всё"
-  },
-  "labelAutoReloadCurrentTab": {
-    "description": "Option to reload current tab after a script is switched on or off from menu.",
-    "message": "Обновить текущую вкладку после включения/выключения скрипта"
-  },
-  "hintInjectModeNormal": {
-    "description": "Hint to explain the normal injection mode.",
-    "message": "Эффективен, но иеет проблемы с некоторыми защищенными страницами, например https://github.com"
-  },
-  "hintInjectModeAdvanced": {
-    "description": "Hint to explain the advanced injection mode.",
-    "message": "Работает на большинстве сайтов"
-  },
-  "hintInputURL": {
-    "description": "Hint for a prompt box to input URL of a user script.",
-    "message": "Введите URL:"
-  },
-  "buttonInstallFromURL": {
-    "description": "Button to ask for URL of a user script.",
-    "message": "Установить по ссылке"
-  },
-  "labelSync": {
-    "description": "Label for sync options.",
-    "message": ""
-  },
-  "labelSyncDropbox": {
-    "description": "Label for sync to dropbox option.",
-    "message": ""
-  },
-  "buttonAuthorize": {
-    "description": "Button to authorize permissions for sync.",
-    "message": ""
-  },
-  "buttonAuthorized": {
-    "description": "Button shown when permissions are already authorized for sync.",
-    "message": ""
-  }
-}

+ 350 - 0
src/_locales/ru/messages.yml

@@ -0,0 +1,350 @@
+extName:
+  description: Name of this extension.
+  message: Violentmonkey
+extDescription:
+  description: Description for this extension.
+  message: Поддержка пользовательских скриптов для Opera.
+extTranslator:
+  description: Information of the translator.
+  message: softovikk
+  touched: false
+msgUpdated:
+  description: Message shown when a script is updated/reinstalled.
+  message: Скрипт обновлен.
+msgErrorFetchingScript:
+  description: Message shown when Violentmonkey fails fetching a new version of the script.
+  message: 'Ошибка загрузки скрипта!'
+msgInstalled:
+  description: Message shown when a script is installed.
+  message: Скрипт установлен.
+Warning:
+  description: Show warnings with a notification.
+  message: Предупреждение
+msgWarnGrant:
+  description: Message shown when `@grant` is not found in a script.
+  message: 'У скрипта [$1] отсутствует поле `@grant`! Кликните для подробностей.'
+labelNoName:
+  description: Text as the name of a script when no @name is assigned.
+  message: Новый скрипт
+msgUpdating:
+  description: Message shown when a new version of script is being fetched.
+  message: Обновление...
+msgNewVersion:
+  description: 'Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided.'
+  message: Доступна новая версия.
+msgCheckingForUpdate:
+  description: Message shown when a script is being checked for updates by version numbers.
+  message: Проверка наличия обновлений...
+msgErrorFetchingUpdateInfo:
+  description: Message shown when Violentmonkey fails fetching version data of the script.
+  message: Не удается проверить обновления.
+msgNoUpdate:
+  description: Message shown when there is no new version of a script.
+  message: Обновления не найдены.
+labelInstall:
+  description: Shown in the title of the confirm page while trying to install a script.
+  message: Установка скрипта
+buttonInstallOptions:
+  description: Button to show options of installation confirm page.
+  message: Настройки
+installOptionClose:
+  description: Option to close confirm window after installation.
+  message: Закрыть после установки
+installOptionTrack:
+  description: Option to track the loading local file before window is closed.
+  message: 'Следить за обновлениями локального файла, пока это окно открыто'
+buttonConfirmInstallation:
+  description: Button to confirm installation of a script.
+  message: Установить
+buttonClose:
+  description: Button to close window.
+  message: Закрыть
+msgErrorLoadingData:
+  description: Message shown on confirm page when the script to be installed cannot be loaded.
+  message: Ошибка загрузки скрипта.
+msgLoadedData:
+  description: Message shown in the confirm page when a javascript file to be installed is loaded.
+  message: Скрипт загружен.
+msgErrorLoadingDependency:
+  description: Message shown when not all requirements are loaded successfully.
+  message: Ошибка загрузки требований.
+msgLoadingDependency:
+  description: Message shown on confirm page when the requirements are being downloaded.
+  message: Загрузка требований... ($1/$2)
+msgScriptURL:
+  description: URL of the script to be installed on confirm page.
+  message: 'URL-адрес скрипта: $1'
+  touched: false
+msgLoadingData:
+  description: Message shown on confirm page when the script to be installed is loading.
+  message: Загружается скрипт...
+sideMenuInstalled:
+  description: 'Side menu: Installed scripts'
+  message: Установленные скрипты
+sideMenuSettings:
+  description: 'Side menu: Settings'
+  message: Настройки
+sideMenuAbout:
+  description: 'Side menu: About'
+  message: О расширении
+buttonNew:
+  description: Button to create a new script.
+  message: Создать
+buttonUpdateAll:
+  description: Check all scripts for updates.
+  message: Проверить обновления скриптов
+anchorGetMoreScripts:
+  description: Link to get more scripts.
+  message: Скачать скрипты
+msgLoading:
+  description: Message shown in the options page before script list is loaded.
+  message: Загрузка ...
+labelSettings:
+  description: Label shown on the top of settings page
+  message: Настройки
+labelAutoUpdate:
+  description: Option to allow automatically checking scripts for updates every 24 hours.
+  message: Ежедневно проверять обновления скриптов
+labelIgnoreGrant:
+  description: Option to suppress no @grant warnings.
+  message: Не показывать предупреждения об отсутствии поля @grant
+labelInjectMode:
+  description: Label for a combo box to choose script injection modes.
+  message: 'Режим встраивания скриптов:'
+injectModeNormal:
+  description: 'Script injection mode: Normal'
+  message: Обычный
+injectModeAdvanced:
+  description: 'Script injection mode: Advanced'
+  message: Расширенный
+labelDataImport:
+  description: Section title of data import.
+  message: Импорт данных
+buttonImportData:
+  description: Button to choose a file for data import.
+  message: Импорт из zip-файла
+buttonVacuum:
+  description: Button to vacuum extension data.
+  message: Сбросить кэш
+labelDataExport:
+  description: Section title of data export.
+  message: Экспорт данных
+labelScriptsToExport:
+  description: Label shown on top of the script list for export.
+  message: Скрипты для экспорта
+labelExportScriptData:
+  description: Option to export script data along with scripts.
+  message: Настройки скрипта
+buttonAllNone:
+  description: Button to select all scripts or none.
+  message: Выбрать Всё/Ничего
+buttonExportData:
+  description: Button to open the data export dialog.
+  message: Экспорт в zip-файл
+labelAbout:
+  description: Label shown on top of the about page.
+  message: О Violentmonkey
+labelRelated:
+  description: Label of related links.
+  message: 'Связанные ссылки: '
+anchorSupportPage:
+  description: Link to the support page of Violentmonkey.
+  message: '<a href=https://github.com/gera2ld/Violentmonkey/wiki target=_blank>Violentmonkey</a>'
+labelDonate:
+  description: Label of link to donate page.
+  message: Пожертвовать
+labelFeedback:
+  description: Label of link to feedback page.
+  message: Обратная связь
+labelAuthor:
+  description: Label of author shown in the details of a script.
+  message: 'Автор: '
+anchorAuthor:
+  description: Author shown on about tab.
+  message: '<a href=mailto:[email protected]>Gerald</a>'
+labelTranslator:
+  description: Label of translator.
+  message: 'Переводчик: '
+anchorTranslator:
+  description: Translator shown on about tab.
+  message: softovikk
+labelCurrentLang:
+  description: Label of current language.
+  message: 'Текущий язык: '
+labelScriptEditor:
+  description: Shown in the title of the script editing page.
+  message: Редактор скриптов
+buttonCustomMeta:
+  description: Button to edit the custom meta data of a script.
+  message: Пользовательские meta-данные
+labelName:
+  description: Label of script name.
+  message: 'Название:'
+labelRunAt:
+  description: Label of script @run-at properties in custom meta data.
+  message: 'Выполнить:'
+labelRunAtDefault:
+  description: Shown when custom @run-at is not assigned.
+  message: (по умолчанию)
+labelHomepageURL:
+  description: Label of script @homepageURL in custom meta data.
+  message: 'Дом. страница:'
+labelUpdateURL:
+  description: Label of script @updateURL in custom meta data.
+  message: 'Адрес обновления:'
+labelDownloadURL:
+  description: Label of script @downloadURL in custom meta data.
+  message: 'Источник загрузки:'
+labelInclude:
+  description: Label of @include rules.
+  message: 'Задействовать на (правила включений include):'
+labelKeepInclude:
+  description: Option to keep the original @include rules.
+  message: Использовать оригинальные правила
+labelCustomInclude:
+  description: Label of custom @include rules.
+  message: 'Пользовательские правила (одно на строку):'
+labelMatch:
+  description: Label of @match rules.
+  message: 'Задействовать на (правила совпадений match):'
+labelKeepMatch:
+  description: Option to keep the original @match rules.
+  message: Использовать оригинальные правила
+labelCustomMatch:
+  description: Label of custom @match rules.
+  message: 'Пользовательские правила (одно на строку):'
+labelExclude:
+  description: Label of @exclude rules.
+  message: 'Не задействовать на (правила исключений exclude):'
+labelKeepExclude:
+  description: Option to keep the original @exclude rules.
+  message: Использовать оригинальные правила
+labelCustomExclude:
+  description: Label of custom @exclude rules.
+  message: 'Пользовательские правила (одно на строку):'
+labelAllowUpdate:
+  description: Option to allow checking updates for a script.
+  message: Разрешить обновление
+buttonSave:
+  description: Button to save modifications of a script.
+  message: Сохранить
+buttonSaveClose:
+  description: Button to save modifications of a script and then close the editing page.
+  message: Сохранить и закрыть
+labelNoScripts:
+  description: Message shown when no script is installed.
+  message: У вас ещё не установлено ни одного скрипта.
+hintSupportPage:
+  description: Hint for support page.
+  message: Поддержка
+  touched: false
+buttonDisable:
+  description: Button to disable a script.
+  message: Выключить
+buttonEnable:
+  description: Button to enable a script.
+  message: Включить
+buttonEdit:
+  description: Button to edit a script.
+  message: Изменить
+buttonRemove:
+  description: Button to remove a script.
+  message: Удалить
+buttonUpdate:
+  description: Check a script for updates.
+  message: Проверить обновления
+msgImported:
+  description: Message shown after import. There is an argument referring to the count of scripts imported.
+  message: $1 скрипт(ов) импортировано.
+hintUseDownloadURL:
+  description: Shown as a place holder for @updateURL when it is not assigned
+  message: Use @downloadURL
+confirmNotSaved:
+  description: Confirm message shown when there are unsaved script modifications.
+  message: |-
+    Изменения не сохранены!
+    Нажмите OK, чтобы выйти или Отмена, чтобы вернуться.
+buttonVacuuming:
+  description: Message shown when data vacuum is in progress.
+  message: Очистка данных кэша...
+buttonVacuumed:
+  description: Message shown when data is vacuumed.
+  message: Сбросить кэш
+hintVacuum:
+  description: Hint for vacuuming data.
+  message: Сбросить избыточность кэша и попробовать подгрузить недостающие ресурсы
+menuManageScripts:
+  description: 'Menu item to manage scripts, or to open the options page of the extension.'
+  message: Управление скриптами
+menuFindScripts:
+  description: Menu item to find scripts for a site.
+  message: Найти скрипты для сайта
+menuScriptEnabled:
+  description: 'Menu item showing the status of Violentmonkey, when enabled.'
+  message: Включить скрипты
+menuScriptDisabled:
+  description: 'Menu item showing the status of Violentmonkey, when disabled.'
+  message: ''
+menuBack:
+  description: Menu item to go back to main menu from script commands.
+  message: Назад
+menuCommands:
+  description: Menu item to list script commands.
+  message: Команды скриптов...
+labelSearch:
+  description: Label for search input in search box.
+  message: 'Найти для: '
+labelSearchFor:
+  description: Text shown as a place holder in the search box.
+  message: Поиск...
+labelReplace:
+  description: Label for replace input in search box.
+  message: 'Заменить на: '
+labelReplaceWith:
+  description: Text shown as a place holder in the replace box.
+  message: Заменить...
+buttonReplace:
+  description: Button to replace the current match.
+  message: Заменять
+buttonReplaceAll:
+  description: Button to replace all matches.
+  message: Заменить всё
+labelAutoReloadCurrentTab:
+  description: Option to reload current tab after a script is switched on or off from menu.
+  message: Обновить текущую вкладку после включения/выключения скрипта
+hintInjectModeNormal:
+  description: Hint to explain the normal injection mode.
+  message: 'Эффективен, но иеет проблемы с некоторыми защищенными страницами, например https://github.com'
+hintInjectModeAdvanced:
+  description: Hint to explain the advanced injection mode.
+  message: Работает на большинстве сайтов
+hintInputURL:
+  description: Hint for a prompt box to input URL of a user script.
+  message: 'Введите URL:'
+buttonInstallFromURL:
+  description: Button to ask for URL of a user script.
+  message: Установить по ссылке
+labelSync:
+  description: Label for sync options.
+  message: ''
+buttonAuthorize:
+  description: Button to authorize permissions for sync.
+  message: ''
+buttonAuthorized:
+  description: Button shown when permissions are already authorized for sync.
+  message: ''
+labelSyncTo:
+  description: Label for sync service.
+  message: ''
+lastSync:
+  description: Label for last sync timestamp.
+  message: ''
+msgSyncError:
+  description: Message shown when sync failed.
+  message: ''
+msgSyncing:
+  description: Message shown when sync is in progress.
+  message: ''
+msgSyncInit:
+  description: Message shown when sync service is initializing.
+  message: ''

+ 0 - 449
src/_locales/zh/messages.json

@@ -1,449 +0,0 @@
-{
-  "extName": {
-    "description": "Name of this extension.",
-    "message": "暴力猴"
-  },
-  "extDescription": {
-    "description": "Description for this extension.",
-    "message": "为Opera提供用户脚本支持。"
-  },
-  "extTranslator": {
-    "description": "Information of the translator.",
-    "message": "Gerald <[email protected]>",
-    "touched": false
-  },
-  "msgUpdated": {
-    "description": "Message shown when a script is updated/reinstalled.",
-    "message": "脚本已更新。"
-  },
-  "msgErrorFetchingScript": {
-    "description": "Message shown when Violentmonkey fails fetching a new version of the script.",
-    "message": "获取脚本发生错误!"
-  },
-  "msgInstalled": {
-    "description": "Message shown when a script is installed.",
-    "message": "脚本已安装。"
-  },
-  "Warning": {
-    "description": "Show warnings with a notification.",
-    "message": "警告"
-  },
-  "msgWarnGrant": {
-    "description": "Message shown when `@grant` is not found in a script.",
-    "message": "脚本【$1】没有`@grant`行!点击查看更多信息。"
-  },
-  "labelNoName": {
-    "description": "Text as the name of a script when no @name is assigned.",
-    "message": "名字为空"
-  },
-  "msgUpdating": {
-    "description": "Message shown when a new version of script is being fetched.",
-    "message": "正在更新..."
-  },
-  "msgNewVersion": {
-    "description": "Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided.",
-    "message": "发现新版本。"
-  },
-  "msgCheckingForUpdate": {
-    "description": "Message shown when a script is being checked for updates by version numbers.",
-    "message": "正在检查更新..."
-  },
-  "msgErrorFetchingUpdateInfo": {
-    "description": "Message shown when Violentmonkey fails fetching version data of the script.",
-    "message": "获取更新信息失败。"
-  },
-  "msgNoUpdate": {
-    "description": "Message shown when there is no new version of a script.",
-    "message": "未发现新版本。"
-  },
-  "labelInstall": {
-    "description": "Shown in the title of the confirm page while trying to install a script.",
-    "message": "安装脚本"
-  },
-  "buttonInstallOptions": {
-    "description": "Button to show options of installation confirm page.",
-    "message": "选项"
-  },
-  "installOptionClose": {
-    "description": "Option to close confirm window after installation.",
-    "message": "安装完成后关闭"
-  },
-  "installOptionTrack": {
-    "description": "Option to track the loading local file before window is closed.",
-    "message": "本窗口关闭前跟踪打开的本地文件同步更新"
-  },
-  "buttonConfirmInstallation": {
-    "description": "Button to confirm installation of a script.",
-    "message": "确认安装"
-  },
-  "buttonClose": {
-    "description": "Button to close window.",
-    "message": "关闭"
-  },
-  "msgErrorLoadingData": {
-    "description": "Message shown on confirm page when the script to be installed cannot be loaded.",
-    "message": "加载脚本数据发生错误。"
-  },
-  "msgLoadedData": {
-    "description": "Message shown in the confirm page when a javascript file to be installed is loaded.",
-    "message": "脚本数据已加载。"
-  },
-  "msgErrorLoadingDependency": {
-    "description": "Message shown when not all requirements are loaded successfully.",
-    "message": "加载脚本依赖发生错误。"
-  },
-  "msgLoadingDependency": {
-    "description": "Message shown on confirm page when the requirements are being downloaded.",
-    "message": "正在加载脚本依赖...($1/$2)"
-  },
-  "msgScriptURL": {
-    "description": "URL of the script to be installed on confirm page.",
-    "message": "脚本URL:$1",
-    "touched": false
-  },
-  "msgLoadingData": {
-    "description": "Message shown on confirm page when the script to be installed is loading.",
-    "message": "正在加载脚本数据..."
-  },
-  "sideMenuInstalled": {
-    "description": "Side menu: Installed scripts",
-    "message": "已安装的脚本"
-  },
-  "sideMenuSettings": {
-    "description": "Side menu: Settings",
-    "message": "设置"
-  },
-  "sideMenuAbout": {
-    "description": "Side menu: About",
-    "message": "关于"
-  },
-  "buttonNew": {
-    "description": "Button to create a new script.",
-    "message": "新建"
-  },
-  "buttonUpdateAll": {
-    "description": "Check all scripts for updates.",
-    "message": "全部更新"
-  },
-  "anchorGetMoreScripts": {
-    "description": "Link to get more scripts.",
-    "message": "获取更多脚本"
-  },
-  "msgLoading": {
-    "description": "Message shown in the options page before script list is loaded.",
-    "message": "加载中 ..."
-  },
-  "labelSettings": {
-    "description": "Label shown on the top of settings page",
-    "message": "设置"
-  },
-  "labelAutoUpdate": {
-    "description": "Option to allow automatically checking scripts for updates every 24 hours.",
-    "message": "每天自动更新脚本"
-  },
-  "labelIgnoreGrant": {
-    "description": "Option to suppress no @grant warnings.",
-    "message": "不显示缺少@grant的警告"
-  },
-  "labelInjectMode": {
-    "description": "Label for a combo box to choose script injection modes.",
-    "message": "脚本注入模式:"
-  },
-  "injectModeNormal": {
-    "description": "Script injection mode: Normal",
-    "message": "普通"
-  },
-  "injectModeAdvanced": {
-    "description": "Script injection mode: Advanced",
-    "message": "高级"
-  },
-  "labelDataImport": {
-    "description": "Section title of data import.",
-    "message": "数据导入"
-  },
-  "buttonImportData": {
-    "description": "Button to choose a file for data import.",
-    "message": "从zip文件导入"
-  },
-  "buttonVacuum": {
-    "description": "Button to vacuum extension data.",
-    "message": "整理数据库"
-  },
-  "labelDataExport": {
-    "description": "Section title of data export.",
-    "message": "数据导出"
-  },
-  "labelScriptsToExport": {
-    "description": "Label shown on top of the script list for export.",
-    "message": "要导出的脚本"
-  },
-  "labelExportScriptData": {
-    "description": "Option to export script data along with scripts.",
-    "message": "导出脚本数据"
-  },
-  "buttonAllNone": {
-    "description": "Button to select all scripts or none.",
-    "message": "全选/不选"
-  },
-  "buttonExportData": {
-    "description": "Button to open the data export dialog.",
-    "message": "导出为zip文件"
-  },
-  "labelAbout": {
-    "description": "Label shown on top of the about page.",
-    "message": "关于暴力猴"
-  },
-  "labelRelated": {
-    "description": "Label of related links.",
-    "message": "相关链接:"
-  },
-  "anchorSupportPage": {
-    "description": "Link to the support page of Violentmonkey.",
-    "message": "<a href=http://gerald.top/code/vm-nex target=_blank>暴力猴</a>"
-  },
-  "labelDonate": {
-    "description": "Label of link to donate page.",
-    "message": "捐助"
-  },
-  "labelFeedback": {
-    "description": "Label of link to feedback page.",
-    "message": "反馈"
-  },
-  "labelAuthor": {
-    "description": "Label of author shown in the details of a script.",
-    "message": "作者:"
-  },
-  "anchorAuthor": {
-    "description": "Author shown on about tab.",
-    "message": "<a href=mailto:[email protected]>Gerald</a>"
-  },
-  "labelTranslator": {
-    "description": "Label of translator.",
-    "message": "翻译者:"
-  },
-  "anchorTranslator": {
-    "description": "Translator shown on about tab.",
-    "message": "<a href=mailto:[email protected]>Gerald</a>"
-  },
-  "labelCurrentLang": {
-    "description": "Label of current language.",
-    "message": "当前语言:"
-  },
-  "labelScriptEditor": {
-    "description": "Shown in the title of the script editing page.",
-    "message": "脚本编辑器"
-  },
-  "buttonCustomMeta": {
-    "description": "Button to edit the custom meta data of a script.",
-    "message": "自定义元数据"
-  },
-  "labelName": {
-    "description": "Label of script name.",
-    "message": "名字:"
-  },
-  "labelRunAt": {
-    "description": "Label of script @run-at properties in custom meta data.",
-    "message": "运行时机:"
-  },
-  "labelRunAtDefault": {
-    "description": "Shown when custom @run-at is not assigned.",
-    "message": "(默认)"
-  },
-  "labelHomepageURL": {
-    "description": "Label of script @homepageURL in custom meta data.",
-    "message": "主页地址:"
-  },
-  "labelUpdateURL": {
-    "description": "Label of script @updateURL in custom meta data.",
-    "message": "检查更新地址:"
-  },
-  "labelDownloadURL": {
-    "description": "Label of script @downloadURL in custom meta data.",
-    "message": "下载更新地址:"
-  },
-  "labelInclude": {
-    "description": "Label of @include rules.",
-    "message": "包含规则"
-  },
-  "labelKeepInclude": {
-    "description": "Option to keep the original @include rules.",
-    "message": "保留原有的包含规则"
-  },
-  "labelCustomInclude": {
-    "description": "Label of custom @include rules.",
-    "message": "自定义包含规则:<em>(每行一个)</em>"
-  },
-  "labelMatch": {
-    "description": "Label of @match rules.",
-    "message": "匹配规则"
-  },
-  "labelKeepMatch": {
-    "description": "Option to keep the original @match rules.",
-    "message": "保留原有的匹配规则"
-  },
-  "labelCustomMatch": {
-    "description": "Label of custom @match rules.",
-    "message": "自定义匹配规则:<em>(每行一个)</em>"
-  },
-  "labelExclude": {
-    "description": "Label of @exclude rules.",
-    "message": "排除规则"
-  },
-  "labelKeepExclude": {
-    "description": "Option to keep the original @exclude rules.",
-    "message": "保留原有的排除规则"
-  },
-  "labelCustomExclude": {
-    "description": "Label of custom @exclude rules.",
-    "message": "自定义排除规则:<em>(每行一个)</em>"
-  },
-  "labelAllowUpdate": {
-    "description": "Option to allow checking updates for a script.",
-    "message": "允许更新"
-  },
-  "buttonSave": {
-    "description": "Button to save modifications of a script.",
-    "message": "保存"
-  },
-  "buttonSaveClose": {
-    "description": "Button to save modifications of a script and then close the editing page.",
-    "message": "保存并关闭"
-  },
-  "labelNoScripts": {
-    "description": "Message shown when no script is installed.",
-    "message": "你居然没有脚本!<br>快<a href=http://gerald.top/tag/userjs target=_blank>点此</a>查看<a href=http://gerald.top target=_blank style='color:orange'>Gerald</a>的脚本吧~"
-  },
-  "hintSupportPage": {
-    "description": "Hint for support page.",
-    "message": "支持页面",
-    "touched": false
-  },
-  "buttonDisable": {
-    "description": "Button to disable a script.",
-    "message": "禁用"
-  },
-  "buttonEnable": {
-    "description": "Button to enable a script.",
-    "message": "启用"
-  },
-  "buttonEdit": {
-    "description": "Button to edit a script.",
-    "message": "编辑"
-  },
-  "buttonRemove": {
-    "description": "Button to remove a script.",
-    "message": "移除"
-  },
-  "buttonUpdate": {
-    "description": "Check a script for updates.",
-    "message": "查找更新"
-  },
-  "msgImported": {
-    "description": "Message shown after import. There is an argument referring to the count of scripts imported.",
-    "message": "已导入$1个脚本。"
-  },
-  "hintUseDownloadURL": {
-    "description": "Shown as a place holder for @updateURL when it is not assigned",
-    "message": "使用@downloadURL"
-  },
-  "confirmNotSaved": {
-    "description": "Confirm message shown when there are unsaved script modifications.",
-    "message": "修改尚未保存!\n点击确定放弃修改或点击取消停留此页面。"
-  },
-  "buttonVacuuming": {
-    "description": "Message shown when data vacuum is in progress.",
-    "message": "正在整理..."
-  },
-  "buttonVacuumed": {
-    "description": "Message shown when data is vacuumed.",
-    "message": "数据已整理"
-  },
-  "hintVacuum": {
-    "description": "Hint for vacuuming data.",
-    "message": "丢弃多余的数据,并尝试重新获取缺失的资源。"
-  },
-  "menuManageScripts": {
-    "description": "Menu item to manage scripts, or to open the options page of the extension.",
-    "message": "管理脚本"
-  },
-  "menuFindScripts": {
-    "description": "Menu item to find scripts for a site.",
-    "message": "为此站点查找脚本"
-  },
-  "menuScriptEnabled": {
-    "description": "Menu item showing the status of Violentmonkey, when enabled.",
-    "message": "脚本已启用"
-  },
-  "menuScriptDisabled": {
-    "description": "Menu item showing the status of Violentmonkey, when disabled.",
-    "message": "脚本已禁用"
-  },
-  "menuBack": {
-    "description": "Menu item to go back to main menu from script commands.",
-    "message": "返回"
-  },
-  "menuCommands": {
-    "description": "Menu item to list script commands.",
-    "message": "脚本命令..."
-  },
-  "labelSearch": {
-    "description": "Label for search input in search box.",
-    "message": "查找:"
-  },
-  "labelSearchFor": {
-    "description": "Text shown as a place holder in the search box.",
-    "message": "查找..."
-  },
-  "labelReplace": {
-    "description": "Label for replace input in search box.",
-    "message": "替换:"
-  },
-  "labelReplaceWith": {
-    "description": "Text shown as a place holder in the replace box.",
-    "message": "替换成..."
-  },
-  "buttonReplace": {
-    "description": "Button to replace the current match.",
-    "message": "替换"
-  },
-  "buttonReplaceAll": {
-    "description": "Button to replace all matches.",
-    "message": "所有"
-  },
-  "labelAutoReloadCurrentTab": {
-    "description": "Option to reload current tab after a script is switched on or off from menu.",
-    "message": "从菜单开启或关闭脚本后自动刷新当前页面"
-  },
-  "hintInjectModeNormal": {
-    "description": "Hint to explain the normal injection mode.",
-    "message": "简单粗暴,但是在某些安全性高的页面会注入失败,如https://github.com"
-  },
-  "hintInjectModeAdvanced": {
-    "description": "Hint to explain the advanced injection mode.",
-    "message": "不走寻常路,可以在大部分页面成功注入"
-  },
-  "hintInputURL": {
-    "description": "Hint for a prompt box to input URL of a user script.",
-    "message": "请输入地址:"
-  },
-  "buttonInstallFromURL": {
-    "description": "Button to ask for URL of a user script.",
-    "message": "通过地址安装"
-  },
-  "labelSync": {
-    "description": "Label for sync options.",
-    "message": "同步"
-  },
-  "labelSyncDropbox": {
-    "description": "Label for sync to dropbox option.",
-    "message": "同步到Dropbox"
-  },
-  "buttonAuthorize": {
-    "description": "Button to authorize permissions for sync.",
-    "message": "授权"
-  },
-  "buttonAuthorized": {
-    "description": "Button shown when permissions are already authorized for sync.",
-    "message": "已授权"
-  }
-}

+ 350 - 0
src/_locales/zh/messages.yml

@@ -0,0 +1,350 @@
+extName:
+  description: Name of this extension.
+  message: 暴力猴
+extDescription:
+  description: Description for this extension.
+  message: 为Opera提供用户脚本支持。
+extTranslator:
+  description: Information of the translator.
+  message: 'Gerald <[email protected]>'
+  touched: false
+msgUpdated:
+  description: Message shown when a script is updated/reinstalled.
+  message: 脚本已更新。
+msgErrorFetchingScript:
+  description: Message shown when Violentmonkey fails fetching a new version of the script.
+  message: 获取脚本发生错误!
+msgInstalled:
+  description: Message shown when a script is installed.
+  message: 脚本已安装。
+Warning:
+  description: Show warnings with a notification.
+  message: 警告
+msgWarnGrant:
+  description: Message shown when `@grant` is not found in a script.
+  message: 脚本【$1】没有`@grant`行!点击查看更多信息。
+labelNoName:
+  description: Text as the name of a script when no @name is assigned.
+  message: 名字为空
+msgUpdating:
+  description: Message shown when a new version of script is being fetched.
+  message: 正在更新...
+msgNewVersion:
+  description: 'Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided.'
+  message: 发现新版本。
+msgCheckingForUpdate:
+  description: Message shown when a script is being checked for updates by version numbers.
+  message: 正在检查更新...
+msgErrorFetchingUpdateInfo:
+  description: Message shown when Violentmonkey fails fetching version data of the script.
+  message: 获取更新信息失败。
+msgNoUpdate:
+  description: Message shown when there is no new version of a script.
+  message: 未发现新版本。
+labelInstall:
+  description: Shown in the title of the confirm page while trying to install a script.
+  message: 安装脚本
+buttonInstallOptions:
+  description: Button to show options of installation confirm page.
+  message: 选项
+installOptionClose:
+  description: Option to close confirm window after installation.
+  message: 安装完成后关闭
+installOptionTrack:
+  description: Option to track the loading local file before window is closed.
+  message: 本窗口关闭前跟踪打开的本地文件同步更新
+buttonConfirmInstallation:
+  description: Button to confirm installation of a script.
+  message: 确认安装
+buttonClose:
+  description: Button to close window.
+  message: 关闭
+msgErrorLoadingData:
+  description: Message shown on confirm page when the script to be installed cannot be loaded.
+  message: 加载脚本数据发生错误。
+msgLoadedData:
+  description: Message shown in the confirm page when a javascript file to be installed is loaded.
+  message: 脚本数据已加载。
+msgErrorLoadingDependency:
+  description: Message shown when not all requirements are loaded successfully.
+  message: 加载脚本依赖发生错误。
+msgLoadingDependency:
+  description: Message shown on confirm page when the requirements are being downloaded.
+  message: 正在加载脚本依赖...($1/$2)
+msgScriptURL:
+  description: URL of the script to be installed on confirm page.
+  message: 脚本URL:$1
+  touched: false
+msgLoadingData:
+  description: Message shown on confirm page when the script to be installed is loading.
+  message: 正在加载脚本数据...
+sideMenuInstalled:
+  description: 'Side menu: Installed scripts'
+  message: 已安装的脚本
+sideMenuSettings:
+  description: 'Side menu: Settings'
+  message: 设置
+sideMenuAbout:
+  description: 'Side menu: About'
+  message: 关于
+buttonNew:
+  description: Button to create a new script.
+  message: 新建
+buttonUpdateAll:
+  description: Check all scripts for updates.
+  message: 全部更新
+anchorGetMoreScripts:
+  description: Link to get more scripts.
+  message: 获取更多脚本
+msgLoading:
+  description: Message shown in the options page before script list is loaded.
+  message: 加载中 ...
+labelSettings:
+  description: Label shown on the top of settings page
+  message: 设置
+labelAutoUpdate:
+  description: Option to allow automatically checking scripts for updates every 24 hours.
+  message: 每天自动更新脚本
+labelIgnoreGrant:
+  description: Option to suppress no @grant warnings.
+  message: 不显示缺少@grant的警告
+labelInjectMode:
+  description: Label for a combo box to choose script injection modes.
+  message: 脚本注入模式:
+injectModeNormal:
+  description: 'Script injection mode: Normal'
+  message: 普通
+injectModeAdvanced:
+  description: 'Script injection mode: Advanced'
+  message: 高级
+labelDataImport:
+  description: Section title of data import.
+  message: 数据导入
+buttonImportData:
+  description: Button to choose a file for data import.
+  message: 从zip文件导入
+buttonVacuum:
+  description: Button to vacuum extension data.
+  message: 整理数据库
+labelDataExport:
+  description: Section title of data export.
+  message: 数据导出
+labelScriptsToExport:
+  description: Label shown on top of the script list for export.
+  message: 要导出的脚本
+labelExportScriptData:
+  description: Option to export script data along with scripts.
+  message: 导出脚本数据
+buttonAllNone:
+  description: Button to select all scripts or none.
+  message: 全选/不选
+buttonExportData:
+  description: Button to open the data export dialog.
+  message: 导出为zip文件
+labelAbout:
+  description: Label shown on top of the about page.
+  message: 关于暴力猴
+labelRelated:
+  description: Label of related links.
+  message: 相关链接:
+anchorSupportPage:
+  description: Link to the support page of Violentmonkey.
+  message: '<a href=http://gerald.top/code/vm-nex target=_blank>暴力猴</a>'
+labelDonate:
+  description: Label of link to donate page.
+  message: 捐助
+labelFeedback:
+  description: Label of link to feedback page.
+  message: 反馈
+labelAuthor:
+  description: Label of author shown in the details of a script.
+  message: 作者:
+anchorAuthor:
+  description: Author shown on about tab.
+  message: '<a href=mailto:[email protected]>Gerald</a>'
+labelTranslator:
+  description: Label of translator.
+  message: 翻译者:
+anchorTranslator:
+  description: Translator shown on about tab.
+  message: '<a href=mailto:[email protected]>Gerald</a>'
+labelCurrentLang:
+  description: Label of current language.
+  message: 当前语言:
+labelScriptEditor:
+  description: Shown in the title of the script editing page.
+  message: 脚本编辑器
+buttonCustomMeta:
+  description: Button to edit the custom meta data of a script.
+  message: 自定义元数据
+labelName:
+  description: Label of script name.
+  message: 名字:
+labelRunAt:
+  description: Label of script @run-at properties in custom meta data.
+  message: 运行时机:
+labelRunAtDefault:
+  description: Shown when custom @run-at is not assigned.
+  message: (默认)
+labelHomepageURL:
+  description: Label of script @homepageURL in custom meta data.
+  message: 主页地址:
+labelUpdateURL:
+  description: Label of script @updateURL in custom meta data.
+  message: 检查更新地址:
+labelDownloadURL:
+  description: Label of script @downloadURL in custom meta data.
+  message: 下载更新地址:
+labelInclude:
+  description: Label of @include rules.
+  message: 包含规则
+labelKeepInclude:
+  description: Option to keep the original @include rules.
+  message: 保留原有的包含规则
+labelCustomInclude:
+  description: Label of custom @include rules.
+  message: '自定义包含规则:<em>(每行一个)</em>'
+labelMatch:
+  description: Label of @match rules.
+  message: 匹配规则
+labelKeepMatch:
+  description: Option to keep the original @match rules.
+  message: 保留原有的匹配规则
+labelCustomMatch:
+  description: Label of custom @match rules.
+  message: '自定义匹配规则:<em>(每行一个)</em>'
+labelExclude:
+  description: Label of @exclude rules.
+  message: 排除规则
+labelKeepExclude:
+  description: Option to keep the original @exclude rules.
+  message: 保留原有的排除规则
+labelCustomExclude:
+  description: Label of custom @exclude rules.
+  message: '自定义排除规则:<em>(每行一个)</em>'
+labelAllowUpdate:
+  description: Option to allow checking updates for a script.
+  message: 允许更新
+buttonSave:
+  description: Button to save modifications of a script.
+  message: 保存
+buttonSaveClose:
+  description: Button to save modifications of a script and then close the editing page.
+  message: 保存并关闭
+labelNoScripts:
+  description: Message shown when no script is installed.
+  message: "你居然没有脚本!<br>快<a href=http://gerald.top/tag/userjs target=_blank>点此</a>查看<a href=http://gerald.top target=_blank style='color:orange'>Gerald</a>的脚本吧~"
+hintSupportPage:
+  description: Hint for support page.
+  message: 支持页面
+  touched: false
+buttonDisable:
+  description: Button to disable a script.
+  message: 禁用
+buttonEnable:
+  description: Button to enable a script.
+  message: 启用
+buttonEdit:
+  description: Button to edit a script.
+  message: 编辑
+buttonRemove:
+  description: Button to remove a script.
+  message: 移除
+buttonUpdate:
+  description: Check a script for updates.
+  message: 查找更新
+msgImported:
+  description: Message shown after import. There is an argument referring to the count of scripts imported.
+  message: 已导入$1个脚本。
+hintUseDownloadURL:
+  description: Shown as a place holder for @updateURL when it is not assigned
+  message: 使用@downloadURL
+confirmNotSaved:
+  description: Confirm message shown when there are unsaved script modifications.
+  message: |-
+    修改尚未保存!
+    点击确定放弃修改或点击取消停留此页面。
+buttonVacuuming:
+  description: Message shown when data vacuum is in progress.
+  message: 正在整理...
+buttonVacuumed:
+  description: Message shown when data is vacuumed.
+  message: 数据已整理
+hintVacuum:
+  description: Hint for vacuuming data.
+  message: 丢弃多余的数据,并尝试重新获取缺失的资源。
+menuManageScripts:
+  description: 'Menu item to manage scripts, or to open the options page of the extension.'
+  message: 管理脚本
+menuFindScripts:
+  description: Menu item to find scripts for a site.
+  message: 为此站点查找脚本
+menuScriptEnabled:
+  description: 'Menu item showing the status of Violentmonkey, when enabled.'
+  message: 脚本已启用
+menuScriptDisabled:
+  description: 'Menu item showing the status of Violentmonkey, when disabled.'
+  message: 脚本已禁用
+menuBack:
+  description: Menu item to go back to main menu from script commands.
+  message: 返回
+menuCommands:
+  description: Menu item to list script commands.
+  message: 脚本命令...
+labelSearch:
+  description: Label for search input in search box.
+  message: 查找:
+labelSearchFor:
+  description: Text shown as a place holder in the search box.
+  message: 查找...
+labelReplace:
+  description: Label for replace input in search box.
+  message: 替换:
+labelReplaceWith:
+  description: Text shown as a place holder in the replace box.
+  message: 替换成...
+buttonReplace:
+  description: Button to replace the current match.
+  message: 替换
+buttonReplaceAll:
+  description: Button to replace all matches.
+  message: 所有
+labelAutoReloadCurrentTab:
+  description: Option to reload current tab after a script is switched on or off from menu.
+  message: 从菜单开启或关闭脚本后自动刷新当前页面
+hintInjectModeNormal:
+  description: Hint to explain the normal injection mode.
+  message: '简单粗暴,但是在某些安全性高的页面会注入失败,如https://github.com'
+hintInjectModeAdvanced:
+  description: Hint to explain the advanced injection mode.
+  message: 不走寻常路,可以在大部分页面成功注入
+hintInputURL:
+  description: Hint for a prompt box to input URL of a user script.
+  message: 请输入地址:
+buttonInstallFromURL:
+  description: Button to ask for URL of a user script.
+  message: 通过地址安装
+labelSync:
+  description: Label for sync options.
+  message: 同步
+buttonAuthorize:
+  description: Button to authorize permissions for sync.
+  message: 授权
+buttonAuthorized:
+  description: Button shown when permissions are already authorized for sync.
+  message: 已授权
+labelSyncTo:
+  description: Label for sync service.
+  message: 同步到 $1
+lastSync:
+  description: Label for last sync timestamp.
+  message: 最近同步时间为 $1
+msgSyncError:
+  description: Message shown when sync failed.
+  message: 同步出错!
+msgSyncing:
+  description: Message shown when sync is in progress.
+  message: 正在同步...
+msgSyncInit:
+  description: Message shown when sync service is initializing.
+  message: 正在初始化...