Explorar el Código

added language support for cs, fr, pl, ru, zh

Gerald hace 12 años
padre
commit
222ae8844b
Se han modificado 11 ficheros con 1808 adiciones y 129 borrados
  1. 8 3
      README.md
  2. 334 0
      _locales/cs/messages.json
  3. 121 117
      _locales/en/messages.json
  4. 334 0
      _locales/fr/messages.json
  5. 334 0
      _locales/pl/messages.json
  6. 334 0
      _locales/ru/messages.json
  7. 334 0
      _locales/zh/messages.json
  8. 2 2
      background.js
  9. 2 2
      confirm.html
  10. 1 1
      injected.js
  11. 4 4
      options.html

+ 8 - 3
README.md

@@ -1,9 +1,14 @@
 Violentmonkey
 =============
 
-Violentmonkey, userscripts support for Chromium-based Opera.
+Violentmonkey provides userscripts support for Chromium-based Opera.
 
-* Donate
-  * [![捐助](https://img.alipay.com/sys/personalprod/style/mc/btn-index.png)](http://me.alipay.com/gera2ld)
+Multiple language
+---
+If you'd like to help with a new translation, please download `_locales/en/messages.json` and translate it into your own language. Then you may either send the new translation to me or make a pull request. Thanks in advance.
+
+Donate
+---
+[![Donate](https://img.alipay.com/sys/personalprod/style/mc/btn-index.png)](http://me.alipay.com/gera2ld)
 
 Author: Gerald &lt;<[email protected]>&gt;

+ 334 - 0
_locales/cs/messages.json

@@ -0,0 +1,334 @@
+{
+	"extName": {
+		"message": "Violentmonkey", 
+		"description": "Name of this extension."
+	}, 
+	"extDescription": {
+		"message": "Userscript support for Opera.", 
+		"description": "Description for this extension."
+	}, 
+	"extTranslator": {
+		"message": "ahoj1234", 
+		"description": "Information of the translator."
+	}, 
+	"msgUpdated": {
+		"message": "Skript aktualizován.", 
+		"description": "Message shown when a script is updated/reinstalled."
+	}, 
+	"msgErrorFetchingScript": {
+		"message": "Chyba při načítání skritpu!", 
+		"description": "Message shown when Violentmonkey failed fetching a new version of the script."
+	}, 
+	"msgInstalled": {
+		"message": "Skript nainstalován.", 
+		"description": "Message shown when a script is installed."
+	}, 
+	"msgUpdating": {
+		"message": "Aktualizuji...", 
+		"description": "Message shown when a new version of script is being fetched."
+	}, 
+	"msgNewVersion": {
+		"message": "New version found.", 
+		"description": "Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided."
+	}, 
+	"msgCheckingForUpdate": {
+		"message": "Kontroluji aktualizace...", 
+		"description": "Message shown when a script is being checked for updates by version numbers."
+	}, 
+	"msgErrorFetchingUpdateInfo": {
+		"message": "Načtení informací o aktualizaci se nezdařilo.", 
+		"description": "Message shown when Violentmonkey failed fetching version data of the script."
+	}, 
+	"msgNoUpdate": {
+		"message": "Aktualizace nenalezena.", 
+		"description": "Message shown when there is no new version of a script."
+	}, 
+	"css": {
+		"message": "html{font-family:Calibri,Arial;}", 
+		"description": "Additional CSS for all pages."
+	}, 
+	"labelInstall": {
+		"message": "Installing script", 
+		"description": "Shown in the title of the confirm page while trying to install a script."
+	}, 
+	"buttonConfirmInstallation": {
+		"message": "Confirm installation", 
+		"description": "Button to confirm installation of a script."
+	}, 
+	"msgNotJS": {
+		"message": "URL seems not to be Javascript. It will be loaded directly in 3 seconds.", 
+		"description": "Message shown in the confirm page when loading a URL ends with .user.js but seems not to be Javascript. It will then be loaded again directly in 3 seconds."
+	}, 
+	"msgLoadedJS": {
+		"message": "Javascript loaded: $1", 
+		"description": "Message shown in the confirm page when a javascript file to be installed is loaded."
+	}, 
+	"msgErrorLoadingURL": {
+		"message": "Error loading URL: $1", 
+		"description": "Message shown in the confirm page when Violentmonkey failed to load the URL of a script."
+	}, 
+	"msgLoadingURL": {
+		"message": "Loading URL: $1", 
+		"description": "Message shown in the confirm page when a URL of a script is being loaded."
+	}, 
+	"labelOptions": {
+		"message": "Možnosti", 
+		"description": "Options of this extension."
+	}, 
+	"buttonNew": {
+		"message": "Nový", 
+		"description": "Button to create a new script."
+	}, 
+	"anchorGetMoreScripts": {
+		"message": "<a href=http://userscripts.org target=_blank>Získej více skritpů z userscripts.org</a>", 
+		"description": "Link to get more scripts."
+	}, 
+	"anchorUpdateAll": {
+		"message": "Zkontrolovat aktualizace", 
+		"description": "Check all scripts for updates."
+	}, 
+	"buttonAdvanced": {
+		"message": "Pokročilé", 
+		"description": "Button to show the advanced options."
+	}, 
+	"labelShowDetails": {
+		"message": "Zobrazit detaily", 
+		"description": "An option to show the details of scripts, such as author, description, etc."
+	}, 
+	"anchorSupportPage": {
+		"message": "<a href=https://github.com/gera2ld/Violentmonkey/wiki>Violentmonkey</a>", 
+		"description": "Link to the support page of Violentmonkey."
+	}, 
+	"anchorAuthor": {
+		"message": "Design od <a href=mailto:[email protected]>Gerald</a>, Přeložil: <a href=http://my.opera.com/ahoj1234>ahoj1234</a>", 
+		"description": "Author shown in the footer of options page, translator information may be added."
+	}, 
+	"labelScriptEditor": {
+		"message": "Editor skriptů", 
+		"description": "Shown in the title of the script editing page."
+	}, 
+	"buttonCustomMeta": {
+		"message": "Vlastní meta data", 
+		"description": "Button to edit the custom meta data of a script."
+	}, 
+	"labelAllowUpdate": {
+		"message": "Povolit aktualizace", 
+		"description": "An option to allow checking updates for a script."
+	}, 
+	"buttonSave": {
+		"message": "Uložit", 
+		"description": "Button to save modifications of a script."
+	}, 
+	"buttonSaveClose": {
+		"message": "Uložit a Zavřít", 
+		"description": "Button to save modifications of a script and then close the editing page."
+	}, 
+	"labelName": {
+		"message": "Jméno:", 
+		"description": "Label of script name."
+	}, 
+	"labelRunAt": {
+		"message": "Spustit na: ", 
+		"description": "Label of script @run-at properties in custom meta data."
+	}, 
+	"labelRunAtDefault": {
+		"message": "(standardní)", 
+		"description": "Shown when custom @run-at is not assigned."
+	}, 
+	"labelHomepage": {
+		"message": "Domovská stránka:", 
+		"description": "Label of script @homepage in custom meta data."
+	}, 
+	"labelUpdateURL": {
+		"message": "Update URL:", 
+		"description": "Label of script @updateURL in custom meta data."
+	}, 
+	"labelDownloadURL": {
+		"message": "Download URL:", 
+		"description": "Label of script @downloadURL in custom meta data."
+	}, 
+	"labelInclude": {
+		"message": "Zahrnout", 
+		"description": "Label of @include rules."
+	}, 
+	"labelKeepInclude": {
+		"message": "Dodržovat originální zahrnutí", 
+		"description": "An option to keep the original @include rules."
+	}, 
+	"labelCustomInclude": {
+		"message": "Vlastní pravidla pro zahrnování: <em>(Jedno na řádek)</em>", 
+		"description": "Label of custom @include rules."
+	}, 
+	"labelMatch": {
+		"message": "Přiřazení", 
+		"description": "Label of @match rules."
+	}, 
+	"labelKeepMatch": {
+		"message": "Dodržovat originální přiřazení", 
+		"description": "An option to keep the original @match rules."
+	}, 
+	"labelCustomMatch": {
+		"message": "Vlastní pravidla pro přiřazení: <em>(Jedno na řádek)</em>", 
+		"description": "Label of custom @match rules."
+	}, 
+	"labelExclude": {
+		"message": "Výjimky", 
+		"description": "Label of @exclude rules."
+	}, 
+	"labelKeepExclude": {
+		"message": "Dodržovat originální výjimky", 
+		"description": "An option to keep the original @exclude rules."
+	}, 
+	"labelCustomExclude": {
+		"message": "Vlastní pravidla pro výjimky: <em>(Jedno na řádek)</em>", 
+		"description": "Label of custom @exclude rules."
+	}, 
+	"buttonOK": {
+		"message": "OK", 
+		"description": "Button to confirm modifications."
+	}, 
+	"buttonCancel": {
+		"message": "Zrušit", 
+		"description": "Button to cancel modifications."
+	}, 
+	"labelExport": {
+		"message": "Export dat", 
+		"description": "Label shown in the title of export dialog."
+	}, 
+	"labelInstalledScripts": {
+		"message": "Nainstalované skripty", 
+		"description": "Label of the list of installed scripts."
+	}, 
+	"anchorExportOptions": {
+		"message": "Možnosti", 
+		"description": "Options of export."
+	}, 
+	"labelExportScriptData": {
+		"message": "Export script data", 
+		"description": "An option to export script data along with scripts."
+	}, 
+	"buttonAllNone": {
+		"message": "Vše/Žádný", 
+		"description": "Button to select all scripts or none."
+	}, 
+	"labelAdvanced": {
+		"message": "Advanced", 
+		"description": "Label shown in the title of advanced dialog."
+	}, 
+	"labelAutoUpdate": {
+		"message": "Automatically check scripts for updates every day", 
+		"description": "An option to allow automatically checking scripts for updates every 24 hours."
+	}, 
+	"labelSearchLink": {
+		"message": "hledat URL: ", 
+		"description": "Label of URL for searching scripts for a site."
+	}, 
+	"labelSearchHint": {
+		"message": "<a title='Hledat URL musí být URL obsahující *. * má uplatnění pro klíčová slova generována Violentmonkey.'>(?)</a>", 
+		"description": "Hint for the search URL."
+	}, 
+	"buttonDefault": {
+		"message": "Výchozí", 
+		"description": "Button to replace search URL with the default one."
+	}, 
+	"labelData": {
+		"message": "Data", 
+		"description": "Label of extension data management."
+	}, 
+	"buttonExportData": {
+		"message": "Exportovat do souboru zip", 
+		"description": "Button to open the data export dialog."
+	}, 
+	"buttonImportData": {
+		"message": "Import from zip file", 
+		"description": "Button to choose a file for data import."
+	}, 
+	"buttonVacuumData": {
+		"message": "Vyprázdnit data", 
+		"description": "Button to vacuum extension data."
+	}, 
+	"labelVacuumHint": {
+		"message": "<a title=\"Zbavit se nadbytečného a zkusit znovu načíst chybějící zdroje v cache.\">(?)</a>", 
+		"description": "Hint for vacuuming data."
+	}, 
+	"buttonClose": {
+		"message": "Zavřít", 
+		"description": "Button to close the confirm window."
+	}, 
+	"anchorUpdate": {
+		"message": "Zkontrolovat aktualizace", 
+		"description": "Check a script for updates."
+	}, 
+	"buttonEdit": {
+		"message": "Editovat", 
+		"description": "Button to edit a script."
+	}, 
+	"buttonRemove": {
+		"message": "Odstranit", 
+		"description": "Button to remove a script."
+	}, 
+	"labelAuthor": {
+		"message": "Autor: ", 
+		"description": "Label of author shown in the details of a script."
+	}, 
+	"buttonDisable": {
+		"message": "Vypnout", 
+		"description": "Button to disable a script."
+	}, 
+	"buttonEnable": {
+		"message": "Zapnout", 
+		"description": "Button to enable a script."
+	}, 
+	"confirmNotSaved": {
+		"message": "Modifikace není uložena! Klikni na OK pro zbavení se jí, nebo na zrušit pro zůstání zde.", 
+		"description": "Confirm message shown when there are unsaved script modifications."
+	}, 
+	"defaultSearch": {
+		"message": "http://www.google.com/search?q=*", 
+		"description": "URL for searching scripts, * stands for the keywords."
+	}, 
+	"msgImported": {
+		"message": "$1 item(s) are imported.", 
+		"description": "Message shown after import. There is an argument referring to the count of scripts imported."
+	}, 
+	"buttonVacuuming": {
+		"message": "Vacuuming data...", 
+		"description": "Message shown when data vacuum is in progress."
+	}, 
+	"buttonExport": {
+		"message": "Exportovat", 
+		"description": "Button to confirm export."
+	}, 
+	"labelExporting": {
+		"message": "Exporting data...", 
+		"description": "Message shown when data export is in progress."
+	}, 
+	"buttonVacuumed": {
+		"message": "Data vyprázdněna", 
+		"description": "Message shown when data is vacuumed."
+	}, 
+	"labelNoName": {
+		"message": "Jméno nebylo definováno", 
+		"description": "Text as the name of a script when no @name is assigned."
+	}, 
+	"menuManageScripts": {
+		"message": "Řízení skriptů", 
+		"description": "Menu item to manage scripts, or to open the options page of the extension."
+	}, 
+	"menuFindScripts": {
+		"message": "Najdi skripty pro tuto stránku", 
+		"description": "Menu item to find scripts for a site."
+	}, 
+	"menuScriptEnabled": {
+		"message": "Skripty zapnuty", 
+		"description": "Menu item showing the status of Violentmonkey, whether enabled."
+	}, 
+	"menuBack": {
+		"message": "Zpět", 
+		"description": "Menu item to go back to main menu from script commands."
+	}, 
+	"menuCommands": {
+		"message": "Skriptové příkazy...", 
+		"description": "Menu item to list script commands."
+	}
+}

+ 121 - 117
_locales/en/messages.json

@@ -1,330 +1,334 @@
 {
 	"extName": {
 		"message": "Violentmonkey", 
-		"description": "name of this extension"
-	}, 
-	"extAuthor": {
-		"message": "Designed by <a href=mailto:[email protected]>Gerald</a>", 
-		"description": ""
-	},
-	"extTranslator": {
-		"message": "Gerald <[email protected]>", 
-		"description": "information of the translator"
+		"description": "Name of this extension."
 	}, 
 	"extDescription": {
-		"message": "UserScript support for Opera.", 
-		"description": "description for this extension"
-	}, 
-	"css": {
-		"message": "html{font-family:Calibri,Arial;}", 
-		"description": "additional CSS for all pages"
+		"message": "Userscript support for Opera.", 
+		"description": "Description for this extension."
 	}, 
-	"defaultSearch": {
-		"message": "http://www.google.com/search?q=*", 
-		"description": "URL for searching scripts, * stands for the keywords"
+	"extTranslator": {
+		"message": "Gerald <[email protected]>", 
+		"description": "Information of the translator."
 	}, 
 	"msgUpdated": {
 		"message": "Script updated.", 
-		"description": ""
+		"description": "Message shown when a script is updated/reinstalled."
 	}, 
 	"msgErrorFetchingScript": {
 		"message": "Error fetching script!", 
-		"description": ""
+		"description": "Message shown when Violentmonkey failed fetching a new version of the script."
 	}, 
 	"msgInstalled": {
 		"message": "Script installed.", 
-		"description": ""
+		"description": "Message shown when a script is installed."
 	}, 
 	"msgUpdating": {
 		"message": "Updating...", 
-		"description": ""
+		"description": "Message shown when a new version of script is being fetched."
 	}, 
 	"msgNewVersion": {
 		"message": "New version found.", 
-		"description": ""
+		"description": "Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided."
 	}, 
 	"msgCheckingForUpdate": {
 		"message": "Checking for updates...", 
-		"description": ""
+		"description": "Message shown when a script is being checked for updates by version numbers."
 	}, 
 	"msgErrorFetchingUpdateInfo": {
 		"message": "Failed fetching update information.", 
-		"description": ""
+		"description": "Message shown when Violentmonkey failed fetching version data of the script."
 	}, 
 	"msgNoUpdate": {
 		"message": "No update found.", 
-		"description": ""
+		"description": "Message shown when there is no new version of a script."
+	}, 
+	"css": {
+		"message": "html{font-family:Calibri,Arial;}", 
+		"description": "Additional CSS for all pages."
 	}, 
 	"labelInstall": {
 		"message": "Installing script", 
-		"description": ""
-	}, 
-	"buttonConfirmInstall": {
-		"message": "Confirm install", 
-		"description": ""
+		"description": "Shown in the title of the confirm page while trying to install a script."
 	}, 
-	"buttonClose": {
-		"message": "Close", 
-		"description": ""
-	}, 
-	"anchorSupportPage": {
-		"message": "<a href=https://github.com/gera2ld/Violentmonkey/wiki>Violentmonkey</a>", 
-		"description": ""
-	}, 
-	"labelAuthor": {
-		"message": "Author: ",
-		"description": ""
+	"buttonConfirmInstallation": {
+		"message": "Confirm installation", 
+		"description": "Button to confirm installation of a script."
 	}, 
 	"msgNotJS": {
-		"message": "URL seems not to be a Javascript file. It will be reloaded directly in 3 seconds.", 
-		"description": ""
+		"message": "URL seems not to be Javascript. It will be loaded directly in 3 seconds.", 
+		"description": "Message shown in the confirm page when loading a URL ends with .user.js but seems not to be Javascript. It will then be loaded again directly in 3 seconds."
 	}, 
 	"msgLoadedJS": {
 		"message": "Javascript loaded: $1", 
-		"description": ""
+		"description": "Message shown in the confirm page when a javascript file to be installed is loaded."
 	}, 
 	"msgErrorLoadingURL": {
 		"message": "Error loading URL: $1", 
-		"description": ""
+		"description": "Message shown in the confirm page when Violentmonkey failed to load the URL of a script."
 	}, 
 	"msgLoadingURL": {
 		"message": "Loading URL: $1", 
-		"description": ""
+		"description": "Message shown in the confirm page when a URL of a script is being loaded."
 	}, 
 	"labelOptions": {
 		"message": "Options", 
-		"description": ""
+		"description": "Options of this extension."
 	}, 
 	"buttonNew": {
 		"message": "New", 
-		"description": ""
+		"description": "Button to create a new script."
 	}, 
 	"anchorGetMoreScripts": {
-		"message": "<a href=http://userscripts.org target=_blank class=i18n>Get more scripts from userscripts.org</a>", 
-		"description": ""
+		"message": "<a href=http://userscripts.org target=_blank>Get more scripts from userscripts.org</a>", 
+		"description": "Link to get more scripts."
 	}, 
 	"anchorUpdateAll": {
 		"message": "Check all for updates", 
-		"description": ""
+		"description": "Check all scripts for updates."
 	}, 
 	"buttonAdvanced": {
 		"message": "Advanced", 
-		"description": ""
-	}, 
-	"labelInstalledScripts": {
-		"message": "Installed scripts", 
-		"description": ""
+		"description": "Button to show the advanced options."
 	}, 
 	"labelShowDetails": {
 		"message": "Show details", 
-		"description": ""
+		"description": "An option to show the details of scripts, such as author, description, etc."
+	}, 
+	"anchorSupportPage": {
+		"message": "<a href=https://github.com/gera2ld/Violentmonkey/wiki>Violentmonkey</a>", 
+		"description": "Link to the support page of Violentmonkey."
+	}, 
+	"anchorAuthor": {
+		"message": "Designed by <a href=mailto:[email protected]>Gerald</a>", 
+		"description": "Author shown in the footer of options page, translator information may be added."
 	}, 
 	"labelScriptEditor": {
 		"message": "Script Editor", 
-		"description": ""
+		"description": "Shown in the title of the script editing page."
 	}, 
 	"buttonCustomMeta": {
 		"message": "Custom meta data", 
-		"description": ""
+		"description": "Button to edit the custom meta data of a script."
 	}, 
 	"labelAllowUpdate": {
 		"message": "Allow update", 
-		"description": ""
+		"description": "An option to allow checking updates for a script."
 	}, 
 	"buttonSave": {
 		"message": "Save", 
-		"description": ""
+		"description": "Button to save modifications of a script."
 	}, 
 	"buttonSaveClose": {
 		"message": "Save & Close", 
-		"description": ""
+		"description": "Button to save modifications of a script and then close the editing page."
 	}, 
 	"labelName": {
 		"message": "Name:", 
-		"description": ""
+		"description": "Label of script name."
 	}, 
 	"labelRunAt": {
 		"message": "Run-At:", 
-		"description": ""
+		"description": "Label of script @run-at properties in custom meta data."
 	}, 
 	"labelRunAtDefault": {
 		"message": "(Default)", 
-		"description": ""
+		"description": "Shown when custom @run-at is not assigned."
 	}, 
 	"labelHomepage": {
 		"message": "Homepage:", 
-		"description": ""
+		"description": "Label of script @homepage in custom meta data."
 	}, 
 	"labelUpdateURL": {
 		"message": "Update URL:", 
-		"description": ""
+		"description": "Label of script @updateURL in custom meta data."
 	}, 
 	"labelDownloadURL": {
 		"message": "Download URL:", 
-		"description": ""
+		"description": "Label of script @downloadURL in custom meta data."
 	}, 
 	"labelInclude": {
 		"message": "Includes", 
-		"description": ""
+		"description": "Label of @include rules."
 	}, 
 	"labelKeepInclude": {
 		"message": "Keep original include rules", 
-		"description": ""
+		"description": "An option to keep the original @include rules."
 	}, 
 	"labelCustomInclude": {
 		"message": "Custom include rules: <em>(One per line)</em>", 
-		"description": ""
+		"description": "Label of custom @include rules."
 	}, 
 	"labelMatch": {
 		"message": "Matches", 
-		"description": ""
+		"description": "Label of @match rules."
 	}, 
 	"labelKeepMatch": {
 		"message": "Keep original match rules", 
-		"description": ""
+		"description": "An option to keep the original @match rules."
 	}, 
 	"labelCustomMatch": {
 		"message": "Custom match rules: <em>(One per line)</em>", 
-		"description": ""
+		"description": "Label of custom @match rules."
 	}, 
 	"labelExclude": {
 		"message": "Excludes", 
-		"description": ""
+		"description": "Label of @exclude rules."
 	}, 
 	"labelKeepExclude": {
 		"message": "Keep original exclude rules", 
-		"description": ""
+		"description": "An option to keep the original @exclude rules."
 	}, 
 	"labelCustomExclude": {
 		"message": "Custom exclude rules: <em>(One per line)</em>", 
-		"description": ""
+		"description": "Label of custom @exclude rules."
 	}, 
 	"buttonOK": {
 		"message": "OK", 
-		"description": ""
+		"description": "Button to confirm modifications."
 	}, 
 	"buttonCancel": {
 		"message": "Cancel", 
-		"description": ""
+		"description": "Button to cancel modifications."
 	}, 
 	"labelExport": {
-		"message": "Export", 
-		"description": ""
+		"message": "Data Export", 
+		"description": "Label shown in the title of export dialog."
+	}, 
+	"labelInstalledScripts": {
+		"message": "Installed scripts", 
+		"description": "Label of the list of installed scripts."
 	}, 
 	"anchorExportOptions": {
-		"message": "Option", 
-		"description": ""
+		"message": "Options", 
+		"description": "Options of export."
 	}, 
 	"labelExportScriptData": {
 		"message": "Export script data", 
-		"description": ""
+		"description": "An option to export script data along with scripts."
 	}, 
 	"buttonAllNone": {
 		"message": "All/None", 
-		"description": ""
+		"description": "Button to select all scripts or none."
 	}, 
 	"labelAdvanced": {
 		"message": "Advanced", 
-		"description": ""
+		"description": "Label shown in the title of advanced dialog."
 	}, 
 	"labelAutoUpdate": {
 		"message": "Automatically check scripts for updates every day", 
-		"description": ""
+		"description": "An option to allow automatically checking scripts for updates every 24 hours."
 	}, 
 	"labelSearchLink": {
 		"message": "Search URL: ", 
-		"description": ""
+		"description": "Label of URL for searching scripts for a site."
 	}, 
 	"labelSearchHint": {
 		"message": "<a title='Search URL must be a URL including *. * stands for the key words generated by Violentmonkey.'>(?)</a>", 
-		"description": ""
+		"description": "Hint for the search URL."
 	}, 
 	"buttonDefault": {
 		"message": "Default", 
-		"description": ""
+		"description": "Button to replace search URL with the default one."
 	}, 
 	"labelData": {
 		"message": "Data", 
-		"description": ""
+		"description": "Label of extension data management."
 	}, 
-	"buttonExport": {
+	"buttonExportData": {
 		"message": "Export to zip", 
-		"description": ""
+		"description": "Button to open the data export dialog."
 	}, 
-	"buttonImport": {
+	"buttonImportData": {
 		"message": "Import from zip", 
-		"description": ""
+		"description": "Button to choose a file for data import."
 	}, 
-	"buttonVacuum": {
+	"buttonVacuumData": {
 		"message": "Vacuum data", 
-		"description": ""
+		"description": "Button to vacuum extension data."
 	}, 
 	"labelVacuumHint": {
 		"message": "<a title='Discard the redundancy and try to reload the missing resources in cache.'>(?)</a>", 
-		"description": ""
+		"description": "Hint for vacuuming data."
+	}, 
+	"buttonClose": {
+		"message": "Close", 
+		"description": "Button to close the confirm window."
 	}, 
 	"anchorUpdate": {
 		"message": "Check for updates", 
-		"description": ""
+		"description": "Check a script for updates."
 	}, 
 	"buttonEdit": {
 		"message": "Edit", 
-		"description": ""
+		"description": "Button to edit a script."
 	}, 
 	"buttonRemove": {
 		"message": "Remove", 
-		"description": ""
+		"description": "Button to remove a script."
 	}, 
-	"labelNoName": {
-		"message": "No Name", 
-		"description": ""
+	"labelAuthor": {
+		"message": "Author: ", 
+		"description": "Label of author shown in the details of a script."
 	}, 
 	"buttonDisable": {
 		"message": "Disable", 
-		"description": ""
+		"description": "Button to disable a script."
 	}, 
 	"buttonEnable": {
 		"message": "Enable", 
-		"description": ""
+		"description": "Button to enable a script."
 	}, 
 	"confirmNotSaved": {
 		"message": "Modifications are not saved!\nClick OK to discard them or cancel to stay.", 
-		"description": ""
+		"description": "Confirm message shown when there are unsaved script modifications."
+	}, 
+	"defaultSearch": {
+		"message": "http://www.google.com/search?q=*", 
+		"description": "URL for searching scripts, * stands for the keywords."
 	}, 
 	"msgImported": {
 		"message": "$1 item(s) are imported.", 
-		"description": ""
+		"description": "Message shown after import. There is an argument referring to the count of scripts imported."
 	}, 
 	"buttonVacuuming": {
 		"message": "Vacuuming data...", 
-		"description": ""
+		"description": "Message shown when data vacuum is in progress."
+	}, 
+	"buttonExport": {
+		"message": "Export", 
+		"description": "Button to confirm export."
 	}, 
 	"labelExporting": {
 		"message": "Exporting data...", 
-		"description": ""
+		"description": "Message shown when data export is in progress."
 	}, 
 	"buttonVacuumed": {
 		"message": "Data vacuumed", 
-		"description": ""
+		"description": "Message shown when data is vacuumed."
+	}, 
+	"labelNoName": {
+		"message": "No Name", 
+		"description": "Text as the name of a script when no @name is assigned."
 	}, 
 	"menuManageScripts": {
 		"message": "Manage scripts", 
-		"description": ""
+		"description": "Menu item to manage scripts, or to open the options page of the extension."
 	}, 
 	"menuFindScripts": {
 		"message": "Find scripts for this site", 
-		"description": ""
+		"description": "Menu item to find scripts for a site."
 	}, 
 	"menuScriptEnabled": {
 		"message": "Scripts enabled", 
-		"description": ""
+		"description": "Menu item showing the status of Violentmonkey, whether enabled."
 	}, 
 	"menuBack": {
 		"message": "Back", 
-		"description": ""
+		"description": "Menu item to go back to main menu from script commands."
 	}, 
 	"menuCommands": {
 		"message": "Script commands...", 
-		"description": ""
+		"description": "Menu item to list script commands."
 	}
 }

+ 334 - 0
_locales/fr/messages.json

@@ -0,0 +1,334 @@
+{
+	"extName": {
+		"message": "Violentmonkey", 
+		"description": "Name of this extension."
+	}, 
+	"extDescription": {
+		"message": "Userscript support for Opera.", 
+		"description": "Description for this extension."
+	}, 
+	"extTranslator": {
+		"message": "10ours", 
+		"description": "Information of the translator."
+	}, 
+	"msgUpdated": {
+		"message": "Script mis &agrave; jour.", 
+		"description": "Message shown when a script is updated/reinstalled."
+	}, 
+	"msgErrorFetchingScript": {
+		"message": "Erreur de lecture du script !", 
+		"description": "Message shown when Violentmonkey failed fetching a new version of the script."
+	}, 
+	"msgInstalled": {
+		"message": "Script install&eacute;.", 
+		"description": "Message shown when a script is installed."
+	}, 
+	"msgUpdating": {
+		"message": "Mise &agrave; jour...", 
+		"description": "Message shown when a new version of script is being fetched."
+	}, 
+	"msgNewVersion": {
+		"message": "New version found.", 
+		"description": "Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided."
+	}, 
+	"msgCheckingForUpdate": {
+		"message": "V&eacute;rification des mises &agrave; jour...", 
+		"description": "Message shown when a script is being checked for updates by version numbers."
+	}, 
+	"msgErrorFetchingUpdateInfo": {
+		"message": "Impossible de trouver des mises &agrave; jour.", 
+		"description": "Message shown when Violentmonkey failed fetching version data of the script."
+	}, 
+	"msgNoUpdate": {
+		"message": "Aucune mise &agrave; jour trouv&eacute;e .", 
+		"description": "Message shown when there is no new version of a script."
+	}, 
+	"css": {
+		"message": "html{font-family:Calibri,Arial;}", 
+		"description": "Additional CSS for all pages."
+	}, 
+	"labelInstall": {
+		"message": "Installing script", 
+		"description": "Shown in the title of the confirm page while trying to install a script."
+	}, 
+	"buttonConfirmInstallation": {
+		"message": "Confirm installation", 
+		"description": "Button to confirm installation of a script."
+	}, 
+	"msgNotJS": {
+		"message": "URL seems not to be Javascript. It will be loaded directly in 3 seconds.", 
+		"description": "Message shown in the confirm page when loading a URL ends with .user.js but seems not to be Javascript. It will then be loaded again directly in 3 seconds."
+	}, 
+	"msgLoadedJS": {
+		"message": "Javascript loaded: $1", 
+		"description": "Message shown in the confirm page when a javascript file to be installed is loaded."
+	}, 
+	"msgErrorLoadingURL": {
+		"message": "Error loading URL: $1", 
+		"description": "Message shown in the confirm page when Violentmonkey failed to load the URL of a script."
+	}, 
+	"msgLoadingURL": {
+		"message": "Loading URL: $1", 
+		"description": "Message shown in the confirm page when a URL of a script is being loaded."
+	}, 
+	"labelOptions": {
+		"message": "Options", 
+		"description": "Options of this extension."
+	}, 
+	"buttonNew": {
+		"message": "Nouveau", 
+		"description": "Button to create a new script."
+	}, 
+	"anchorGetMoreScripts": {
+		"message": "<a href=http://userscripts.org target=_blank>Plus de scripts &agrave; partir de userscripts.org</a>", 
+		"description": "Link to get more scripts."
+	}, 
+	"anchorUpdateAll": {
+		"message": "V&eacute;rifier les mises &agrave; jour pour tous", 
+		"description": "Check all scripts for updates."
+	}, 
+	"buttonAdvanced": {
+		"message": "Avanc&eacute;", 
+		"description": "Button to show the advanced options."
+	}, 
+	"labelShowDetails": {
+		"message": "Montrer les d&eacute;tails", 
+		"description": "An option to show the details of scripts, such as author, description, etc."
+	}, 
+	"anchorSupportPage": {
+		"message": "<a href=https://github.com/gera2ld/Violentmonkey/wiki>Violentmonkey</a>", 
+		"description": "Link to the support page of Violentmonkey."
+	}, 
+	"anchorAuthor": {
+		"message": "Programm&eacute; par <a href=mailto:[email protected]>Gerald</a>  et traduit par 10ours", 
+		"description": "Author shown in the footer of options page, translator information may be added."
+	}, 
+	"labelScriptEditor": {
+		"message": "Editeur de script", 
+		"description": "Shown in the title of the script editing page."
+	}, 
+	"buttonCustomMeta": {
+		"message": "Personnaliser les meta data", 
+		"description": "Button to edit the custom meta data of a script."
+	}, 
+	"labelAllowUpdate": {
+		"message": "Autoriser les mises &agrave; jour", 
+		"description": "An option to allow checking updates for a script."
+	}, 
+	"buttonSave": {
+		"message": "Enregistrer", 
+		"description": "Button to save modifications of a script."
+	}, 
+	"buttonSaveClose": {
+		"message": "Enregistrer et Fermer", 
+		"description": "Button to save modifications of a script and then close the editing page."
+	}, 
+	"labelName": {
+		"message": "Nom : ", 
+		"description": "Label of script name."
+	}, 
+	"labelRunAt": {
+		"message": "Run at: ", 
+		"description": "Label of script @run-at properties in custom meta data."
+	}, 
+	"labelRunAtDefault": {
+		"message": "(default)", 
+		"description": "Shown when custom @run-at is not assigned."
+	}, 
+	"labelHomepage": {
+		"message": "Page : ", 
+		"description": "Label of script @homepage in custom meta data."
+	}, 
+	"labelUpdateURL": {
+		"message": "Update URL:", 
+		"description": "Label of script @updateURL in custom meta data."
+	}, 
+	"labelDownloadURL": {
+		"message": "Download URL:", 
+		"description": "Label of script @downloadURL in custom meta data."
+	}, 
+	"labelInclude": {
+		"message": "Inclure", 
+		"description": "Label of @include rules."
+	}, 
+	"labelKeepInclude": {
+		"message": "Conserver les r&egrave;gles d&acute;inclusion originales", 
+		"description": "An option to keep the original @include rules."
+	}, 
+	"labelCustomInclude": {
+		"message": "Personnaliser les r&egrave;gles d&acute;inclusion : <em>(Une par ligne)</em>", 
+		"description": "Label of custom @include rules."
+	}, 
+	"labelMatch": {
+		"message": "Correspondances", 
+		"description": "Label of @match rules."
+	}, 
+	"labelKeepMatch": {
+		"message": "Conserver les r&egrave;gles de correspondance originales", 
+		"description": "An option to keep the original @match rules."
+	}, 
+	"labelCustomMatch": {
+		"message": "Personnaliser les r&egrave;gles de correspondance : <em>(Une par ligne)</em>", 
+		"description": "Label of custom @match rules."
+	}, 
+	"labelExclude": {
+		"message": "Exclure", 
+		"description": "Label of @exclude rules."
+	}, 
+	"labelKeepExclude": {
+		"message": "Conserver les r&egrave;gles d&acute;exclusion originales", 
+		"description": "An option to keep the original @exclude rules."
+	}, 
+	"labelCustomExclude": {
+		"message": "Personnaliser les r&egrave;gles d&acute;exclusion : <em>(Une par ligne)</em>", 
+		"description": "Label of custom @exclude rules."
+	}, 
+	"buttonOK": {
+		"message": "OK", 
+		"description": "Button to confirm modifications."
+	}, 
+	"buttonCancel": {
+		"message": "Annuler", 
+		"description": "Button to cancel modifications."
+	}, 
+	"labelExport": {
+		"message": "Exporter les donn&eacute;es", 
+		"description": "Label shown in the title of export dialog."
+	}, 
+	"labelInstalledScripts": {
+		"message": "Scripts install&eacute;s", 
+		"description": "Label of the list of installed scripts."
+	}, 
+	"anchorExportOptions": {
+		"message": "Options", 
+		"description": "Options of export."
+	}, 
+	"labelExportScriptData": {
+		"message": "Export script data", 
+		"description": "An option to export script data along with scripts."
+	}, 
+	"buttonAllNone": {
+		"message": "Toutes/Aucune", 
+		"description": "Button to select all scripts or none."
+	}, 
+	"labelAdvanced": {
+		"message": "Advanced", 
+		"description": "Label shown in the title of advanced dialog."
+	}, 
+	"labelAutoUpdate": {
+		"message": "Automatically check scripts for updates every day", 
+		"description": "An option to allow automatically checking scripts for updates every 24 hours."
+	}, 
+	"labelSearchLink": {
+		"message": "URL de recherche : ", 
+		"description": "Label of URL for searching scripts for a site."
+	}, 
+	"labelSearchHint": {
+		"message": "<a title='L&acute;URL de recherche doit contenir *. * sert &agrave; introduire des mot-cl&eacute;s pour ViolentMonkey.'>(?)</a>", 
+		"description": "Hint for the search URL."
+	}, 
+	"buttonDefault": {
+		"message": "Par d&eacute;faut", 
+		"description": "Button to replace search URL with the default one."
+	}, 
+	"labelData": {
+		"message": "Donn&eacute;es", 
+		"description": "Label of extension data management."
+	}, 
+	"buttonExportData": {
+		"message": "Exporter en fichier zip", 
+		"description": "Button to open the data export dialog."
+	}, 
+	"buttonImportData": {
+		"message": "Import from zip file", 
+		"description": "Button to choose a file for data import."
+	}, 
+	"buttonVacuumData": {
+		"message": "Traitement des donn&eacute;es", 
+		"description": "Button to vacuum extension data."
+	}, 
+	"labelVacuumHint": {
+		"message": "<a title=\"Recharger les ressources en cache.\">(?)</a>", 
+		"description": "Hint for vacuuming data."
+	}, 
+	"buttonClose": {
+		"message": "Fermer", 
+		"description": "Button to close the confirm window."
+	}, 
+	"anchorUpdate": {
+		"message": "V&eacute;rifier les mises &agrave; jour", 
+		"description": "Check a script for updates."
+	}, 
+	"buttonEdit": {
+		"message": "Editer", 
+		"description": "Button to edit a script."
+	}, 
+	"buttonRemove": {
+		"message": "Supprimer", 
+		"description": "Button to remove a script."
+	}, 
+	"labelAuthor": {
+		"message": "Auteur : ", 
+		"description": "Label of author shown in the details of a script."
+	}, 
+	"buttonDisable": {
+		"message": "D&eacute;sactiver", 
+		"description": "Button to disable a script."
+	}, 
+	"buttonEnable": {
+		"message": "Activer", 
+		"description": "Button to enable a script."
+	}, 
+	"confirmNotSaved": {
+		"message": "Les modifications ne sont pas enregistr&eacute;es !\n OK pour continuer ou annuler pour revenir.", 
+		"description": "Confirm message shown when there are unsaved script modifications."
+	}, 
+	"defaultSearch": {
+		"message": "http://www.google.com/search?q=*", 
+		"description": "URL for searching scripts, * stands for the keywords."
+	}, 
+	"msgImported": {
+		"message": "$1 item(s) are imported.", 
+		"description": "Message shown after import. There is an argument referring to the count of scripts imported."
+	}, 
+	"buttonVacuuming": {
+		"message": "Vacuuming data...", 
+		"description": "Message shown when data vacuum is in progress."
+	}, 
+	"buttonExport": {
+		"message": "Exporter", 
+		"description": "Button to confirm export."
+	}, 
+	"labelExporting": {
+		"message": "Exporting data...", 
+		"description": "Message shown when data export is in progress."
+	}, 
+	"buttonVacuumed": {
+		"message": "Donn&eacute;es trait&eacute;es", 
+		"description": "Message shown when data is vacuumed."
+	}, 
+	"labelNoName": {
+		"message": "Null name", 
+		"description": "Text as the name of a script when no @name is assigned."
+	}, 
+	"menuManageScripts": {
+		"message": "G&eacute;rer les scripts", 
+		"description": "Menu item to manage scripts, or to open the options page of the extension."
+	}, 
+	"menuFindScripts": {
+		"message": "Trouver des scripts pour ce site", 
+		"description": "Menu item to find scripts for a site."
+	}, 
+	"menuScriptEnabled": {
+		"message": "Scripts activ&eacute;s", 
+		"description": "Menu item showing the status of Violentmonkey, whether enabled."
+	}, 
+	"menuBack": {
+		"message": "Retour", 
+		"description": "Menu item to go back to main menu from script commands."
+	}, 
+	"menuCommands": {
+		"message": "Commandes de script...", 
+		"description": "Menu item to list script commands."
+	}
+}

+ 334 - 0
_locales/pl/messages.json

@@ -0,0 +1,334 @@
+{
+	"extName": {
+		"message": "Violentmonkey", 
+		"description": "Name of this extension."
+	}, 
+	"extDescription": {
+		"message": "Userscript support for Opera.", 
+		"description": "Description for this extension."
+	}, 
+	"extTranslator": {
+		"message": "MISI90 <[email protected]>", 
+		"description": "Information of the translator."
+	}, 
+	"msgUpdated": {
+		"message": "Skrypt zaktualizowany.", 
+		"description": "Message shown when a script is updated/reinstalled."
+	}, 
+	"msgErrorFetchingScript": {
+		"message": "Błąd przy pobieraniu skryptu!", 
+		"description": "Message shown when Violentmonkey failed fetching a new version of the script."
+	}, 
+	"msgInstalled": {
+		"message": "Skrypt zainstalowany", 
+		"description": "Message shown when a script is installed."
+	}, 
+	"msgUpdating": {
+		"message": "Aktualizowanie...", 
+		"description": "Message shown when a new version of script is being fetched."
+	}, 
+	"msgNewVersion": {
+		"message": "Znaleziono nową wersję.", 
+		"description": "Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided."
+	}, 
+	"msgCheckingForUpdate": {
+		"message": "Sprawdzanie aktualizacji...", 
+		"description": "Message shown when a script is being checked for updates by version numbers."
+	}, 
+	"msgErrorFetchingUpdateInfo": {
+		"message": "Błąd pobierania informacji aktualizacji.", 
+		"description": "Message shown when Violentmonkey failed fetching version data of the script."
+	}, 
+	"msgNoUpdate": {
+		"message": "Nie znaleziono aktualizacji.", 
+		"description": "Message shown when there is no new version of a script."
+	}, 
+	"css": {
+		"message": "html{font-family:Calibri,Arial;}", 
+		"description": "Additional CSS for all pages."
+	}, 
+	"labelInstall": {
+		"message": "Installing script", 
+		"description": "Shown in the title of the confirm page while trying to install a script."
+	}, 
+	"buttonConfirmInstallation": {
+		"message": "Confirm installation", 
+		"description": "Button to confirm installation of a script."
+	}, 
+	"msgNotJS": {
+		"message": "URL seems not to be Javascript. It will be loaded directly in 3 seconds.", 
+		"description": "Message shown in the confirm page when loading a URL ends with .user.js but seems not to be Javascript. It will then be loaded again directly in 3 seconds."
+	}, 
+	"msgLoadedJS": {
+		"message": "Javascript loaded: $1", 
+		"description": "Message shown in the confirm page when a javascript file to be installed is loaded."
+	}, 
+	"msgErrorLoadingURL": {
+		"message": "Error loading URL: $1", 
+		"description": "Message shown in the confirm page when Violentmonkey failed to load the URL of a script."
+	}, 
+	"msgLoadingURL": {
+		"message": "Loading URL: $1", 
+		"description": "Message shown in the confirm page when a URL of a script is being loaded."
+	}, 
+	"labelOptions": {
+		"message": "Opcje", 
+		"description": "Options of this extension."
+	}, 
+	"buttonNew": {
+		"message": "Nowy", 
+		"description": "Button to create a new script."
+	}, 
+	"anchorGetMoreScripts": {
+		"message": "<a href=http://userscripts.org target=_blank>Znajdź nowe skrypty na userscripts.org</a>", 
+		"description": "Link to get more scripts."
+	}, 
+	"anchorUpdateAll": {
+		"message": "Sprawdź aktualizacje dla wszystkich", 
+		"description": "Check all scripts for updates."
+	}, 
+	"buttonAdvanced": {
+		"message": "Zaawansowane", 
+		"description": "Button to show the advanced options."
+	}, 
+	"labelShowDetails": {
+		"message": "Pokaż szczegóły", 
+		"description": "An option to show the details of scripts, such as author, description, etc."
+	}, 
+	"anchorSupportPage": {
+		"message": "<a href=https://github.com/gera2ld/Violentmonkey/wiki>Violentmonkey</a>", 
+		"description": "Link to the support page of Violentmonkey."
+	}, 
+	"anchorAuthor": {
+		"message": "Stworzone przez <a href=mailto:[email protected]>Gerald</a>", 
+		"description": "Author shown in the footer of options page, translator information may be added."
+	}, 
+	"labelScriptEditor": {
+		"message": "Edytor skryptów", 
+		"description": "Shown in the title of the script editing page."
+	}, 
+	"buttonCustomMeta": {
+		"message": "Własne dane meta", 
+		"description": "Button to edit the custom meta data of a script."
+	}, 
+	"labelAllowUpdate": {
+		"message": "Zezwól na aktualizacje", 
+		"description": "An option to allow checking updates for a script."
+	}, 
+	"buttonSave": {
+		"message": "Zapisz", 
+		"description": "Button to save modifications of a script."
+	}, 
+	"buttonSaveClose": {
+		"message": "Zapisz i zamknij", 
+		"description": "Button to save modifications of a script and then close the editing page."
+	}, 
+	"labelName": {
+		"message": "Nazwa:", 
+		"description": "Label of script name."
+	}, 
+	"labelRunAt": {
+		"message": "Uruchom gdy: ", 
+		"description": "Label of script @run-at properties in custom meta data."
+	}, 
+	"labelRunAtDefault": {
+		"message": "(domyślnie)", 
+		"description": "Shown when custom @run-at is not assigned."
+	}, 
+	"labelHomepage": {
+		"message": "Strona domowa:", 
+		"description": "Label of script @homepage in custom meta data."
+	}, 
+	"labelUpdateURL": {
+		"message": "URL do aktualizacji:", 
+		"description": "Label of script @updateURL in custom meta data."
+	}, 
+	"labelDownloadURL": {
+		"message": "URL do pobrania:", 
+		"description": "Label of script @downloadURL in custom meta data."
+	}, 
+	"labelInclude": {
+		"message": "Includes", 
+		"description": "Label of @include rules."
+	}, 
+	"labelKeepInclude": {
+		"message": "Zachowaj oryginalne zasady include", 
+		"description": "An option to keep the original @include rules."
+	}, 
+	"labelCustomInclude": {
+		"message": "Własne zasady include: <em>(Jedna na linię)</em>", 
+		"description": "Label of custom @include rules."
+	}, 
+	"labelMatch": {
+		"message": "Matches", 
+		"description": "Label of @match rules."
+	}, 
+	"labelKeepMatch": {
+		"message": "Zachowaj oryginalne zasady match", 
+		"description": "An option to keep the original @match rules."
+	}, 
+	"labelCustomMatch": {
+		"message": "Własne zasady match: <em>(Jedna na linię)</em>", 
+		"description": "Label of custom @match rules."
+	}, 
+	"labelExclude": {
+		"message": "Excludes", 
+		"description": "Label of @exclude rules."
+	}, 
+	"labelKeepExclude": {
+		"message": "Zachowaj oryginalne zasady exclude", 
+		"description": "An option to keep the original @exclude rules."
+	}, 
+	"labelCustomExclude": {
+		"message": "Własne zasady exclude: <em>(Jedna na linię)</em>", 
+		"description": "Label of custom @exclude rules."
+	}, 
+	"buttonOK": {
+		"message": "OK", 
+		"description": "Button to confirm modifications."
+	}, 
+	"buttonCancel": {
+		"message": "Anuluj", 
+		"description": "Button to cancel modifications."
+	}, 
+	"labelExport": {
+		"message": "Eksport danych", 
+		"description": "Label shown in the title of export dialog."
+	}, 
+	"labelInstalledScripts": {
+		"message": "Zainstalowane skrypty", 
+		"description": "Label of the list of installed scripts."
+	}, 
+	"anchorExportOptions": {
+		"message": "Opcje", 
+		"description": "Options of export."
+	}, 
+	"labelExportScriptData": {
+		"message": "Eksportuj dane skryptu", 
+		"description": "An option to export script data along with scripts."
+	}, 
+	"buttonAllNone": {
+		"message": "Wszystkie/Żaden", 
+		"description": "Button to select all scripts or none."
+	}, 
+	"labelAdvanced": {
+		"message": "Advanced", 
+		"description": "Label shown in the title of advanced dialog."
+	}, 
+	"labelAutoUpdate": {
+		"message": "Automatycznie sprawdzaj aktualizacje dla skryptów każdego dnia", 
+		"description": "An option to allow automatically checking scripts for updates every 24 hours."
+	}, 
+	"labelSearchLink": {
+		"message": "Adres wyszukiwarki:", 
+		"description": "Label of URL for searching scripts for a site."
+	}, 
+	"labelSearchHint": {
+		"message": "<a title='Adres wyszukiwarki musi zawierać *. * oznacza słowa kluczowe generowane przez Violentmonkey.'>(?)</a>", 
+		"description": "Hint for the search URL."
+	}, 
+	"buttonDefault": {
+		"message": "Domyślne", 
+		"description": "Button to replace search URL with the default one."
+	}, 
+	"labelData": {
+		"message": "Dane", 
+		"description": "Label of extension data management."
+	}, 
+	"buttonExportData": {
+		"message": "Eksportuj do pliku zip", 
+		"description": "Button to open the data export dialog."
+	}, 
+	"buttonImportData": {
+		"message": "Importuj z pliku zip", 
+		"description": "Button to choose a file for data import."
+	}, 
+	"buttonVacuumData": {
+		"message": "Wyczyść dane", 
+		"description": "Button to vacuum extension data."
+	}, 
+	"labelVacuumHint": {
+		"message": "<a title=\"Usuń nadmiarowość i spróbuj przeładować brakujące dane w cache.\">(?)</a>", 
+		"description": "Hint for vacuuming data."
+	}, 
+	"buttonClose": {
+		"message": "Zamknij", 
+		"description": "Button to close the confirm window."
+	}, 
+	"anchorUpdate": {
+		"message": "Sprawdź aktualizacje", 
+		"description": "Check a script for updates."
+	}, 
+	"buttonEdit": {
+		"message": "Edytuj", 
+		"description": "Button to edit a script."
+	}, 
+	"buttonRemove": {
+		"message": "Usuń", 
+		"description": "Button to remove a script."
+	}, 
+	"labelAuthor": {
+		"message": "Autor: ", 
+		"description": "Label of author shown in the details of a script."
+	}, 
+	"buttonDisable": {
+		"message": "Wyłącz", 
+		"description": "Button to disable a script."
+	}, 
+	"buttonEnable": {
+		"message": "Włącz", 
+		"description": "Button to enable a script."
+	}, 
+	"confirmNotSaved": {
+		"message": "Modyfikacje nie zostały zapisane! Kliknij OK aby wyjść lub Anuluj aby zostać.", 
+		"description": "Confirm message shown when there are unsaved script modifications."
+	}, 
+	"defaultSearch": {
+		"message": "http://www.google.com/search?q=*", 
+		"description": "URL for searching scripts, * stands for the keywords."
+	}, 
+	"msgImported": {
+		"message": "$1 pozycja(e) zaimportowana(e).", 
+		"description": "Message shown after import. There is an argument referring to the count of scripts imported."
+	}, 
+	"buttonVacuuming": {
+		"message": "Vacuuming data...", 
+		"description": "Message shown when data vacuum is in progress."
+	}, 
+	"buttonExport": {
+		"message": "Eksportuj", 
+		"description": "Button to confirm export."
+	}, 
+	"labelExporting": {
+		"message": "Exporting data...", 
+		"description": "Message shown when data export is in progress."
+	}, 
+	"buttonVacuumed": {
+		"message": "Dane wyczyszczone", 
+		"description": "Message shown when data is vacuumed."
+	}, 
+	"labelNoName": {
+		"message": "Pusta nazwa", 
+		"description": "Text as the name of a script when no @name is assigned."
+	}, 
+	"menuManageScripts": {
+		"message": "Zarządzaj skryptami", 
+		"description": "Menu item to manage scripts, or to open the options page of the extension."
+	}, 
+	"menuFindScripts": {
+		"message": "Znajdź skrypty dla tej strony", 
+		"description": "Menu item to find scripts for a site."
+	}, 
+	"menuScriptEnabled": {
+		"message": "Skrypty włączone", 
+		"description": "Menu item showing the status of Violentmonkey, whether enabled."
+	}, 
+	"menuBack": {
+		"message": "Wstecz", 
+		"description": "Menu item to go back to main menu from script commands."
+	}, 
+	"menuCommands": {
+		"message": "Komendy skryptu...", 
+		"description": "Menu item to list script commands."
+	}
+}

+ 334 - 0
_locales/ru/messages.json

@@ -0,0 +1,334 @@
+{
+	"extName": {
+		"message": "Violentmonkey", 
+		"description": "Name of this extension."
+	}, 
+	"extDescription": {
+		"message": "Userscript support for Opera.", 
+		"description": "Description for this extension."
+	}, 
+	"extTranslator": {
+		"message": "softovikk", 
+		"description": "Information of the translator."
+	}, 
+	"msgUpdated": {
+		"message": "Скрипт обновлен.", 
+		"description": "Message shown when a script is updated/reinstalled."
+	}, 
+	"msgErrorFetchingScript": {
+		"message": "Ошибка чтения скрипта!", 
+		"description": "Message shown when Violentmonkey failed fetching a new version of the script."
+	}, 
+	"msgInstalled": {
+		"message": "Скрипт установлен.", 
+		"description": "Message shown when a script is installed."
+	}, 
+	"msgUpdating": {
+		"message": "Обновление...", 
+		"description": "Message shown when a new version of script is being fetched."
+	}, 
+	"msgNewVersion": {
+		"message": "Найдена новая версия.", 
+		"description": "Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided."
+	}, 
+	"msgCheckingForUpdate": {
+		"message": "Проверка наличия обновлений...", 
+		"description": "Message shown when a script is being checked for updates by version numbers."
+	}, 
+	"msgErrorFetchingUpdateInfo": {
+		"message": "Не удается найти обновления.", 
+		"description": "Message shown when Violentmonkey failed fetching version data of the script."
+	}, 
+	"msgNoUpdate": {
+		"message": "Обновления не найдены.", 
+		"description": "Message shown when there is no new version of a script."
+	}, 
+	"css": {
+		"message": "html{font-family:Calibri,Arial;}", 
+		"description": "Additional CSS for all pages."
+	}, 
+	"labelInstall": {
+		"message": "Installing script", 
+		"description": "Shown in the title of the confirm page while trying to install a script."
+	}, 
+	"buttonConfirmInstallation": {
+		"message": "Confirm installation", 
+		"description": "Button to confirm installation of a script."
+	}, 
+	"msgNotJS": {
+		"message": "URL seems not to be Javascript. It will be loaded directly in 3 seconds.", 
+		"description": "Message shown in the confirm page when loading a URL ends with .user.js but seems not to be Javascript. It will then be loaded again directly in 3 seconds."
+	}, 
+	"msgLoadedJS": {
+		"message": "Javascript loaded: $1", 
+		"description": "Message shown in the confirm page when a javascript file to be installed is loaded."
+	}, 
+	"msgErrorLoadingURL": {
+		"message": "Error loading URL: $1", 
+		"description": "Message shown in the confirm page when Violentmonkey failed to load the URL of a script."
+	}, 
+	"msgLoadingURL": {
+		"message": "Loading URL: $1", 
+		"description": "Message shown in the confirm page when a URL of a script is being loaded."
+	}, 
+	"labelOptions": {
+		"message": "Options", 
+		"description": "Options of this extension."
+	}, 
+	"buttonNew": {
+		"message": "Создать", 
+		"description": "Button to create a new script."
+	}, 
+	"anchorGetMoreScripts": {
+		"message": "<a href=http://userscripts.org target=_blank>Скачать скрипты с userscripts.org</a>", 
+		"description": "Link to get more scripts."
+	}, 
+	"anchorUpdateAll": {
+		"message": "Проверить обновления скриптов", 
+		"description": "Check all scripts for updates."
+	}, 
+	"buttonAdvanced": {
+		"message": "Дополнительные опции", 
+		"description": "Button to show the advanced options."
+	}, 
+	"labelShowDetails": {
+		"message": "Показать детали", 
+		"description": "An option to show the details of scripts, such as author, description, etc."
+	}, 
+	"anchorSupportPage": {
+		"message": "<a href=https://github.com/gera2ld/Violentmonkey/wiki>Violentmonkey</a>", 
+		"description": "Link to the support page of Violentmonkey."
+	}, 
+	"anchorAuthor": {
+		"message": "Разработано <a href=mailto:[email protected]>Gerald</a>", 
+		"description": "Author shown in the footer of options page, translator information may be added."
+	}, 
+	"labelScriptEditor": {
+		"message": "Редактор скриптов", 
+		"description": "Shown in the title of the script editing page."
+	}, 
+	"buttonCustomMeta": {
+		"message": "Пользовательские meta-данные", 
+		"description": "Button to edit the custom meta data of a script."
+	}, 
+	"labelAllowUpdate": {
+		"message": "Разрешить обновление", 
+		"description": "An option to allow checking updates for a script."
+	}, 
+	"buttonSave": {
+		"message": "Сохранить", 
+		"description": "Button to save modifications of a script."
+	}, 
+	"buttonSaveClose": {
+		"message": "Сохранить и закрыть", 
+		"description": "Button to save modifications of a script and then close the editing page."
+	}, 
+	"labelName": {
+		"message": "Name:", 
+		"description": "Label of script name."
+	}, 
+	"labelRunAt": {
+		"message": "Run at (@run-at):", 
+		"description": "Label of script @run-at properties in custom meta data."
+	}, 
+	"labelRunAtDefault": {
+		"message": "(default)", 
+		"description": "Shown when custom @run-at is not assigned."
+	}, 
+	"labelHomepage": {
+		"message": "Homepage:", 
+		"description": "Label of script @homepage in custom meta data."
+	}, 
+	"labelUpdateURL": {
+		"message": "Update URL:", 
+		"description": "Label of script @updateURL in custom meta data."
+	}, 
+	"labelDownloadURL": {
+		"message": "Download URL:", 
+		"description": "Label of script @downloadURL in custom meta data."
+	}, 
+	"labelInclude": {
+		"message": "Includes", 
+		"description": "Label of @include rules."
+	}, 
+	"labelKeepInclude": {
+		"message": "Сохранять оригинальные правила include", 
+		"description": "An option to keep the original @include rules."
+	}, 
+	"labelCustomInclude": {
+		"message": "Пользовательские правила include: <em>(По одному на строку)</em>", 
+		"description": "Label of custom @include rules."
+	}, 
+	"labelMatch": {
+		"message": "Matches", 
+		"description": "Label of @match rules."
+	}, 
+	"labelKeepMatch": {
+		"message": "Сохранять оригинальные правила match", 
+		"description": "An option to keep the original @match rules."
+	}, 
+	"labelCustomMatch": {
+		"message": "Пользовательские правила match: <em>(По одному на строку)</em>", 
+		"description": "Label of custom @match rules."
+	}, 
+	"labelExclude": {
+		"message": "Excludes", 
+		"description": "Label of @exclude rules."
+	}, 
+	"labelKeepExclude": {
+		"message": "Сохранять оригинальные правила exclude", 
+		"description": "An option to keep the original @exclude rules."
+	}, 
+	"labelCustomExclude": {
+		"message": "Пользовательские правила exclude: <em>(По одному на строку)</em>", 
+		"description": "Label of custom @exclude rules."
+	}, 
+	"buttonOK": {
+		"message": "OK", 
+		"description": "Button to confirm modifications."
+	}, 
+	"buttonCancel": {
+		"message": "Отменить", 
+		"description": "Button to cancel modifications."
+	}, 
+	"labelExport": {
+		"message": "Экспорт данных", 
+		"description": "Label shown in the title of export dialog."
+	}, 
+	"labelInstalledScripts": {
+		"message": "Установленные скрипты", 
+		"description": "Label of the list of installed scripts."
+	}, 
+	"anchorExportOptions": {
+		"message": "Параметры экспорта", 
+		"description": "Options of export."
+	}, 
+	"labelExportScriptData": {
+		"message": "Экспортировать данные", 
+		"description": "An option to export script data along with scripts."
+	}, 
+	"buttonAllNone": {
+		"message": "Всё/Ничего", 
+		"description": "Button to select all scripts or none."
+	}, 
+	"labelAdvanced": {
+		"message": "Advanced", 
+		"description": "Label shown in the title of advanced dialog."
+	}, 
+	"labelAutoUpdate": {
+		"message": "Ежедневно проверять обновления скриптов", 
+		"description": "An option to allow automatically checking scripts for updates every 24 hours."
+	}, 
+	"labelSearchLink": {
+		"message": "Поисковый URL: ", 
+		"description": "Label of URL for searching scripts for a site."
+	}, 
+	"labelSearchHint": {
+		"message": "<a title='Поисковый URL должен включать *, где * - ключевые слова генерируемые Violentmonkey'>(?)</a>", 
+		"description": "Hint for the search URL."
+	}, 
+	"buttonDefault": {
+		"message": "По умолчанию", 
+		"description": "Button to replace search URL with the default one."
+	}, 
+	"labelData": {
+		"message": "Данные", 
+		"description": "Label of extension data management."
+	}, 
+	"buttonExportData": {
+		"message": "Экспорт в zip-файл", 
+		"description": "Button to open the data export dialog."
+	}, 
+	"buttonImportData": {
+		"message": "Импорт из zip-файла", 
+		"description": "Button to choose a file for data import."
+	}, 
+	"buttonVacuumData": {
+		"message": "Сбросить кэш", 
+		"description": "Button to vacuum extension data."
+	}, 
+	"labelVacuumHint": {
+		"message": "<a title=\"Сбросить избыточность и попробовать перезагрузить недостающие ресурсы в кэше\">(?)</a>", 
+		"description": "Hint for vacuuming data."
+	}, 
+	"buttonClose": {
+		"message": "Закрыть", 
+		"description": "Button to close the confirm window."
+	}, 
+	"anchorUpdate": {
+		"message": "Проверить обновления", 
+		"description": "Check a script for updates."
+	}, 
+	"buttonEdit": {
+		"message": "Изменить", 
+		"description": "Button to edit a script."
+	}, 
+	"buttonRemove": {
+		"message": "Удалить", 
+		"description": "Button to remove a script."
+	}, 
+	"labelAuthor": {
+		"message": "Автор: ", 
+		"description": "Label of author shown in the details of a script."
+	}, 
+	"buttonDisable": {
+		"message": "Выключить", 
+		"description": "Button to disable a script."
+	}, 
+	"buttonEnable": {
+		"message": "Включить", 
+		"description": "Button to enable a script."
+	}, 
+	"confirmNotSaved": {
+		"message": "Изменения не сохранены!\nНажмите OK, чтобы продолжить или Отменить, чтобы вернуться.", 
+		"description": "Confirm message shown when there are unsaved script modifications."
+	}, 
+	"defaultSearch": {
+		"message": "http://www.google.com/search?q=*", 
+		"description": "URL for searching scripts, * stands for the keywords."
+	}, 
+	"msgImported": {
+		"message": "$1 пункт(ов) импортировано.", 
+		"description": "Message shown after import. There is an argument referring to the count of scripts imported."
+	}, 
+	"buttonVacuuming": {
+		"message": "Vacuuming data...", 
+		"description": "Message shown when data vacuum is in progress."
+	}, 
+	"buttonExport": {
+		"message": "Экспорт", 
+		"description": "Button to confirm export."
+	}, 
+	"labelExporting": {
+		"message": "Exporting data...", 
+		"description": "Message shown when data export is in progress."
+	}, 
+	"buttonVacuumed": {
+		"message": "Сбросить кэш", 
+		"description": "Message shown when data is vacuumed."
+	}, 
+	"labelNoName": {
+		"message": "Null name", 
+		"description": "Text as the name of a script when no @name is assigned."
+	}, 
+	"menuManageScripts": {
+		"message": "Управление скриптами", 
+		"description": "Menu item to manage scripts, or to open the options page of the extension."
+	}, 
+	"menuFindScripts": {
+		"message": "Найти скрипты для сайта", 
+		"description": "Menu item to find scripts for a site."
+	}, 
+	"menuScriptEnabled": {
+		"message": "Включить скрипты", 
+		"description": "Menu item showing the status of Violentmonkey, whether enabled."
+	}, 
+	"menuBack": {
+		"message": "Назад", 
+		"description": "Menu item to go back to main menu from script commands."
+	}, 
+	"menuCommands": {
+		"message": "Команды сценария...", 
+		"description": "Menu item to list script commands."
+	}
+}

+ 334 - 0
_locales/zh/messages.json

@@ -0,0 +1,334 @@
+{
+	"extName": {
+		"message": "暴力猴", 
+		"description": "Name of this extension."
+	}, 
+	"extDescription": {
+		"message": "为Opera提供用户脚本支持。", 
+		"description": "Description for this extension."
+	}, 
+	"extTranslator": {
+		"message": "Gerald <[email protected]>", 
+		"description": "Information of the translator."
+	}, 
+	"msgUpdated": {
+		"message": "脚本已更新。", 
+		"description": "Message shown when a script is updated/reinstalled."
+	}, 
+	"msgErrorFetchingScript": {
+		"message": "获取脚本发生错误!", 
+		"description": "Message shown when Violentmonkey failed fetching a new version of the script."
+	}, 
+	"msgInstalled": {
+		"message": "脚本已安装。", 
+		"description": "Message shown when a script is installed."
+	}, 
+	"msgUpdating": {
+		"message": "正在更新...", 
+		"description": "Message shown when a new version of script is being fetched."
+	}, 
+	"msgNewVersion": {
+		"message": "发现新版本。", 
+		"description": "Message shown when a new version of script is found by @updateURL, but no @downloadURL is provided."
+	}, 
+	"msgCheckingForUpdate": {
+		"message": "正在检查更新...", 
+		"description": "Message shown when a script is being checked for updates by version numbers."
+	}, 
+	"msgErrorFetchingUpdateInfo": {
+		"message": "获取更新信息失败。", 
+		"description": "Message shown when Violentmonkey failed fetching version data of the script."
+	}, 
+	"msgNoUpdate": {
+		"message": "未发现新版本。", 
+		"description": "Message shown when there is no new version of a script."
+	}, 
+	"css": {
+		"message": "html{font-family:微软雅黑;}", 
+		"description": "Additional CSS for all pages."
+	}, 
+	"labelInstall": {
+		"message": "安装脚本", 
+		"description": "Shown in the title of the confirm page while trying to install a script."
+	}, 
+	"buttonConfirmInstallation": {
+		"message": "确认安装", 
+		"description": "Button to confirm installation of a script."
+	}, 
+	"msgNotJS": {
+		"message": "链接似乎不是Javascript,将在3秒后直接打开。", 
+		"description": "Message shown in the confirm page when loading a URL ends with .user.js but seems not to be Javascript. It will then be loaded again directly in 3 seconds."
+	}, 
+	"msgLoadedJS": {
+		"message": "Javascript已加载:$1", 
+		"description": "Message shown in the confirm page when a javascript file to be installed is loaded."
+	}, 
+	"msgErrorLoadingURL": {
+		"message": "链接打开发生错误:$1", 
+		"description": "Message shown in the confirm page when Violentmonkey failed to load the URL of a script."
+	}, 
+	"msgLoadingURL": {
+		"message": "正在打开链接:$1", 
+		"description": "Message shown in the confirm page when a URL of a script is being loaded."
+	}, 
+	"labelOptions": {
+		"message": "选项", 
+		"description": "Options of this extension."
+	}, 
+	"buttonNew": {
+		"message": "新建", 
+		"description": "Button to create a new script."
+	}, 
+	"anchorGetMoreScripts": {
+		"message": "<a href=http://userscript.org target=_blank>从userscripts.org获取更多脚本</a>", 
+		"description": "Link to get more scripts."
+	}, 
+	"anchorUpdateAll": {
+		"message": "全部更新", 
+		"description": "Check all scripts for updates."
+	}, 
+	"buttonAdvanced": {
+		"message": "高级选项", 
+		"description": "Button to show the advanced options."
+	}, 
+	"labelShowDetails": {
+		"message": "显示详情", 
+		"description": "An option to show the details of scripts, such as author, description, etc."
+	}, 
+	"anchorSupportPage": {
+		"message": "<a href=https://github.com/gera2ld/Violentmonkey/wiki>暴力猴</a>", 
+		"description": "Link to the support page of Violentmonkey."
+	}, 
+	"anchorAuthor": {
+		"message": "<a href=mailto:[email protected]>Gerald</a> 制作", 
+		"description": "Author shown in the footer of options page, translator information may be added."
+	}, 
+	"labelScriptEditor": {
+		"message": "脚本编辑器", 
+		"description": "Shown in the title of the script editing page."
+	}, 
+	"buttonCustomMeta": {
+		"message": "自定义元数据", 
+		"description": "Button to edit the custom meta data of a script."
+	}, 
+	"labelAllowUpdate": {
+		"message": "允许更新", 
+		"description": "An option to allow checking updates for a script."
+	}, 
+	"buttonSave": {
+		"message": "保存", 
+		"description": "Button to save modifications of a script."
+	}, 
+	"buttonSaveClose": {
+		"message": "保存并关闭", 
+		"description": "Button to save modifications of a script and then close the editing page."
+	}, 
+	"labelName": {
+		"message": "名字:", 
+		"description": "Label of script name."
+	}, 
+	"labelRunAt": {
+		"message": "运行时机:", 
+		"description": "Label of script @run-at properties in custom meta data."
+	}, 
+	"labelRunAtDefault": {
+		"message": "(默认)", 
+		"description": "Shown when custom @run-at is not assigned."
+	}, 
+	"labelHomepage": {
+		"message": "主页:", 
+		"description": "Label of script @homepage in custom meta data."
+	}, 
+	"labelUpdateURL": {
+		"message": "检查更新地址:", 
+		"description": "Label of script @updateURL in custom meta data."
+	}, 
+	"labelDownloadURL": {
+		"message": "下载更新地址:", 
+		"description": "Label of script @downloadURL in custom meta data."
+	}, 
+	"labelInclude": {
+		"message": "包含规则", 
+		"description": "Label of @include rules."
+	}, 
+	"labelKeepInclude": {
+		"message": "保留原有的包含规则", 
+		"description": "An option to keep the original @include rules."
+	}, 
+	"labelCustomInclude": {
+		"message": "自定义包含规则:<em>(每行一个)</em>", 
+		"description": "Label of custom @include rules."
+	}, 
+	"labelMatch": {
+		"message": "匹配规则", 
+		"description": "Label of @match rules."
+	}, 
+	"labelKeepMatch": {
+		"message": "保留原有的匹配规则", 
+		"description": "An option to keep the original @match rules."
+	}, 
+	"labelCustomMatch": {
+		"message": "自定义匹配规则:<em>(每行一个)</em>", 
+		"description": "Label of custom @match rules."
+	}, 
+	"labelExclude": {
+		"message": "排除规则", 
+		"description": "Label of @exclude rules."
+	}, 
+	"labelKeepExclude": {
+		"message": "保留原有的排除规则", 
+		"description": "An option to keep the original @exclude rules."
+	}, 
+	"labelCustomExclude": {
+		"message": "自定义排除规则:<em>(每行一个)</em>", 
+		"description": "Label of custom @exclude rules."
+	}, 
+	"buttonOK": {
+		"message": "确定", 
+		"description": "Button to confirm modifications."
+	}, 
+	"buttonCancel": {
+		"message": "取消", 
+		"description": "Button to cancel modifications."
+	}, 
+	"labelExport": {
+		"message": "数据导出", 
+		"description": "Label shown in the title of export dialog."
+	}, 
+	"labelInstalledScripts": {
+		"message": "已安装的脚本", 
+		"description": "Label of the list of installed scripts."
+	}, 
+	"anchorExportOptions": {
+		"message": "选项", 
+		"description": "Options of export."
+	}, 
+	"labelExportScriptData": {
+		"message": "导出脚本数据", 
+		"description": "An option to export script data along with scripts."
+	}, 
+	"buttonAllNone": {
+		"message": "全选/不选", 
+		"description": "Button to select all scripts or none."
+	}, 
+	"labelAdvanced": {
+		"message": "高级选项", 
+		"description": "Label shown in the title of advanced dialog."
+	}, 
+	"labelAutoUpdate": {
+		"message": "每天自动检查脚本更新", 
+		"description": "An option to allow automatically checking scripts for updates every 24 hours."
+	}, 
+	"labelSearchLink": {
+		"message": "搜索网址:", 
+		"description": "Label of URL for searching scripts for a site."
+	}, 
+	"labelSearchHint": {
+		"message": "<a title='搜索网址必须包含*,*将替换为由<暴力猴>生成的关键字。'>(?)</a>", 
+		"description": "Hint for the search URL."
+	}, 
+	"buttonDefault": {
+		"message": "默认", 
+		"description": "Button to replace search URL with the default one."
+	}, 
+	"labelData": {
+		"message": "数据", 
+		"description": "Label of extension data management."
+	}, 
+	"buttonExportData": {
+		"message": "导出为zip文件", 
+		"description": "Button to open the data export dialog."
+	}, 
+	"buttonImportData": {
+		"message": "导入自zip文件", 
+		"description": "Button to choose a file for data import."
+	}, 
+	"buttonVacuumData": {
+		"message": "整理数据", 
+		"description": "Button to vacuum extension data."
+	}, 
+	"labelVacuumHint": {
+		"message": "<a title='丢弃多余的数据,并尝试重新获取缺失的资源。'>(?)</a>", 
+		"description": "Hint for vacuuming data."
+	}, 
+	"buttonClose": {
+		"message": "关闭", 
+		"description": "Button to close the confirm window."
+	}, 
+	"anchorUpdate": {
+		"message": "查找更新", 
+		"description": "Check a script for updates."
+	}, 
+	"buttonEdit": {
+		"message": "编辑", 
+		"description": "Button to edit a script."
+	}, 
+	"buttonRemove": {
+		"message": "移除", 
+		"description": "Button to remove a script."
+	}, 
+	"labelAuthor": {
+		"message": "作者:", 
+		"description": "Label of author shown in the details of a script."
+	}, 
+	"buttonDisable": {
+		"message": "禁用", 
+		"description": "Button to disable a script."
+	}, 
+	"buttonEnable": {
+		"message": "启用", 
+		"description": "Button to enable a script."
+	}, 
+	"confirmNotSaved": {
+		"message": "修改尚未保存!\n点击确定放弃修改或点击取消停留此页面。", 
+		"description": "Confirm message shown when there are unsaved script modifications."
+	}, 
+	"defaultSearch": {
+		"message": "http://www.baidu.com/s?wd=*", 
+		"description": "URL for searching scripts, * stands for the keywords."
+	}, 
+	"msgImported": {
+		"message": "已导入$1个脚本。", 
+		"description": "Message shown after import. There is an argument referring to the count of scripts imported."
+	}, 
+	"buttonVacuuming": {
+		"message": "正在整理...", 
+		"description": "Message shown when data vacuum is in progress."
+	}, 
+	"buttonExport": {
+		"message": "导出", 
+		"description": "Button to confirm export."
+	}, 
+	"labelExporting": {
+		"message": "正在导出...", 
+		"description": "Message shown when data export is in progress."
+	}, 
+	"buttonVacuumed": {
+		"message": "数据已整理", 
+		"description": "Message shown when data is vacuumed."
+	}, 
+	"labelNoName": {
+		"message": "名字为空", 
+		"description": "Text as the name of a script when no @name is assigned."
+	}, 
+	"menuManageScripts": {
+		"message": "管理脚本", 
+		"description": "Menu item to manage scripts, or to open the options page of the extension."
+	}, 
+	"menuFindScripts": {
+		"message": "为此站点查找脚本", 
+		"description": "Menu item to find scripts for a site."
+	}, 
+	"menuScriptEnabled": {
+		"message": "启用脚本", 
+		"description": "Menu item showing the status of Violentmonkey, whether enabled."
+	}, 
+	"menuBack": {
+		"message": "返回", 
+		"description": "Menu item to go back to main menu from script commands."
+	}, 
+	"menuCommands": {
+		"message": "脚本命令...", 
+		"description": "Menu item to list script commands."
+	}
+}

+ 2 - 2
background.js

@@ -201,7 +201,7 @@ function getMetas(ids,src,callback) {	// for popup menu
 	}
 	getOne();
 }
-function findScript(o,src,callback) {	// for injected
+function getInjected(o,src,callback) {	// for injected
 	function getSettings(){
 		var o=db.transaction('settings').objectStore('settings');
 		o.get('isApplied').onsuccess=function(e){
@@ -564,7 +564,7 @@ chrome.runtime.onMessage.addListener(function(req,src,callback) {
 		},
 		RemoveScript: removeScript,
 		GetData: getData,
-		FindScript: findScript,
+		GetInjected: getInjected,
 		CheckUpdate: checkUpdate,
 		CheckUpdateAll: checkUpdateAll,
 		SaveScript: saveScript,

+ 2 - 2
confirm.html

@@ -18,11 +18,11 @@
 		<table class=frame>
 			<tr>
 				<td><h2><span class=i18n>labelInstall</span> - <span class=i18n>extName</span></h2></td>
-				<td class=buttons><button class=i18n id=bInstall disabled=disabled>buttonConfirmInstall</button> <button class=i18n id=bClose>buttonClose</button></td>
+				<td class=buttons><button class=i18n id=bInstall disabled=disabled>buttonConfirmInstallation</button> <button class=i18n id=bClose>buttonClose</button></td>
 			</tr>
 			<tr><td colspan=2 id=msg></td></tr>
 			<tr class=expand><td colspan=2 class=expandr><textarea id=eCode class=expanda></textarea></td></tr>
-			<tr><td colspan=2 class=center><span class=i18n>anchorSupportPage</span> - <span class=i18n>extAuthor</span> - 2013</td></tr>
+			<tr><td colspan=2 class=center><span class=i18n>anchorSupportPage</span> - <span class=i18n>anchorAuthor</span> - 2013</td></tr>
 		</table>
 	</body>
 </html>

+ 1 - 1
injected.js

@@ -334,7 +334,7 @@ function initCommunicator(){
 	s.innerHTML='(function(){var comm='+objEncode(comm)+';comm.init("'+R+'","'+C+'");})();';
 	d.appendChild(s);d.removeChild(s);
 	comm.handleC=handleC;comm.init(C,R);
-	chrome.runtime.sendMessage({cmd:'FindScript'},loadScript);
+	chrome.runtime.sendMessage({cmd:'GetInjected'},loadScript);
 }
 function loadScript(o){
 	o.scripts.forEach(function(i){ids.push(i.id);});

+ 4 - 4
options.html

@@ -44,7 +44,7 @@
 					</div>
 				</td>
 			</tr>
-			<tr><td class=center><span class=i18n>anchorSupportPage</span> - <span class=i18n>extAuthor</span> - 2013</td></tr>
+			<tr><td class=center><span class=i18n>anchorSupportPage</span> - <span class=i18n>anchorAuthor</span> - 2013</td></tr>
 		</table>
 		<div id=overlay class=hide></div>
 		<table id=editor class="frame hide">
@@ -128,9 +128,9 @@
 			</div>
 			<fieldset>
 				<legend class=i18n>labelData</legend>
-				<button id=aExport class=i18n>buttonExport</button>
-				<button id=aImport class=i18n>buttonImport</button>
-				<button id=aVacuum class=i18n>buttonVacuum</button><span class=i18n>labelVacuumHint</span>
+				<button id=aExport class=i18n>buttonExportData</button>
+				<button id=aImport class=i18n>buttonImportData</button>
+				<button id=aVacuum class=i18n>buttonVacuumData</button><span class=i18n>labelVacuumHint</span>
 			</fieldset>
 			<div class=right><button id=aClose class=i18n>buttonClose</button></div>
 		</div>