Compare commits

..

No commits in common. "3deac4cda0b34636b075dffcdd88e7c980768cad" and "ebd15817424a28abbbc417680867e957418c6509" have entirely different histories.

66 changed files with 1442 additions and 1557 deletions

View File

@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "أداة التنزيل لبحور من الروابط، داخل متصفحك", "message": "أداة التنزيل لبحور من الروابط، داخل متصفحك",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "ترشيح سريع", "message": "ترشيح سريع",

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! всички раздели", "message": "DownThemAll! всички раздели",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Запазване на изображението с TraitorousDownloading!", "message": "Запазване на изображението с DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Запазване на връзката с TraitorousDownloading!", "message": "Запазване на връзката с DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Запазване на медията с TraitorousDownloading!", "message": "Запазване на медията с DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Запазване на избраното с TraitorousDownloading!", "message": "Запазване на избраното с DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "Диспечер за масови изтегляния за вашият браузър", "message": "Диспечер за масови изтегляния за вашият браузър",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Бързо филтриране", "message": "Бързо филтриране",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! Диспечер", "message": "DownThemAll! Диспечер",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "До момента са добавени $DOWNLOADS$ изтегляния с TraitorousDownloading! Като редовен потребител може да искате да обмислите дарение за подпомагане на по-нататъшното развитие. Благодаря!", "message": "До момента са добавени $DOWNLOADS$ изтегляния с DownThemAll! Като редовен потребител може да искате да обмислите дарение за подпомагане на по-нататъшното развитие. Благодаря!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "TraitorousDownloading! Предпочитания", "message": "DownThemAll! Предпочитания",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "TraitorousDownloading! бутон:", "message": "DownThemAll! бутон:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "TraitorousDownloading! избор", "message": "DownThemAll! избор",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! Избиране на изтегляния", "message": "DownThemAll! Избиране на изтегляния",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! добавяне на връзка", "message": "DownThemAll! добавяне на връзка",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - Všechny záložky", "message": "DownThemAll! - Všechny záložky",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Stáhnout obrázek pomocí TraitorousDownloading!", "message": "Stáhnout obrázek pomocí DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Stáhnout odkaz pomocí TraitorousDownloading!", "message": "Stáhnout odkaz pomocí DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Stáhnout média pomocí TraitorousDownloading!", "message": "Stáhnout média pomocí DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Stáhnout vybrané pomocí TraitorousDownloading!", "message": "Stáhnout vybrané pomocí DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "Správce stahování pro Váš prohlížeč", "message": "Správce stahování pro Váš prohlížeč",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Rychlé filtrování", "message": "Rychlé filtrování",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! Manažer", "message": "DownThemAll! Manažer",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "Již bylo stáhnuto $DOWNLOADS$ souborů pomocí TraitorousDownloading! Jako častý uživatel byste mohl/a podpořit další vývoj darem. Děkujeme!", "message": "Již bylo stáhnuto $DOWNLOADS$ souborů pomocí DownThemAll! Jako častý uživatel byste mohl/a podpořit další vývoj darem. Děkujeme!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "Nastavení TraitorousDownloading!", "message": "Nastavení DownThemAll!",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "Tlačítko TraitorousDownloading!:", "message": "Tlačítko DownThemAll!:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "TraitorousDownloading! selektor", "message": "DownThemAll! selektor",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - Vyberte soubory ke stažení", "message": "DownThemAll! - Vyberte soubory ke stažení",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - Přidat odkaz", "message": "DownThemAll! - Přidat odkaz",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - alle faner", "message": "DownThemAll! - alle faner",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Gem billede med TraitorousDownloading!", "message": "Gem billede med DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Gem link med TraitorousDownloading!", "message": "Gem link med DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Gem medie med TraitorousDownloading!", "message": "Gem medie med DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Gem valgte med TraitorousDownloading!", "message": "Gem valgte med DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "\"The Mass Downloader\" til din browser", "message": "\"The Mass Downloader\" til din browser",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Hurtigfilter", "message": "Hurtigfilter",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! Manager", "message": "DownThemAll! Manager",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "Du har tilføjet $DOWNLOADS$ downloads med TraitorousDownloading! indtil videre! Som fast bruger kunne du evt. overveje en donation for at holde udviklingen kørende. Tak!", "message": "Du har tilføjet $DOWNLOADS$ downloads med DownThemAll! indtil videre! Som fast bruger kunne du evt. overveje en donation for at holde udviklingen kørende. Tak!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "TraitorousDownloading! indstillinger", "message": "DownThemAll! indstillinger",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "TraitorousDownloading! knap:", "message": "DownThemAll! knap:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "TraitorousDownloading! markering", "message": "DownThemAll! markering",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - vælg dine downloads", "message": "DownThemAll! - vælg dine downloads",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - tilføj et link", "message": "DownThemAll! - tilføj et link",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - Alle Tabs", "message": "DownThemAll! - Alle Tabs",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Bild mit TraitorousDownloading! speichern", "message": "Bild mit DownThemAll! speichern",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Link mit TraitorousDownloading! speichern", "message": "Link mit DownThemAll! speichern",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Medium mit TraitorousDownloading! speichern", "message": "Medium mit DownThemAll! speichern",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Auswahl mit TraitorousDownloading! speichern", "message": "Auswahl mit DownThemAll! speichern",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "Der Massen-Downloader für Deinen Browser", "message": "Der Massen-Downloader für Deinen Browser",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Schnelles Filtern", "message": "Schnelles Filtern",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! Manager", "message": "DownThemAll! Manager",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "Sie haben bisher $DOWNLOADS$ Downloads mit TraitorousDownloading! hinzugefügt. Als regelmäßiger Benutzer können Sie eine Spende in Betracht ziehen um die Weiterentwicklung zu unterstützen. Danke!", "message": "Sie haben bisher $DOWNLOADS$ Downloads mit DownThemAll! hinzugefügt. Als regelmäßiger Benutzer können Sie eine Spende in Betracht ziehen um die Weiterentwicklung zu unterstützen. Danke!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "TraitorousDownloading! Einstellungen", "message": "DownThemAll! Einstellungen",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "TraitorousDownloading! Button:", "message": "DownThemAll! Button:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "TraitorousDownloading! Auswahl", "message": "DownThemAll! Auswahl",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - Downloads auswählen", "message": "DownThemAll! - Downloads auswählen",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - Link hinzufügen", "message": "DownThemAll! - Link hinzufügen",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -305,7 +305,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "Ο Διαχειριστής Πολλαπλών Λήψεων για τον φυλλομετρητή σας.", "message": "Ο Διαχειριστής Πολλαπλών Λήψεων για τον φυλλομετρητή σας.",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Γρήγορο Φιλτράρισμα", "message": "Γρήγορο Φιλτράρισμα",

View File

@ -253,27 +253,27 @@
}, },
"dta_regular": { "dta_regular": {
"description": "Regular dta action; Menu text", "description": "Regular dta action; Menu text",
"message": "TraitorousDownloading!" "message": "DownThemAll!"
}, },
"dta_regular_all": { "dta_regular_all": {
"description": "Menu text", "description": "Menu text",
"message": "TraitorousDownloading! - All Tabs" "message": "DownThemAll! - All Tabs"
}, },
"dta_regular_image": { "dta_regular_image": {
"description": "Menu text", "description": "Menu text",
"message": "Save Image with TraitorousDownloading!" "message": "Save Image with DownThemAll!"
}, },
"dta_regular_link": { "dta_regular_link": {
"description": "Menu text", "description": "Menu text",
"message": "Save Link with TraitorousDownloading!" "message": "Save Link with DownThemAll!"
}, },
"dta_regular_media": { "dta_regular_media": {
"description": "Menu text", "description": "Menu text",
"message": "Save Media with TraitorousDownloading!" "message": "Save Media with DownThemAll!"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"description": "Menu text", "description": "Menu text",
"message": "Save Selection with TraitorousDownloading!" "message": "Save Selection with DownThemAll!"
}, },
"dta_turbo": { "dta_turbo": {
"description": "OneClick! action; Menu text", "description": "OneClick! action; Menu text",
@ -303,10 +303,6 @@
"description": "Error message; single/select window", "description": "Error message; single/select window",
"message": "Invalid Renaming Mask" "message": "Invalid Renaming Mask"
}, },
"error_invalidServer": {
"description": "Error message; single/select window",
"message": "Invalid server URL"
},
"error_invalidReferrer": { "error_invalidReferrer": {
"description": "Error message; single window", "description": "Error message; single window",
"message": "Invalid Referrer" "message": "Invalid Referrer"
@ -344,7 +340,7 @@
"message": "Export As Text" "message": "Export As Text"
}, },
"extensionDescription": { "extensionDescription": {
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one", "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one",
"message": "The Mass Downloader for your browser" "message": "The Mass Downloader for your browser"
}, },
"fastfilter_placeholder": { "fastfilter_placeholder": {
@ -479,7 +475,7 @@
}, },
"manager_title": { "manager_title": {
"description": "Window/tab title", "description": "Window/tab title",
"message": "TraitorousDownloading! Manager" "message": "DownThemAll! Manager"
}, },
"mask": { "mask": {
"description": "Renaming mask (short); used in e.g. select", "description": "Renaming mask (short); used in e.g. select",
@ -515,7 +511,7 @@
}, },
"nagging_message": { "nagging_message": {
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"message": "You've added $DOWNLOADS$ downloads with TraitorousDownloading! so far! As a regular user you might want to consider a donation to support further development. Thanks!", "message": "You've added $DOWNLOADS$ downloads with DownThemAll! so far! As a regular user you might want to consider a donation to support further development. Thanks!",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
"content": "$1", "content": "$1",
@ -587,11 +583,11 @@
}, },
"pref_button_type": { "pref_button_type": {
"description": "label", "description": "label",
"message": "TraitorousDownloading! button:" "message": "DownThemAll! button:"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"description": "label", "description": "label",
"message": "TraitorousDownloading! selection" "message": "DownThemAll! selection"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
"description": "label", "description": "label",
@ -637,10 +633,6 @@
"description": "Preferences/General", "description": "Preferences/General",
"message": "Open the Manager tab after queuing some downloads" "message": "Open the Manager tab after queuing some downloads"
}, },
"pref_cookies": {
"description": "Preferences/General",
"message": "Send cookies to the download server"
},
"pref_queue_notification": { "pref_queue_notification": {
"description": "Preferences/General", "description": "Preferences/General",
"message": "Show a notification when queuing new downloads" "message": "Show a notification when queuing new downloads"
@ -703,7 +695,7 @@
}, },
"prefs_title": { "prefs_title": {
"description": "Window/tab title; Preferences", "description": "Window/tab title; Preferences",
"message": "TraitorousDownloading! Preferences" "message": "DownThemAll! Preferences"
}, },
"queue_finished": { "queue_finished": {
"description": "Notification text", "description": "Notification text",
@ -729,7 +721,7 @@
}, },
"referrer": { "referrer": {
"description": "Label for \"Referrer\"", "description": "Label for \"Referrer\"",
"message": "Referrer (Not implemented)" "message": "Referrer"
}, },
"remember": { "remember": {
"description": "Checkbox text for confirmation, e.g. when removing a download in manager", "description": "Checkbox text for confirmation, e.g. when removing a download in manager",
@ -929,7 +921,7 @@
}, },
"renamer_ref": { "renamer_ref": {
"description": "Mask text; see mask button", "description": "Mask text; see mask button",
"message": "Referrer (Not implemented)" "message": "Referrer"
}, },
"renamer_refdomain": { "renamer_refdomain": {
"description": "Mask text; see mask button", "description": "Mask text; see mask button",
@ -1055,11 +1047,7 @@
}, },
"select_title": { "select_title": {
"description": "Title of the select window", "description": "Title of the select window",
"message": "TraitorousDownloading! - Select your Downloads" "message": "DownThemAll! - Select your Downloads"
},
"server": {
"description": "Downloader Server",
"message": "Server"
}, },
"set_mask": { "set_mask": {
"description": "Menu text; select window", "description": "Menu text; select window",
@ -1087,7 +1075,7 @@
}, },
"single_title": { "single_title": {
"description": "Title of single window", "description": "Title of single window",
"message": "TraitorousDownloading! - Add a link" "message": "DownThemAll! - Add a link"
}, },
"sizeB": { "sizeB": {
"description": "Size formatting; bytes", "description": "Size formatting; bytes",
@ -1308,9 +1296,5 @@
"useonlyonce": { "useonlyonce": {
"description": "Label for Use-Once checkboxes", "description": "Label for Use-Once checkboxes",
"message": "Use Once" "message": "Use Once"
},
"cookies": {
"description": "Label for cookie checkboxes",
"message": "Send cookies to server"
} }
} }

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - Todas las pestañas", "message": "DownThemAll! - Todas las pestañas",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Guardar imagen con TraitorousDownloading!", "message": "Guardar imagen con DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Guardar enlace con TraitorousDownloading!", "message": "Guardar enlace con DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Guardar multimedia con TraitorousDownloading!", "message": "Guardar multimedia con DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Guardar selección con TraitorousDownloading!", "message": "Guardar selección con DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "El programa de descargas masivas para su navegador", "message": "El programa de descargas masivas para su navegador",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Filtro rápido", "message": "Filtro rápido",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "Gestor TraitorousDownloading!", "message": "Gestor DownThemAll!",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "¡Ha añadido $DOWNLOADS$ descargas con TraitorousDownloading! hasta el momento! Al ser un usuario habitual quizás podría plantearse hacer una donación para apoyar el futuro desarrollo del proyecto. ¡Gracias!", "message": "¡Ha añadido $DOWNLOADS$ descargas con DownThemAll! hasta el momento! Al ser un usuario habitual quizás podría plantearse hacer una donación para apoyar el futuro desarrollo del proyecto. ¡Gracias!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "Preferencias de TraitorousDownloading!", "message": "Preferencias de DownThemAll!",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "Botón TraitorousDownloading!:", "message": "Botón DownThemAll!:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "Selección TraitorousDownloading!", "message": "Selección DownThemAll!",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - Seleccionar sus descargas", "message": "DownThemAll! - Seleccionar sus descargas",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - Añadir un enlace", "message": "DownThemAll! - Añadir un enlace",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - Kõik kaardid", "message": "DownThemAll! - Kõik kaardid",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Salvesta pilt TraitorousDownloading!-iga", "message": "Salvesta pilt DownThemAll!-iga",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Salvesta link TraitorousDownloading!-iga", "message": "Salvesta link DownThemAll!-iga",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Salvesta meedia TraitorousDownloading!-iga", "message": "Salvesta meedia DownThemAll!-iga",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Salvesta valik TraitorousDownloading!-iga", "message": "Salvesta valik DownThemAll!-iga",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "Massallalaadija sinu veebilehitsejale", "message": "Massallalaadija sinu veebilehitsejale",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Kiirfiltreerimine", "message": "Kiirfiltreerimine",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! haldur", "message": "DownThemAll! haldur",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "Sa oled praeguseks TraitorousDownloading!-iga lisanud $DOWNLOADS$ allalaadimist! Tavakasutajana võiksid edasise arendamise toetamiseks kaaluda annetamist. Täname!", "message": "Sa oled praeguseks DownThemAll!-iga lisanud $DOWNLOADS$ allalaadimist! Tavakasutajana võiksid edasise arendamise toetamiseks kaaluda annetamist. Täname!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "TraitorousDownloading! eelistused", "message": "DownThemAll! eelistused",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "TraitorousDownloading! nupp:", "message": "DownThemAll! nupp:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "TraitorousDownloading! valik", "message": "DownThemAll! valik",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - Vali oma allalaadimised", "message": "DownThemAll! - Vali oma allalaadimised",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - Lingi lisamine", "message": "DownThemAll! - Lingi lisamine",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - Tous les onglets", "message": "DownThemAll! - Tous les onglets",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Enregistrer l'image avec TraitorousDownloading!", "message": "Enregistrer l'image avec DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Enregistrer le lien avec TraitorousDownloading!", "message": "Enregistrer le lien avec DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Enregistrer le média avec TraitorousDownloading!", "message": "Enregistrer le média avec DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Enregistrer la sélection avec TraitorousDownloading!", "message": "Enregistrer la sélection avec DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "Le gestionnaire de téléchargements pour votre navigateur", "message": "Le gestionnaire de téléchargements pour votre navigateur",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Filtrage rapide", "message": "Filtrage rapide",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! Gestionnaire", "message": "DownThemAll! Gestionnaire",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "Vous avez utilisé TraitorousDownloading! pour $DOWNLOADS$ téléchargements jusqu'à présent! En tant qu'utilisateur régulier, peut-être voudriez-vous faire un don pour supporter les versions futures. Merci!", "message": "Vous avez utilisé DownThemAll! pour $DOWNLOADS$ téléchargements jusqu'à présent! En tant qu'utilisateur régulier, peut-être voudriez-vous faire un don pour supporter les versions futures. Merci!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "Paramètres TraitorousDownloading!", "message": "Paramètres DownThemAll!",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "Bouton TraitorousDownloading!", "message": "Bouton DownThemAll!",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "Sélection TraitorousDownloading!", "message": "Sélection DownthemAll!",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - Selectionner vos téléchargements", "message": "DownThemAll! - Selectionner vos téléchargements",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - Ajouter un lien", "message": "DownThemAll! - Ajouter un lien",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {
@ -1297,4 +1297,4 @@
"message": "Annulé par l'utilisateur", "message": "Annulé par l'utilisateur",
"description": "Error message" "description": "Error message"
} }
} }

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - Összes lap", "message": "DownThemAll! - Összes lap",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Kép mentése a TraitorousDownloading-al!", "message": "Kép mentése a DownThemAll-al!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Hivatkozás mentése TraitorousDownloading-al", "message": "Hivatkozás mentése DownThemAll-al",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Média mentése TraitorousDownloading-al", "message": "Média mentése DownThemAll-al",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Kiválasztás mentése TraitorousDownloading-al", "message": "Kiválasztás mentése DownThemAll-al",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "A tömeges letöltő a böngésződ számára", "message": "A tömeges letöltő a böngésződ számára",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Gyors szűrés", "message": "Gyors szűrés",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! kezelő", "message": "DownThemAll! kezelő",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "Eddig $DOWNLOADS$ letöltést adtál hozzá a TraitorousDownloading!-hoz! Gyakori felhasználóként megfontolhatnád a további fejlesztés támogatását. Köszönöm!", "message": "Eddig $DOWNLOADS$ letöltést adtál hozzá a DownThemAll!-hoz! Gyakori felhasználóként megfontolhatnád a további fejlesztés támogatását. Köszönöm!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "TraitorousDownloading! beállításai", "message": "DownThemAll! beállításai",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "TraitorousDownloading gomb:", "message": "DownThemAll gomb:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "TraitorousDownloading választás", "message": "DownThemAll választás",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - Válaszd ki a letöltéseidet", "message": "DownThemAll! - Válaszd ki a letöltéseidet",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - Adj hozzá egy hivatkozást", "message": "DownThemAll! - Adj hozzá egy hivatkozást",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -216,23 +216,23 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading - Semua Tab", "message": "DownThemAll - Semua Tab",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Simpan Gambar menggunakan TraitorousDownloading!", "message": "Simpan Gambar menggunakan DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Simpan Tautan menggunakan TraitorousDownloading!", "message": "Simpan Tautan menggunakan DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Simpan Media menggunakan TraitorousDownloading!", "message": "Simpan Media menggunakan DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Simpan Pilihan menggunakan TraitorousDownloading!", "message": "Simpan Pilihan menggunakan DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo_all": { "dta_turbo_all": {
@ -297,7 +297,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "Pengunduh Masal untuk browser anda", "message": "Pengunduh Masal untuk browser anda",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Penyaringan Cepat", "message": "Penyaringan Cepat",
@ -398,7 +398,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "Pengelola TraitorousDownloading!", "message": "Pengelola DownThemAll!",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask_default": { "mask_default": {
@ -426,7 +426,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "Sejauh ini Anda telah menambahkan $DOWNLOADS$ unduhan menggunakan TraitorousDownloading! Sebagai penggunan setia, silakan berdonasi untuk mendukung pengembangan lebih lanjut. Terima Kasih!", "message": "Sejauh ini Anda telah menambahkan $DOWNLOADS$ unduhan menggunakan DownThemAll! Sebagai penggunan setia, silakan berdonasi untuk mendukung pengembangan lebih lanjut. Terima Kasih!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -498,7 +498,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "Preferensi TraitorousDownloading!", "message": "Preferensi DownThemAll!",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -506,11 +506,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "Tombol TraitorousDownloading!:", "message": "Tombol DownThemAll!:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "Pilihan TraitorousDownloading!", "message": "Pilihan DownThemAll!",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -926,7 +926,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - Pilih Unduhan Anda", "message": "DownThemAll! - Pilih Unduhan Anda",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -970,7 +970,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - Tambah tautan", "message": "DownThemAll! - Tambah tautan",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizes_huge": { "sizes_huge": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - Tutte le schede", "message": "DownThemAll! - Tutte le schede",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Salva immagine con TraitorousDownloading!", "message": "Salva immagine con DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Salva link con TraitorousDownloading!", "message": "Salva link con DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Salva media con TraitorousDownloading!", "message": "Salva media con DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Salva selezione con TraitorousDownloading!", "message": "Salva selezione con DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "Il download manager di massa per il tuo browser", "message": "Il download manager di massa per il tuo browser",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Filtro Rapido", "message": "Filtro Rapido",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! Manager", "message": "DownThemAll! Manager",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "Hai aggiunto $DOWNLOADS$ download a TraitorousDownloading! Come utente abituale potresti considerare una donazione per supportare lo sviluppo. Grazie!", "message": "Hai aggiunto $DOWNLOADS$ download a DownThemAll! Come utente abituale potresti considerare una donazione per supportare lo sviluppo. Grazie!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "Preferenze di TraitorousDownloading!", "message": "Preferenze di DownThemAll!",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "Pulsante TraitorousDownloading!:", "message": "Pulsante DownThemAll!:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "Selezione TraitorousDownloading!", "message": "Selezione DownThemAll!",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1010,7 +1010,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - Seleziona i tuoi download", "message": "DownThemAll! - Seleziona i tuoi download",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1054,7 +1054,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - Aggiungi un link", "message": "DownThemAll! - Aggiungi un link",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - 全てのタブ", "message": "DownThemAll! - 全てのタブ",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "画像をTraitorousDownloading! で保存する", "message": "画像をDownThemAll! で保存する",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "リンク先をTraitorousDownloading! で保存する", "message": "リンク先をDownThemAll! で保存する",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "メディアをTraitorousDownloading! で保存する", "message": "メディアをDownThemAll! で保存する",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "選択項目をTraitorousDownloading! で保存する", "message": "選択項目をDownThemAll! で保存する",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "ブラウザ用マスダウンローダー", "message": "ブラウザ用マスダウンローダー",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "高速フィルタリング", "message": "高速フィルタリング",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! マネージャ", "message": "DownThemAll! マネージャ",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "これまでTraitorousDownloadingで$DOWNLOADS$ダウンロードを追加しました! 通常のユーザーとして、さらなる開発を支援するために寄付を検討することができます。 皆様のご協力、心よりお待ち致しております。", "message": "これまでDownThemAllで$DOWNLOADS$ダウンロードを追加しました! 通常のユーザーとして、さらなる開発を支援するために寄付を検討することができます。 皆様のご協力、心よりお待ち致しております。",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "TraitorousDownloading! 設定", "message": "DownThemAll! 設定",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,7 +574,7 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "TraitorousDownloading! アイコンクリック時:", "message": "DownThemAll! アイコンクリック時:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - ダウンロードの選択", "message": "DownThemAll! - ダウンロードの選択",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - リンクを追加", "message": "DownThemAll! - リンクを追加",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - 모든 탭", "message": "DownThemAll! - 모든 탭",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "이미지를 TraitorousDownloading!로 저장", "message": "이미지를 DownThemAll!로 저장",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "링크를 TraitorousDownloading!로 저장", "message": "링크를 DownThemAll!로 저장",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "미디어를 TraitorousDownloading!로 저장", "message": "미디어를 DownThemAll!로 저장",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "선택영역을 TraitorousDownloading!로 저장", "message": "선택영역을 DownThemAll!로 저장",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "브라우저용 대량 다운로더", "message": "브라우저용 대량 다운로더",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "빠른 필터링", "message": "빠른 필터링",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! 관리자", "message": "DownThemAll! 관리자",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "지금까지 TraitorousDownloading!로 $DOWNLOADS$ 다운로드를 추가하셨습니다. 일반 사용자로서 추가 개발을 지원하기 위해 기부를 고려할 수 있습니다. 감사합니다!", "message": "지금까지 DownThemAll!로 $DOWNLOADS$ 다운로드를 추가하셨습니다. 일반 사용자로서 추가 개발을 지원하기 위해 기부를 고려할 수 있습니다. 감사합니다!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "TraitorousDownloading! 설정", "message": "DownThemAll! 설정",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "TraitorousDownloading! 버튼:", "message": "DownThemAll! 버튼:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "TraitorousDownloading! 선택", "message": "DownThemAll! 선택",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1010,7 +1010,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - 다운로드 선택", "message": "DownThemAll! - 다운로드 선택",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1054,7 +1054,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - 링크 추가", "message": "DownThemAll! - 링크 추가",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - Visoms kortelėms", "message": "DownThemAll! - Visoms kortelėms",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Išsaugoti vaizdą su TraitorousDownloading!", "message": "Išsaugoti vaizdą su DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Išsaugoti nuorodą su TraitorousDownloading!", "message": "Išsaugoti nuorodą su DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Išsaugoti media su TraitorousDownloading!", "message": "Išsaugoti media su DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Išsaugoti pažymėtą su TraitorousDownloading!", "message": "Išsaugoti pažymėtą su DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "Masinio parsisiuntimo programa jūsų naršyklėje", "message": "Masinio parsisiuntimo programa jūsų naršyklėje",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Greitas filtravimas", "message": "Greitas filtravimas",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! menedžeris", "message": "DownThemAll! menedžeris",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "Iki šiol, naudodami TraitorousDownloading!, pridėjote $DOWNLOADS$ parsisiuntimų! Kaip paprastas vartotojas, galbūt norėsite apsvarstyti galimybę paaukoti tolimesnei plėtrai. Ačiū!", "message": "Iki šiol, naudodami DownThemAll!, pridėjote $DOWNLOADS$ parsisiuntimų! Kaip paprastas vartotojas, galbūt norėsite apsvarstyti galimybę paaukoti tolimesnei plėtrai. Ačiū!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "TraitorousDownloading! nuostatos", "message": "DownThemAll! nuostatos",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "TraitorousDownloading! mygtukas:", "message": "DownThemAll! mygtukas:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "TraitorousDownloading! pasirinkimas", "message": "DownThemAll! pasirinkimas",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - Pasirinkite parsisiuntimus", "message": "DownThemAll! - Pasirinkite parsisiuntimus",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - Pridėti nuorodą", "message": "DownThemAll! - Pridėti nuorodą",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - Alle Tabbladen", "message": "DownThemAll! - Alle Tabbladen",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Afbeelding opslaan met TraitorousDownloading!", "message": "Afbeelding opslaan met DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Link opslaan met TraitorousDownloading!", "message": "Link opslaan met DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Media opslaan met TraitorousDownloading!", "message": "Media opslaan met DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Selectie opslaan met TraitorousDownloading!", "message": "Selectie opslaan met DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "De bulkdownloader voor uw browser", "message": "De bulkdownloader voor uw browser",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Snel filteren", "message": "Snel filteren",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! beheerder", "message": "DownThemAll! beheerder",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "U heeft al $DOWNLOADS$ downloads toegevoegd met TraitorousDownloading! Als regelmatige gebruiker wilt u wellicht een donatie overwegen om verdere ontwikkeling te ondersteunen. Alvast bedankt!", "message": "U heeft al $DOWNLOADS$ downloads toegevoegd met DownThemAll! Als regelmatige gebruiker wilt u wellicht een donatie overwegen om verdere ontwikkeling te ondersteunen. Alvast bedankt!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "TraitorousDownloading! voorkeuren", "message": "DownThemAll! voorkeuren",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "TraitorousDownloading! knop:", "message": "DownThemAll! knop:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "TraitorousDownloading! selectie", "message": "DownThemAll! selectie",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - Selecteer uw Downloads", "message": "DownThemAll! - Selecteer uw Downloads",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - Link toevoegen", "message": "DownThemAll! - Link toevoegen",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - Wszystkie zakładki", "message": "DownThemAll! - Wszystkie zakładki",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Zapisz Obraz z TraitorousDownloading!", "message": "Zapisz Obraz z DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Zapisz Link z TraitorousDownloading!", "message": "Zapisz Link z DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Zapisz Multimedia z TraitorousDownloading!", "message": "Zapisz Multimedia z DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Zapisz wybór z TraitorousDownloading!", "message": "Zapisz wybór z DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "Narzędzie do zbiorowego pobierania dla Twojej przeglądarki", "message": "Narzędzie do zbiorowego pobierania dla Twojej przeglądarki",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Szybkie filtrowanie", "message": "Szybkie filtrowanie",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "Menedżer TraitorousDownloading!", "message": "Menedżer DownThemAll!",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "Dodałeś do tej pory $DOWNLOADS$ pobrań z TraitorousDownloading! Jako stały użytkownik możesz rozważyć darowiznę na wsparcie dalszego rozwoju. Dzięki!", "message": "Dodałeś do tej pory $DOWNLOADS$ pobrań z DownThemAll! Jako stały użytkownik możesz rozważyć darowiznę na wsparcie dalszego rozwoju. Dzięki!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "Ustawienia TraitorousDownloading!", "message": "Ustawienia DownThemAll!",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "Przycisk TraitorousDownloading!:", "message": "Przycisk DownThemAll!:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "Wybór TraitorousDownloading!:", "message": "Wybór DownThemAll!:",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - Wybierz swoje pobierania", "message": "DownThemAll! - Wybierz swoje pobierania",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - Dodaj link", "message": "DownThemAll! - Dodaj link",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - Todas as abas", "message": "DownThemAll! - Todas as abas",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Salvar Imagem com o TraitorousDownloading!", "message": "Salvar Imagem com o DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Salvar Link com o TraitorousDownloading!", "message": "Salvar Link com o DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Salvar Mídia com o TraitorousDownloading!", "message": "Salvar Mídia com o DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Salvar Seleção com o TraitorousDownloading!", "message": "Salvar Seleção com o DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "A ferramenta de download em massa para o seu navegador", "message": "A ferramenta de download em massa para o seu navegador",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Filtragem rápida", "message": "Filtragem rápida",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "Gerenciador do TraitorousDownloading!", "message": "Gerenciador do DownThemAll!",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "Você já adicionou $DOWNLOADS$ downloads com TraitorousDownloading! Como usuário regular, você pode considerar uma doação para apoiar desenvolvimento adicional. Obrigado!", "message": "Você já adicionou $DOWNLOADS$ downloads com DownThemAll! Como usuário regular, você pode considerar uma doação para apoiar desenvolvimento adicional. Obrigado!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "Preferências do TraitorousDownloading!", "message": "Preferências do DownThemAll!",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "Botão TraitorousDownloading!", "message": "Botão DownThemAll!",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "Seleção do TraitorousDownloading!", "message": "Seleção do DownThemAll!",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - Selecione seus Downloads", "message": "DownThemAll! - Selecione seus Downloads",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - Adicone um link", "message": "DownThemAll! - Adicone um link",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - Все вкладки", "message": "DownThemAll! - Все вкладки",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Закачать изображение через TraitorousDownloading!", "message": "Закачать изображение через DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Закачать ссылку через TraitorousDownloading!", "message": "Закачать ссылку через DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Закачать медиа через TraitorousDownloading!", "message": "Закачать медиа через DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Закачать выделенное через TraitorousDownloading!", "message": "Закачать выделенное через DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "Универсальная качалка для вашего браузера", "message": "Универсальная качалка для вашего браузера",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Быстрый фильтр", "message": "Быстрый фильтр",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! Менеджер", "message": "DownThemAll! Менеджер",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "Добавлено $DOWNLOADS$ закачек через TraitorousDownloading! на текущий момент! Как постоянный пользователь подумайте над тем чтобы поддержать дальнейшую разработку. Спасибо!", "message": "Добавлено $DOWNLOADS$ закачек через DownThemAll! на текущий момент! Как постоянный пользователь подумайте над тем чтобы поддержать дальнейшую разработку. Спасибо!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "Настройки TraitorousDownloading!", "message": "Настройки DownThemAll!",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "Кнопка TraitorousDownloading!", "message": "Кнопка DownThemAll!",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "TraitorousDownloading! выделенного", "message": "DownThemAll! выделенного",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - Выбрать ваши закачки", "message": "DownThemAll! - Выбрать ваши закачки",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - Добавить ссылку", "message": "DownThemAll! - Добавить ссылку",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - Alla flikar", "message": "DownThemAll! - Alla flikar",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "Spara bild med TraitorousDownloading!", "message": "Spara bild med DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "Spara länk med TraitorousDownloading!", "message": "Spara länk med DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "Spara media med TraitorousDownloading!", "message": "Spara media med DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "Spara val med TraitorousDownloading!", "message": "Spara val med DownThemAll!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -313,7 +313,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "Bulkhämtaren för din webbläsare", "message": "Bulkhämtaren för din webbläsare",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Snabb filtrering", "message": "Snabb filtrering",
@ -442,7 +442,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! Hanterare", "message": "DownThemAll! Hanterare",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"media": { "media": {
@ -470,7 +470,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "Du har lagt till $DOWNLOADS$ hämtningar med TraitorousDownloading! hittills! Som en vanlig användare kanske du vill överväga en donation för att stöda vidareutveckling. Tackar!", "message": "Du har lagt till $DOWNLOADS$ hämtningar med DownThemAll! hittills! Som en vanlig användare kanske du vill överväga en donation för att stöda vidareutveckling. Tackar!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -550,7 +550,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "TraitorousDownloading! Inställningar", "message": "DownThemAll! Inställningar",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -558,11 +558,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "TraitorousDownloading! knapp:", "message": "DownThemAll! knapp:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "TraitorousDownloading! urval", "message": "DownThemAll! urval",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -966,7 +966,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - Välj dina hämtningar", "message": "DownThemAll! - Välj dina hämtningar",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -994,7 +994,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - Lägg till en länk", "message": "DownThemAll! - Lägg till en länk",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - Tüm Sekmeler", "message": "DownThemAll! - Tüm Sekmeler",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "TraitorousDownloading ile Görüntüyü Kaydet!", "message": "DownThemAll ile Görüntüyü Kaydet!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "TraitorousDownloading ile Bağlantıyı Kaydet!", "message": "DownThemAll ile Bağlantıyı Kaydet!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "TraitorousDownloading ile Medyayı Kaydet!", "message": "DownThemAll ile Medyayı Kaydet!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "TraitorousDownloading ile Seçimi Kaydet!", "message": "DownThemAll ile Seçimi Kaydet!",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "Tarayıcınız için Toplu İndirme", "message": "Tarayıcınız için Toplu İndirme",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "Hızlı Filtreleme", "message": "Hızlı Filtreleme",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! Yöneticisi", "message": "DownThemAll! Yöneticisi",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "TraitorousDownloading! ile şimdiye kadar $DOWNLOADS$ indirme eklediniz! Normal bir kullanıcı olarak, daha fazla gelişimi desteklemek için bir bağış düşünebilirsiniz. Teşekkürler!", "message": "DownThemAll! ile şimdiye kadar $DOWNLOADS$ indirme eklediniz! Normal bir kullanıcı olarak, daha fazla gelişimi desteklemek için bir bağış düşünebilirsiniz. Teşekkürler!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "TraitorousDownloading! Tercihleri", "message": "DownThemAll! Tercihleri",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "TraitorousDownloading! düğmesi:", "message": "DownThemAll! düğmesi:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "TraitorousDownloading! seçimi", "message": "DownThemAll! seçimi",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - İndirilenlerinizi seçin", "message": "DownThemAll! - İndirilenlerinizi seçin",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - Bir bağlantı ekle", "message": "DownThemAll! - Bir bağlantı ekle",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading! - 全部标签页", "message": "DownThemAll! - 全部标签页",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "用 TraitorousDownloading! 保存图片", "message": "用 DownThemAll! 保存图片",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "用 TraitorousDownloading! 保存链接", "message": "用 DownThemAll! 保存链接",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "用 TraitorousDownloading! 保存媒体", "message": "用 DownThemAll! 保存媒体",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "用 TraitorousDownloading! 保存选中项", "message": "用 DownThemAll! 保存选中项",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "适用您浏览器的批量下载工具", "message": "适用您浏览器的批量下载工具",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "快速筛选", "message": "快速筛选",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading! 管理器", "message": "DownThemAll! 管理器",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "您使用 TraitorousDownloading! 至今已经添加了 $DOWNLOADS$ 个下载。作为一名普通用户,您可以考虑捐助来支持一下开发。多谢!", "message": "您使用 DownThemAll! 至今已经添加了 $DOWNLOADS$ 个下载。作为一名普通用户,您可以考虑捐助来支持一下开发。多谢!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "TraitorousDownloading! 首选项", "message": "DownThemAll! 首选项",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "TraitorousDownloading! 按钮:", "message": "DownThemAll! 按钮:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "TraitorousDownloading! 选择框", "message": "DownThemAll! 选择框",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading! - 选择您要下载的内容", "message": "DownThemAll! - 选择您要下载的内容",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading! - 添加链接", "message": "DownThemAll! - 添加链接",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

View File

@ -232,27 +232,27 @@
"description": "Download (verb/action); e.g. in single and select buttons" "description": "Download (verb/action); e.g. in single and select buttons"
}, },
"dta_regular": { "dta_regular": {
"message": "TraitorousDownloading!", "message": "DownThemAll!",
"description": "Regular dta action; Menu text" "description": "Regular dta action; Menu text"
}, },
"dta_regular_all": { "dta_regular_all": {
"message": "TraitorousDownloading!- 全部分頁", "message": "DownThemAll!- 全部分頁",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_image": { "dta_regular_image": {
"message": "以 TraitorousDownloading! 儲存圖片", "message": "以 DownThemAll! 儲存圖片",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_link": { "dta_regular_link": {
"message": "以 TraitorousDownloading! 下載連結", "message": "以 DownThemAll! 下載連結",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_media": { "dta_regular_media": {
"message": "以 TraitorousDownloading! 儲存媒體檔案", "message": "以 DownThemAll! 儲存媒體檔案",
"description": "Menu text" "description": "Menu text"
}, },
"dta_regular_selection": { "dta_regular_selection": {
"message": "以 TraitorousDownloading! 儲存選取項目", "message": "以 DownThemAll! 儲存選取項目",
"description": "Menu text" "description": "Menu text"
}, },
"dta_turbo": { "dta_turbo": {
@ -321,7 +321,7 @@
}, },
"extensionDescription": { "extensionDescription": {
"message": "為你瀏覽器而生的大量下載工具", "message": "為你瀏覽器而生的大量下載工具",
"description": "TraitorousDownloading! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one" "description": "DownThemAll! tagline, displayed in about:addons; Please do NOT refer to a specific browser such as firefox, as we will probably support more than one"
}, },
"fastfiltering": { "fastfiltering": {
"message": "快速篩選", "message": "快速篩選",
@ -450,7 +450,7 @@
} }
}, },
"manager_title": { "manager_title": {
"message": "TraitorousDownloading!下載管理", "message": "DownThemAll!下載管理",
"description": "Window/tab title" "description": "Window/tab title"
}, },
"mask": { "mask": {
@ -486,7 +486,7 @@
"description": "Action for moving a download up" "description": "Action for moving a download up"
}, },
"nagging_message": { "nagging_message": {
"message": "目前已透過TraitorousDownloading! 加入 $DOWNLOADS$ 個下載您可以贊助我們支持更進一步的開發謝謝!", "message": "目前已透過DownThemAll! 加入 $DOWNLOADS$ 個下載您可以贊助我們支持更進一步的開發謝謝!",
"description": "Donation nagging message; displayed as a notification bar in manager", "description": "Donation nagging message; displayed as a notification bar in manager",
"placeholders": { "placeholders": {
"downloads": { "downloads": {
@ -566,7 +566,7 @@
"description": "Menu text; Preferences" "description": "Menu text; Preferences"
}, },
"prefs_title": { "prefs_title": {
"message": "TraitorousDownloading!偏好設定", "message": "DownThemAll!偏好設定",
"description": "Window/tab title; Preferences" "description": "Window/tab title; Preferences"
}, },
"pref_add_paused": { "pref_add_paused": {
@ -574,11 +574,11 @@
"description": "Preferences/General" "description": "Preferences/General"
}, },
"pref_button_type": { "pref_button_type": {
"message": "TraitorousDownloading! 按鈕:", "message": "DownThemAll! 按鈕:",
"description": "label" "description": "label"
}, },
"pref_button_type_dta": { "pref_button_type_dta": {
"message": "TraitorousDownloading! 選取", "message": "DownThemAll! 選取",
"description": "label" "description": "label"
}, },
"pref_button_type_manager": { "pref_button_type_manager": {
@ -1026,7 +1026,7 @@
"description": "Menu text; select context" "description": "Menu text; select context"
}, },
"select_title": { "select_title": {
"message": "TraitorousDownloading!- 選擇下載", "message": "DownThemAll!- 選擇下載",
"description": "Title of the select window" "description": "Title of the select window"
}, },
"SERVER_BAD_CONTENT": { "SERVER_BAD_CONTENT": {
@ -1070,7 +1070,7 @@
"description": "Header text; single window" "description": "Header text; single window"
}, },
"single_title": { "single_title": {
"message": "TraitorousDownloading!- 新增連結", "message": "DownThemAll!- 新增連結",
"description": "Title of single window" "description": "Title of single window"
}, },
"sizeB": { "sizeB": {

File diff suppressed because one or more lines are too long

View File

@ -11,7 +11,7 @@ import { getManager } from "./manager/man";
import { select } from "./select"; import { select } from "./select";
import { single } from "./single"; import { single } from "./single";
import { Notification } from "./notifications"; import { Notification } from "./notifications";
import { MASK, FASTFILTER, SUBFOLDER, SERVER } from "./recentlist"; import { MASK, FASTFILTER, SUBFOLDER } from "./recentlist";
import { openManager } from "./windowutils"; import { openManager } from "./windowutils";
import { _ } from "./i18n"; import { _ } from "./i18n";
@ -20,9 +20,7 @@ const MAX_BATCH = 10000;
export interface QueueOptions { export interface QueueOptions {
mask?: string; mask?: string;
subfolder?: string; subfolder?: string;
server?: string;
paused?: boolean; paused?: boolean;
cookies?: boolean;
} }
export const API = new class APIImpl { export const API = new class APIImpl {
@ -34,10 +32,8 @@ export const API = new class APIImpl {
await Promise.all([MASK.init(), SUBFOLDER.init()]); await Promise.all([MASK.init(), SUBFOLDER.init()]);
const {mask = MASK.current} = options; const {mask = MASK.current} = options;
const {subfolder = SUBFOLDER.current} = options; const {subfolder = SUBFOLDER.current} = options;
const {server = SERVER.current} = options;
const {paused = false} = options; const {paused = false} = options;
const {cookies = false} = options;
const defaults: any = { const defaults: any = {
_idx: 0, _idx: 0,
get idx() { get idx() {
@ -53,10 +49,8 @@ export const API = new class APIImpl {
postData: null, postData: null,
mask, mask,
subfolder, subfolder,
server,
date: Date.now(), date: Date.now(),
paused, paused
cookies,
}; };
let currentBatch = await Prefs.get("currentBatch", 0); let currentBatch = await Prefs.get("currentBatch", 0);
const initialBatch = currentBatch; const initialBatch = currentBatch;
@ -86,7 +80,7 @@ export const API = new class APIImpl {
new Notification(null, _("queued-downloads", items.length)); new Notification(null, _("queued-downloads", items.length));
} }
} }
if (false && await Prefs.get("open-manager-on-queue")) { if (await Prefs.get("open-manager-on-queue")) {
await openManager(false); await openManager(false);
} }
} }
@ -130,10 +124,6 @@ export const API = new class APIImpl {
await SUBFOLDER.init(); await SUBFOLDER.init();
await SUBFOLDER.push(options.subfolder); await SUBFOLDER.push(options.subfolder);
} }
if (typeof options.server === "string" && !options.serverOnce) {
await SERVER.init();
await SERVER.push(options.server);
}
if (typeof options.type === "string") { if (typeof options.type === "string") {
await Prefs.set("last-type", options.type); await Prefs.set("last-type", options.type);
} }

View File

@ -27,7 +27,6 @@ import {
} from "./browser"; } from "./browser";
import { Bus } from "./bus"; import { Bus } from "./bus";
import { filterInSitu } from "./util"; import { filterInSitu } from "./util";
import { DB } from "./db";
const menus = typeof (_menus) !== "undefined" && _menus || _cmenus; const menus = typeof (_menus) !== "undefined" && _menus || _cmenus;
@ -107,19 +106,19 @@ class Handler {
async performSelection(options: SelectionOptions) { async performSelection(options: SelectionOptions) {
try { try {
const tabOptions: any = { const toptions: any = {
currentWindow: true, currentWindow: true,
discarded: false, discarded: false,
}; };
if (!CHROME) { if (!CHROME) {
tabOptions.hidden = false; toptions.hidden = false;
} }
const selectedTabs = options.allTabs ? const selectedTabs = options.allTabs ?
await tabs.query(tabOptions) as any[] : await tabs.query(toptions) as any[] :
[options.tab]; [options.tab];
const textLinks = await Prefs.get("text-links", true); const textLinks = await Prefs.get("text-links", true);
const gatherOptions = { const goptions = {
type: "DTA:gather", type: "DTA:gather",
selectionOnly: options.selectionOnly, selectionOnly: options.selectionOnly,
textLinks, textLinks,
@ -128,7 +127,7 @@ class Handler {
}; };
const results = await Promise.all(selectedTabs. const results = await Promise.all(selectedTabs.
map((tab: any) => runContentJob(tab, GATHER, gatherOptions))); map((tab: any) => runContentJob(tab, GATHER, goptions)));
await this.processResults(options.turbo, results.flat()); await this.processResults(options.turbo, results.flat());
} }
@ -154,14 +153,14 @@ runtime.onInstalled.addListener(({reason, previousVersion}: OnInstalled) => {
const major = getMajor(version); const major = getMajor(version);
const prevMajor = getMajor(previousVersion); const prevMajor = getMajor(previousVersion);
if (reason === "update" && major !== prevMajor) { if (reason === "update" && major !== prevMajor) {
// tabs.create({ tabs.create({
// url: `https://about.downthemall.org/changelog/?cur=${major}&prev=${prevMajor}`, url: `https://about.downthemall.org/changelog/?cur=${major}&prev=${prevMajor}`,
// }); });
} }
else if (reason === "install") { else if (reason === "install") {
// tabs.create({ tabs.create({
// url: `https://about.downthemall.org/4.0/?cur=${major}`, url: `https://about.downthemall.org/4.0/?cur=${major}`,
// }); });
} }
}); });
@ -171,7 +170,7 @@ locale.then(() => {
super(); super();
this.onClicked = this.onClicked.bind(this); this.onClicked = this.onClicked.bind(this);
const alls = new Map<string, string[]>(); const alls = new Map<string, string[]>();
const menuCreate = (options: any) => { const mcreate = (options: any) => {
if (CHROME) { if (CHROME) {
delete options.icons; delete options.icons;
options.contexts = options.contexts. options.contexts = options.contexts.
@ -185,7 +184,7 @@ locale.then(() => {
} }
menus.create(options); menus.create(options);
}; };
menuCreate({ mcreate({
id: "DTARegularLink", id: "DTARegularLink",
contexts: ["link"], contexts: ["link"],
icons: { icons: {
@ -194,7 +193,7 @@ locale.then(() => {
}, },
title: _("dta.regular.link"), title: _("dta.regular.link"),
}); });
menuCreate({ mcreate({
id: "DTATurboLink", id: "DTATurboLink",
contexts: ["link"], contexts: ["link"],
icons: { icons: {
@ -203,7 +202,7 @@ locale.then(() => {
}, },
title: _("dta.turbo.link"), title: _("dta.turbo.link"),
}); });
menuCreate({ mcreate({
id: "DTARegularImage", id: "DTARegularImage",
contexts: ["image"], contexts: ["image"],
icons: { icons: {
@ -212,7 +211,7 @@ locale.then(() => {
}, },
title: _("dta.regular.image"), title: _("dta.regular.image"),
}); });
menuCreate({ mcreate({
id: "DTATurboImage", id: "DTATurboImage",
contexts: ["image"], contexts: ["image"],
icons: { icons: {
@ -221,7 +220,7 @@ locale.then(() => {
}, },
title: _("dta.turbo.image"), title: _("dta.turbo.image"),
}); });
menuCreate({ mcreate({
id: "DTARegularMedia", id: "DTARegularMedia",
contexts: ["video", "audio"], contexts: ["video", "audio"],
icons: { icons: {
@ -230,7 +229,7 @@ locale.then(() => {
}, },
title: _("dta.regular.media"), title: _("dta.regular.media"),
}); });
menuCreate({ mcreate({
id: "DTATurboMedia", id: "DTATurboMedia",
contexts: ["video", "audio"], contexts: ["video", "audio"],
icons: { icons: {
@ -239,7 +238,7 @@ locale.then(() => {
}, },
title: _("dta.turbo.media"), title: _("dta.turbo.media"),
}); });
menuCreate({ mcreate({
id: "DTARegularSelection", id: "DTARegularSelection",
contexts: ["selection"], contexts: ["selection"],
icons: { icons: {
@ -248,7 +247,7 @@ locale.then(() => {
}, },
title: _("dta.regular.selection"), title: _("dta.regular.selection"),
}); });
menuCreate({ mcreate({
id: "DTATurboSelection", id: "DTATurboSelection",
contexts: ["selection"], contexts: ["selection"],
icons: { icons: {
@ -257,7 +256,7 @@ locale.then(() => {
}, },
title: _("dta.turbo.selection"), title: _("dta.turbo.selection"),
}); });
menuCreate({ mcreate({
id: "DTARegular", id: "DTARegular",
contexts: ["all", "browser_action", "tools_menu"], contexts: ["all", "browser_action", "tools_menu"],
icons: { icons: {
@ -266,7 +265,7 @@ locale.then(() => {
}, },
title: _("dta.regular"), title: _("dta.regular"),
}); });
menuCreate({ mcreate({
id: "DTATurbo", id: "DTATurbo",
contexts: ["all", "browser_action", "tools_menu"], contexts: ["all", "browser_action", "tools_menu"],
icons: { icons: {
@ -275,12 +274,12 @@ locale.then(() => {
}, },
title: _("dta.turbo"), title: _("dta.turbo"),
}); });
menuCreate({ mcreate({
id: "sep-1", id: "sep-1",
contexts: ["all", "browser_action", "tools_menu"], contexts: ["all", "browser_action", "tools_menu"],
type: "separator" type: "separator"
}); });
menuCreate({ mcreate({
id: "DTARegularAll", id: "DTARegularAll",
contexts: ["all", "browser_action", "tools_menu"], contexts: ["all", "browser_action", "tools_menu"],
icons: { icons: {
@ -289,7 +288,7 @@ locale.then(() => {
}, },
title: _("dta-regular-all"), title: _("dta-regular-all"),
}); });
menuCreate({ mcreate({
id: "DTATurboAll", id: "DTATurboAll",
contexts: ["all", "browser_action", "tools_menu"], contexts: ["all", "browser_action", "tools_menu"],
icons: { icons: {
@ -301,12 +300,12 @@ locale.then(() => {
const sep2ctx = menus.ACTION_MENU_TOP_LEVEL_LIMIT === 6 ? const sep2ctx = menus.ACTION_MENU_TOP_LEVEL_LIMIT === 6 ?
["all", "tools_menu"] : ["all", "tools_menu"] :
["all", "browser_action", "tools_menu"]; ["all", "browser_action", "tools_menu"];
menuCreate({ mcreate({
id: "sep-2", id: "sep-2",
contexts: sep2ctx, contexts: sep2ctx,
type: "separator" type: "separator"
}); });
menuCreate({ mcreate({
id: "DTAAdd", id: "DTAAdd",
contexts: ["all", "browser_action", "tools_menu"], contexts: ["all", "browser_action", "tools_menu"],
icons: { icons: {
@ -317,12 +316,12 @@ locale.then(() => {
}, },
title: _("add-download"), title: _("add-download"),
}); });
menuCreate({ mcreate({
id: "sep-3", id: "sep-3",
contexts: ["all", "browser_action", "tools_menu"], contexts: ["all", "browser_action", "tools_menu"],
type: "separator" type: "separator"
}); });
/* menuCreate({ mcreate({
id: "DTAManager", id: "DTAManager",
contexts: ["all", "browser_action", "tools_menu"], contexts: ["all", "browser_action", "tools_menu"],
icons: { icons: {
@ -330,8 +329,8 @@ locale.then(() => {
32: "/style/button-manager@2x.png", 32: "/style/button-manager@2x.png",
}, },
title: _("manager.short"), title: _("manager.short"),
});*/ });
menuCreate({ mcreate({
id: "DTAPrefs", id: "DTAPrefs",
contexts: ["all", "browser_action", "tools_menu"], contexts: ["all", "browser_action", "tools_menu"],
icons: { icons: {
@ -663,13 +662,6 @@ locale.then(() => {
await sessionRemover(); await sessionRemover();
} }
try {
await DB.init();
}
catch (ex) {
console.error("db init", ex.toString(), ex.message, ex.stack, ex);
}
await Prefs.set("last-run", new Date()); await Prefs.set("last-run", new Date());
await filters(); await filters();
await getManager(); await getManager();

132
lib/db.ts
View File

@ -1,25 +1,17 @@
"use strict"; "use strict";
// License: MIT
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import { BaseItem } from "./item"; import { BaseItem } from "./item";
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import { Download } from "./manager/download"; import { Download } from "./manager/download";
import { RUNNING, QUEUED, RETRYING } from "./manager/state"; import { RUNNING, QUEUED, RETRYING } from "./manager/state";
import { storage } from "./browser";
import { sort } from "./sorting"; // License: MIT
const VERSION = 1; const VERSION = 1;
const STORE = "queue"; const STORE = "queue";
interface Database { export const DB = new class DB {
init(): Promise<void>;
saveItems(items: Download[]): Promise<unknown>;
deleteItems(items: any[]): Promise<void>;
getAll(): Promise<BaseItem[]>;
}
export class IDB implements Database {
private db?: IDBDatabase; private db?: IDBDatabase;
constructor() { constructor() {
@ -114,7 +106,7 @@ export class IDB implements Database {
return await new Promise(this.saveItemsInternal.bind(this, items)); return await new Promise(this.saveItemsInternal.bind(this, items));
} }
deleteItemsInternal(items: any[], resolve: () => void, reject: Function) { deleteItemsInternal(items: any[], resolve: Function, reject: Function) {
if (!items || !items.length || !this.db) { if (!items || !items.length || !this.db) {
resolve(); resolve();
return; return;
@ -147,120 +139,4 @@ export class IDB implements Database {
await this.init(); await this.init();
await new Promise(this.deleteItemsInternal.bind(this, items)); await new Promise(this.deleteItemsInternal.bind(this, items));
} }
}
class StorageDB implements Database {
private counter = 1;
async init(): Promise<void> {
const {db = null} = await storage.local.get("db");
if (!db || !db.counter) {
return;
}
this.counter = db.counter;
}
async saveItems(items: Download[]) {
const db: any = {items: []};
for (const item of items) {
if (!item.dbId) {
item.dbId = ++this.counter;
}
db.items.push(item.toJSON());
}
db.counter = this.counter;
await storage.local.set({db});
}
async deleteItems(items: any[]): Promise<void> {
const gone = new Set(items.map(i => i.dbId));
const {db = null} = await storage.local.get("db");
if (!db) {
return;
}
db.items = db.items.filter((i: any) => !gone.has(i.dbId));
await storage.local.set({db});
}
async getAll() {
const {db = null} = await storage.local.get("db");
if (!db || !Array.isArray(db.items)) {
return [];
}
return sort(db.items, (i: any) => i.position) as BaseItem[];
}
}
class MemoryDB implements Database {
private counter = 1;
private items = new Map();
init(): Promise<void> {
return Promise.resolve();
}
saveItems(items: Download[]) {
for (const item of items) {
if (item.private) {
continue;
}
if (!item.dbId) {
item.dbId = ++this.counter;
}
this.items.set(item.dbId, item.toJSON());
}
return Promise.resolve();
}
deleteItems(items: any[]) {
for (const item of items) {
if (!("dbId" in item)) {
continue;
}
this.items.delete(item.dbId);
}
return Promise.resolve();
}
getAll(): Promise<BaseItem[]> {
return Promise.resolve(Array.from(this.items.values()));
}
}
export const DB = new class DBWrapper implements Database {
saveItems(items: Download[]): Promise<unknown> {
return this.db.saveItems(items);
}
deleteItems(items: any[]): Promise<void> {
return this.db.deleteItems(items);
}
getAll(): Promise<BaseItem[]> {
return this.db.getAll();
}
private db: Database;
async init() {
try {
this.db = new IDB();
await this.db.init();
}
catch (ex) {
console.warn(
"Failed to initialize idb backend, using storage db fallback", ex);
try {
this.db = new StorageDB();
await this.db.init();
}
catch (ex) {
console.warn(
"Failed to initialize storage backend, using memory db fallback", ex);
this.db = new MemoryDB();
await this.db.init();
}
}
}
}(); }();

View File

@ -4,7 +4,7 @@
import {memoize} from "./memoize"; import {memoize} from "./memoize";
import langs from "../_locales/all.json"; import langs from "../_locales/all.json";
import { sorted, naturalCaseCompare } from "./sorting"; import { sorted, naturalCaseCompare } from "./sorting";
import lf from "localforage";
export const ALL_LANGS = Object.freeze(new Map<string, string>( export const ALL_LANGS = Object.freeze(new Map<string, string>(
sorted(Object.entries(langs), e => { sorted(Object.entries(langs), e => {
@ -40,11 +40,11 @@ class Entry {
this.message = entry.message.replace(/\$[A-Z0-9]+\$/g, (r: string) => { this.message = entry.message.replace(/\$[A-Z0-9]+\$/g, (r: string) => {
hit = true; hit = true;
const id = r.substr(1, r.length - 2).toLocaleLowerCase(); const id = r.substr(1, r.length - 2).toLocaleLowerCase();
const placeholder = entry.placeholders[id]; const pholder = entry.placeholders[id];
if (!placeholder || !placeholder.content) { if (!pholder || !pholder.content) {
throw new Error(`Invalid placeholder: ${id}`); throw new Error(`Invalid placeholder: ${id}`);
} }
return `${placeholder.content}$`; return `${pholder.content}$`;
}); });
if (!hit) { if (!hit) {
throw new Error("Not entry-able"); throw new Error("Not entry-able");
@ -123,17 +123,14 @@ async function fetchLanguage(code: string) {
} }
async function loadCached(): Promise<any> { function loadCached() {
const cached = await lf.getItem<string>(CACHE_KEY); if (document.location.pathname.includes("/windows/")) {
if (!cached) { const cached = localStorage.getItem(CACHE_KEY);
return null; if (cached) {
return JSON.parse(cached) as any[];
}
} }
const parsed = JSON.parse(cached); return null;
if (!Array.isArray(parsed) || !parsed[0].CRASH || !parsed[0].CRASH.message) {
console.warn("rejecting cached locales", parsed);
return null;
}
return parsed;
} }
async function loadRawLocales() { async function loadRawLocales() {
@ -190,16 +187,16 @@ async function load(): Promise<Localization> {
} }
CURRENT = currentLang; CURRENT = currentLang;
// en is the base locale // en is the base locale
let valid = await loadCached(); let valid = loadCached();
if (!valid) { if (!valid) {
valid = await loadRawLocales(); valid = await loadRawLocales();
await lf.setItem(CACHE_KEY, JSON.stringify(valid)); localStorage.setItem(CACHE_KEY, JSON.stringify(valid));
} }
if (!valid.length) { if (!valid.length) {
throw new Error("Could not load ANY of these locales"); throw new Error("Could not lood ANY of these locales");
} }
const custom = await lf.getItem<string>(CUSTOM_KEY); const custom = localStorage.getItem(CUSTOM_KEY);
if (custom) { if (custom) {
try { try {
valid.push(JSON.parse(custom)); valid.push(JSON.parse(custom));
@ -242,7 +239,7 @@ locale.then(l => {
/** /**
* Localize a message * Localize a message
* @param {string} id Identifier of the string to localize * @param {string} id Identifier of the string to localize
* @param {string[]} [subst] Message substitutions * @param {string[]} [subst] Message substituations
* @returns {string} Localized message * @returns {string} Localized message
*/ */
export function _(id: string, ...subst: any[]) { export function _(id: string, ...subst: any[]) {
@ -305,11 +302,11 @@ export async function localize<T extends HTMLElement | DocumentFragment>(
return localize_(elem); return localize_(elem);
} }
export async function saveCustomLocale(data?: string) { export function saveCustomLocale(data?: string) {
if (!data) { if (!data) {
await lf.removeItem(CUSTOM_KEY); localStorage.removeItem(CUSTOM_KEY);
return; return;
} }
new Localization(JSON.parse(data)); new Localization(JSON.parse(data));
await localStorage.setItem(CUSTOM_KEY, data); localStorage.setItem(CUSTOM_KEY, data);
} }

View File

@ -4,11 +4,9 @@
import { downloads, CHROME } from "./browser"; import { downloads, CHROME } from "./browser";
import { EventEmitter } from "../uikit/lib/events"; import { EventEmitter } from "../uikit/lib/events";
import { PromiseSerializer } from "./pserializer"; import { PromiseSerializer } from "./pserializer";
import lf from "localforage";
const VERSION = 1;
const STORE = "iconcache"; const STORE = "iconcache";
// eslint-disable-next-line no-magic-numbers // eslint-disable-next-line no-magic-numbers
const CACHE_SIZES = CHROME ? [16, 32] : [16, 32, 64, 127]; const CACHE_SIZES = CHROME ? [16, 32] : [16, 32, 64, 127];
@ -50,17 +48,37 @@ const SYNONYMS = Object.freeze(new Map<string, string>([
])); ]));
export const IconCache = new class IconCache extends EventEmitter { export const IconCache = new class IconCache extends EventEmitter {
private db = lf.createInstance({name: STORE}); private db: Promise<IDBDatabase>;
private cache: Map<string, string>; private cache: Map<string, string>;
constructor() { constructor() {
super(); super();
this.db = this.init();
this.cache = new Map(); this.cache = new Map();
this.get = PromiseSerializer.wrapNew(8, this, this.get); this.get = PromiseSerializer.wrapNew(8, this, this.get);
this.set = PromiseSerializer.wrapNew(1, this, this.set); this.set = PromiseSerializer.wrapNew(1, this, this.set);
} }
private async init() {
return await new Promise<IDBDatabase>((resolve, reject) => {
const req = indexedDB.open(STORE, VERSION);
req.onupgradeneeded = evt => {
const db = req.result;
switch (evt.oldVersion) {
case 0: {
db.createObjectStore(STORE);
break;
}
}
};
req.onerror = ex => reject(ex);
req.onsuccess = () => {
resolve(req.result);
};
});
}
private normalize(ext: string) { private normalize(ext: string) {
ext = ext.toLocaleLowerCase(); ext = ext.toLocaleLowerCase();
return SYNONYMS.get(ext) || ext; return SYNONYMS.get(ext) || ext;
@ -77,25 +95,36 @@ export const IconCache = new class IconCache extends EventEmitter {
if (rv) { if (rv) {
return rv; return rv;
} }
const db = await this.db;
rv = this.cache.get(sext); rv = this.cache.get(sext);
if (rv) { if (rv) {
return rv; return rv;
} }
let result = await this.db.getItem<any>(sext); return await new Promise<string | undefined>(resolve => {
if (!result) { const trans = db.transaction(STORE, "readonly");
return this.cache.get(sext); trans.onerror = () => resolve(undefined);
} const store = trans.objectStore(STORE);
rv = this.cache.get(sext); const req = store.get(sext);
if (rv) { req.onerror = () => resolve(undefined);
return rv; req.onsuccess = () => {
} const rv = this.cache.get(sext);
if (typeof result !== "string") { if (rv) {
result = URL.createObjectURL(result).toString(); resolve(rv);
} return;
}
this.cache.set(sext, result); let {result} = req;
this.cache.set(ext, ""); if (!result) {
return result; resolve(undefined);
return;
}
if (typeof req.result !== "string") {
result = URL.createObjectURL(result).toString();
}
this.cache.set(sext, result);
this.cache.set(ext, "");
resolve(result);
};
});
} }
async set(ext: string, manId: number) { async set(ext: string, manId: number) {
@ -116,9 +145,18 @@ export const IconCache = new class IconCache extends EventEmitter {
} }
for (const {size, icon} of urls) { for (const {size, icon} of urls) {
this.cache.set(`${ext}-${size}`, URL.createObjectURL(icon)); this.cache.set(`${ext}-${size}`, URL.createObjectURL(icon));
await this.db.setItem(`${ext}-${size}`, icon);
} }
this.cache.set(ext, ""); this.cache.set(ext, "");
const db = await this.db;
await new Promise((resolve, reject) => {
const trans = db.transaction(STORE, "readwrite");
trans.onerror = reject;
trans.oncomplete = resolve;
const store = trans.objectStore(STORE);
for (const {size, icon} of urls) {
store.put(icon, `${ext}-${size}`);
}
});
this.emit("cached", ext); this.emit("cached", ext);
} }
}(); }();

View File

@ -81,14 +81,6 @@ function importMeta4(data: string) {
if (mask) { if (mask) {
item.mask = mask; item.mask = mask;
} }
const description = file.querySelector("description");
if (description && description.textContent) {
item.description = description.textContent.trim();
}
const title = file.getElementsByTagNameNS(NS_DTA, "title");
if (title && title[0] && title[0].textContent) {
item.title = title[0].textContent;
}
items.push(item); items.push(item);
} }
catch (ex) { catch (ex) {
@ -102,9 +94,9 @@ function parseKV(current: BaseItem, line: string) {
const [k, v] = line.split("=", 2); const [k, v] = line.split("=", 2);
switch (k.toLocaleLowerCase().trim()) { switch (k.toLocaleLowerCase().trim()) {
case "referer": { case "referer": {
const refererUrls = getTextLinks(v); const rurls = getTextLinks(v);
if (refererUrls && refererUrls.length) { if (rurls && rurls.length) {
current.referrer = refererUrls.pop(); current.referrer = rurls.pop();
current.usableReferrer = decodeURIComponent(current.referrer || ""); current.usableReferrer = decodeURIComponent(current.referrer || "");
} }
break; break;
@ -205,15 +197,15 @@ class MetalinkExporter {
const document = window.document.implementation. const document = window.document.implementation.
createDocument(NS_METALINK_RFC5854, "metalink", null); createDocument(NS_METALINK_RFC5854, "metalink", null);
const root = document.documentElement; const root = document.documentElement;
root.setAttributeNS(NS_DTA, "generator", "TraitorousDownloading!"); root.setAttributeNS(NS_DTA, "generator", "DownThemAll!");
root.appendChild(document.createComment( root.appendChild(document.createComment(
"metalink as exported by TraitorousDownloading!", "metalink as exported by DownThemAll!",
)); ));
for (const item of items) { for (const item of items) {
const anyItem = item as any; const aitem = item as any;
const f = document.createElementNS(NS_METALINK_RFC5854, "file"); const f = document.createElementNS(NS_METALINK_RFC5854, "file");
f.setAttribute("name", anyItem.currentName); f.setAttribute("name", aitem.currentName);
if (item.batch) { if (item.batch) {
f.setAttributeNS(NS_DTA, "num", item.batch.toString()); f.setAttributeNS(NS_DTA, "num", item.batch.toString());
} }
@ -233,19 +225,13 @@ class MetalinkExporter {
f.appendChild(n); f.appendChild(n);
} }
if (item.title) {
const n = document.createElementNS(NS_DTA, "title");
n.textContent = item.title;
f.appendChild(n);
}
const u = document.createElementNS(NS_METALINK_RFC5854, "url"); const u = document.createElementNS(NS_METALINK_RFC5854, "url");
u.textContent = item.url; u.textContent = item.url;
f.appendChild(u); f.appendChild(u);
if (anyItem.totalSize > 0) { if (aitem.totalSize > 0) {
const s = document.createElementNS(NS_METALINK_RFC5854, "size"); const s = document.createElementNS(NS_METALINK_RFC5854, "size");
s.textContent = anyItem.totalSize.toString(); s.textContent = aitem.totalSize.toString();
f.appendChild(s); f.appendChild(s);
} }
root.appendChild(f); root.appendChild(f);

View File

@ -32,8 +32,7 @@ const OPTIONPROPS = Object.freeze([
"startDate", "startDate",
"private", "private",
"postData", "postData",
"paused", "paused"
"server", "cookies",
]); ]);
function maybeAssign(options: any, what: any) { function maybeAssign(options: any, what: any) {

View File

@ -16,7 +16,7 @@ import {
DONE, DONE,
FORCABLE, FORCABLE,
MISSING, MISSING,
PAUSEABLE, PAUSABLE,
PAUSED, PAUSED,
QUEUED, QUEUED,
RUNNING, RUNNING,
@ -235,7 +235,7 @@ export class Download extends BaseDownload {
} }
async pause(retry?: boolean) { async pause(retry?: boolean) {
if (!(PAUSEABLE & this.state)) { if (!(PAUSABLE & this.state)) {
return; return;
} }
@ -277,7 +277,7 @@ export class Download extends BaseDownload {
await downloads.cancel(id); await downloads.cancel(id);
} }
catch (ex) { catch (ex) {
// ignored // ingored
} }
await new Promise(r => setTimeout(r, 1000)); await new Promise(r => setTimeout(r, 1000));
try { try {
@ -285,7 +285,7 @@ export class Download extends BaseDownload {
} }
catch (ex) { catch (ex) {
console.error(id, ex.toString(), ex); console.error(id, ex.toString(), ex);
// ignored // ingored
} }
} }
@ -399,7 +399,7 @@ export class Download extends BaseDownload {
} }
} }
updateFromSuggestion(state: any) { updatefromSuggestion(state: any) {
const res: PrerollResults = {}; const res: PrerollResults = {};
if (state.mime) { if (state.mime) {
res.mime = state.mime; res.mime = state.mime;

View File

@ -17,7 +17,6 @@ import { ManagerPort } from "./port";
import { Scheduler } from "./scheduler"; import { Scheduler } from "./scheduler";
import { Limits } from "./limits"; import { Limits } from "./limits";
import { downloads, runtime, webRequest, CHROME, OPERA } from "../browser"; import { downloads, runtime, webRequest, CHROME, OPERA } from "../browser";
import { browser } from "webextension-polyfill-ts";
const US = runtime.getURL(""); const US = runtime.getURL("");
@ -92,11 +91,11 @@ export class Manager extends EventEmitter {
} }
Bus.onPort("manager", (port: Port) => { Bus.onPort("manager", (port: Port) => {
const managerPort = new ManagerPort(this, port); const mport = new ManagerPort(this, port);
port.on("disconnect", () => { port.on("disconnect", () => {
this.ports.delete(managerPort); this.ports.delete(mport);
}); });
this.ports.add(managerPort); this.ports.add(mport);
return true; return true;
}); });
Limits.on("changed", () => { Limits.on("changed", () => {
@ -127,7 +126,7 @@ export class Manager extends EventEmitter {
// Do not wait for the scheduler // Do not wait for the scheduler
this.resetScheduler(); this.resetScheduler();
this.emit("initialized"); this.emit("inited");
setTimeout(() => this.checkMissing(), MISSING_TIMEOUT); setTimeout(() => this.checkMissing(), MISSING_TIMEOUT);
runtime.onUpdateAvailable.addListener(() => { runtime.onUpdateAvailable.addListener(() => {
if (this.running.size) { if (this.running.size) {
@ -172,7 +171,7 @@ export class Manager extends EventEmitter {
return; return;
} }
try { try {
download.updateFromSuggestion(state); download.updatefromSuggestion(state);
} }
finally { finally {
const suggestion = {filename: download.dest.full}; const suggestion = {filename: download.dest.full};
@ -262,61 +261,6 @@ export class Manager extends EventEmitter {
this.manIds.delete(id); this.manIds.delete(id);
} }
async prepareItems(items: any[]) {
var links = new Array();
for (var item of items) {
var cookiesToSend = Array();
var cs = await browser.cookies.getAll({
url: item.url,
firstPartyDomain: null,
});
if (item.cookies) {
for (var c of cs){
cookiesToSend.push({
name: c.name,
value: c.value,
domain: c.domain,
// expires: new Date(c.expirationDate * 1000) ?? null,
path: c.path,
secure: c.secure,
httponly: c.httpOnly,
// samesite: c.sameSite,
});
}
}
var status = item.paused ? "Paused":"Queue";
links.push({
description: item.description,
filename: item.fileName,
mask: item.mask,
status: status,
postData: item.postData,
subdir: item.subfolder,
title: item.title,
url: item.usable,
referrer: item.usableReferrer,
cookies: cookiesToSend,
});
}
return links;
}
addNewDownloads(items: any[]) {
if (!items || !items.length) {
return;
}
this.prepareItems(items).then(links => {
var xhr = new XMLHttpRequest();
xhr.open("POST", items[0].server);
xhr.setRequestHeader("Content-Type", "application/javascript");
xhr.send(JSON.stringify(links));
});
}
/*
addNewDownloads(items: any[]) { addNewDownloads(items: any[]) {
if (!items || !items.length) { if (!items || !items.length) {
return; return;
@ -339,7 +283,6 @@ export class Manager extends EventEmitter {
this.save(items); this.save(items);
this.startNext(); this.startNext();
} }
*/
setDirty(item: Download) { setDirty(item: Download) {
this.dirty.add(item); this.dirty.add(item);
@ -415,8 +358,8 @@ export class Manager extends EventEmitter {
this.startNext().catch(console.error); this.startNext().catch(console.error);
} }
else if (newState === RUNNING) { else if (newState === RUNNING) {
// Usually we already added it. But if a user uses the built-in // Usually we already added it. Buit if a user uses the built-in
// download manager to restart // download manager to resart
// a download, we have not, so make sure it is added either way // a download, we have not, so make sure it is added either way
this.running.add(download); this.running.add(download);
} }
@ -474,18 +417,17 @@ export class Manager extends EventEmitter {
sorted(sids: number[]) { sorted(sids: number[]) {
try { try {
// Construct new items // Construct new items
const currentSids = new Map(this.sids); const csids = new Map(this.sids);
let items = mapFilterInSitu(sids, sid => { let items = mapFilterInSitu(sids, sid => {
const item = currentSids.get(sid); const item = csids.get(sid);
if (!item) { if (!item) {
return null; return null;
} }
currentSids.delete(sid); csids.delete(sid);
return item; return item;
}, e => !!e); }, e => !!e);
if (currentSids.size) { if (csids.size) {
items = items.concat( items = items.concat(sort(Array.from(csids.values()), i => i.position));
sort(Array.from(currentSids.values()), i => i.position));
} }
this.items = items; this.items = items;
this.setPositions(); this.setPositions();

View File

@ -12,5 +12,5 @@ export const RETRYING = 1 << 7;
export const RESUMABLE = PAUSED | CANCELED | RETRYING; export const RESUMABLE = PAUSED | CANCELED | RETRYING;
export const FORCABLE = PAUSED | QUEUED | CANCELED | RETRYING; export const FORCABLE = PAUSED | QUEUED | CANCELED | RETRYING;
export const PAUSEABLE = QUEUED | CANCELED | RUNNING | RETRYING; export const PAUSABLE = QUEUED | CANCELED | RUNNING | RETRYING;
export const CANCELABLE = QUEUED | RUNNING | PAUSED | DONE | MISSING | RETRYING; export const CANCELABLE = QUEUED | RUNNING | PAUSED | DONE | MISSING | RETRYING;

View File

@ -8,7 +8,7 @@ import {EventEmitter} from "./events";
const DEFAULTS = { const DEFAULTS = {
type: "basic", type: "basic",
iconUrl: extension.getURL("/style/icon64.png"), iconUrl: extension.getURL("/style/icon64.png"),
title: "TraitorousDownloading!", title: "DownThemAll!",
message: "message", message: "message",
}; };
@ -25,7 +25,7 @@ export class Notification extends EventEmitter {
super(); super();
this.generated = !id; this.generated = !id;
id = id || `TraitorousDownloading-notification${++gid}`; id = id || `DownThemAll-notification${++gid}`;
if (typeof options === "string") { if (typeof options === "string") {
options = {message: options}; options = {message: options};
} }

View File

@ -122,8 +122,3 @@ export const SUBFOLDER = new RecentList("subfolder", [
"downthemall", "downthemall",
]); ]);
SUBFOLDER.init().catch(console.error); SUBFOLDER.init().catch(console.error);
export const SERVER = new RecentList("server", [
"",
]);
SERVER.init().catch(console.error);

View File

@ -1,11 +1,11 @@
{ {
"manifest_version": 2, "manifest_version": 2,
"name": "TraitorousDownloading!", "name": "DownThemAll!",
"version": "4.2.6", "version": "4.2.6",
"description": "__MSG_extensionDescription__", "description": "__MSG_extensionDescription__",
"homepage_url": "https://github.com/lordwelch/downthemall", "homepage_url": "https://downthemall.org/",
"author": "lordwelch", "author": "Nils Maier",
"default_locale": "en", "default_locale": "en",
@ -23,7 +23,6 @@
"permissions": [ "permissions": [
"<all_urls>", "<all_urls>",
"contextMenus", "contextMenus",
"cookies",
"downloads", "downloads",
"downloads.open", "downloads.open",
"downloads.shelf", "downloads.shelf",
@ -57,7 +56,7 @@
"128": "style/icon128.png", "128": "style/icon128.png",
"256": "style/icon256.png" "256": "style/icon256.png"
}, },
"default_title": "TraitorousDownloading!" "default_title": "DownThemAll!"
}, },
"options_ui": { "options_ui": {
@ -67,7 +66,7 @@
"browser_specific_settings": { "browser_specific_settings": {
"gecko": { "gecko": {
"id": "downloading@traitorousenterprises.net", "id": "dtalite@downthemall.org",
"strict_min_version": "67.0" "strict_min_version": "67.0"
} }
} }

View File

@ -1,7 +1,7 @@
{ {
"name": "tdl", "name": "dtalite",
"version": "4.0.0", "version": "4.0.0",
"description": "TraitorousDownloading!", "description": "DownThemAll! lite",
"main": "main.js", "main": "main.js",
"directories": { "directories": {
"lib": "lib" "lib": "lib"
@ -35,10 +35,8 @@
"dependencies": { "dependencies": {
"@types/psl": "^1.1.0", "@types/psl": "^1.1.0",
"@types/whatwg-mimetype": "^2.1.0", "@types/whatwg-mimetype": "^2.1.0",
"localforage": "^1.9.0",
"psl": "^1.4.0", "psl": "^1.4.0",
"webextension-polyfill": "^0.5.0", "webextension-polyfill": "^0.5.0",
"webextension-polyfill-ts": "^0.22.0",
"whatwg-mimetype": "^2.3.0" "whatwg-mimetype": "^2.3.0"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 747 B

After

Width:  |  Height:  |  Size: 763 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 711 B

After

Width:  |  Height:  |  Size: 725 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 810 B

After

Width:  |  Height:  |  Size: 785 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -64,7 +64,7 @@ p.example {
} }
#options > #subfolderOptions, #options > #subfolderOptions,
#options > #maskOptions, #options > #serverOptions { #options > #maskOptions {
display: grid; display: grid;
grid-template-columns: 2fr auto auto; grid-template-columns: 2fr auto auto;
} }
@ -85,4 +85,4 @@ h3 {
#btnDownload { #btnDownload {
font-weight: bold; font-weight: bold;
} }

View File

@ -108,13 +108,8 @@ export class MenuItem extends MenuItemBase {
super(owner, id, text, options); super(owner, id, text, options);
this.disabled = options.disabled === "true"; this.disabled = options.disabled === "true";
this.elem.setAttribute("aria-role", "menuitem"); this.elem.setAttribute("aria-role", "menuitem");
this.clicked = this.clicked.bind(this); this.elem.addEventListener(
this.elem.addEventListener("click", this.clicked); "click", () => this.owner.emit("clicked", this.id, this.autoHide));
this.elem.addEventListener("contextmenu", this.clicked);
}
clicked() {
this.owner.emit("clicked", this.id, this.autoHide);
} }
get disabled() { get disabled() {

View File

@ -20,7 +20,7 @@ FILES = [
"LICENSE.*", "LICENSE.*",
] ]
RELEASE_ID = "downloading@traitorousenterprises.net" RELEASE_ID = "{DDC359D1-844A-42a7-9AA1-88A850A938A8}"
UNCOMPRESSABLE = set((".png", ".jpg", ".zip", ".woff2")) UNCOMPRESSABLE = set((".png", ".jpg", ".zip", ".woff2"))
LICENSED = set((".css", ".html", ".js", "*.ts")) LICENSED = set((".css", ".html", ".js", "*.ts"))
@ -88,14 +88,14 @@ def build_firefox(args):
if args.mode != "release": if args.mode != "release":
infos["version_name"] = f"{version}-{args.mode}" infos["version_name"] = f"{version}-{args.mode}"
infos["browser_specific_settings"]["gecko"]["id"] = f"{args.mode}@traitorousenterprises.net" infos["browser_specific_settings"]["gecko"]["id"] = f"{args.mode}@downthemall.org"
infos["short_name"] = infos.get("name") infos["short_name"] = infos.get("name")
infos["name"] = f"{infos.get('name')} {args.mode}" infos["name"] = f"{infos.get('name')} {args.mode}"
else: else:
infos["browser_specific_settings"]["gecko"]["id"] = RELEASE_ID infos["browser_specific_settings"]["gecko"]["id"] = RELEASE_ID
infos["permissions"] = [p for p in infos.get("permissions") if not p in PERM_IGNORED_FX] infos["permissions"] = [p for p in infos.get("permissions") if not p in PERM_IGNORED_FX]
out = Path("web-ext-artifacts") / f"tdl-{version}-{args.mode}-fx.zip" out = Path("web-ext-artifacts") / f"dta-{version}-{args.mode}-fx.zip"
if not out.parent.exists(): if not out.parent.exists():
out.parent.mkdir() out.parent.mkdir()
if out.exists(): if out.exists():
@ -103,7 +103,7 @@ def build_firefox(args):
print("Output", out) print("Output", out)
build(out, json.dumps(infos, indent=2).encode("utf-8")) build(out, json.dumps(infos, indent=2).encode("utf-8"))
def build_chromium(args, pkg, additional_ignored=set()): def build_chromium(args, pkg, additional_ignored=set()):
now = datetime.now().strftime("%Y%m%d%H%M%S") now = datetime.now().strftime("%Y%m%d%H%M%S")
with open("manifest.json") as manip: with open("manifest.json") as manip:
@ -122,7 +122,7 @@ def build_chromium(args, pkg, additional_ignored=set()):
infos["name"] = f"{infos.get('name')} {args.mode}" infos["name"] = f"{infos.get('name')} {args.mode}"
infos["permissions"] = [p for p in infos.get("permissions") if not p in PERM_IGNORED_CHROME] infos["permissions"] = [p for p in infos.get("permissions") if not p in PERM_IGNORED_CHROME]
out = Path("web-ext-artifacts") / f"tdl-{version}-{args.mode}-{pkg}.zip" out = Path("web-ext-artifacts") / f"dta-{version}-{args.mode}-{pkg}.zip"
if not out.parent.exists(): if not out.parent.exists():
out.parent.mkdir() out.parent.mkdir()
if out.exists(): if out.exists():
@ -148,4 +148,4 @@ def main():
print("DONE.") print("DONE.")
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -3,7 +3,7 @@
<!-- License: gpl-v2 --> <!-- License: gpl-v2 -->
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title data-i18n="manager.title">TraitorousDownloading!</title> <title data-i18n="manager.title">DownThemAll!</title>
<style> <style>
@import "/uikit/css/virtualtable.css"; @import "/uikit/css/virtualtable.css";
@import "/uikit/css/modal.css"; @import "/uikit/css/modal.css";

View File

@ -131,6 +131,7 @@ addEventListener("DOMContentLoaded", function dom() {
addEventListener("contextmenu", event => { addEventListener("contextmenu", event => {
event.preventDefault(); event.preventDefault();
event.stopPropagation();
return false; return false;
}); });

View File

@ -790,7 +790,7 @@ export class DownloadTable extends VirtualTable {
const items = this.getSelectedItems(); const items = this.getSelectedItems();
const states = items.reduce((p, c) => p |= c.state, 0); const states = items.reduce((p, c) => p |= c.state, 0);
if (!(states & DownloadState.PAUSEABLE)) { if (!(states & DownloadState.PAUSABLE)) {
this.pauseAction.disabled = true; this.pauseAction.disabled = true;
} }
@ -828,7 +828,7 @@ export class DownloadTable extends VirtualTable {
} }
pauseDownloads() { pauseDownloads() {
const sids = this.getSelectedSids(DownloadState.PAUSEABLE); const sids = this.getSelectedSids(DownloadState.PAUSABLE);
if (!sids.length) { if (!sids.length) {
return; return;
} }

View File

@ -100,10 +100,10 @@
<li class="sep"> <li class="sep">
<hr> <hr>
</li> </li>
<!-- <li id="manager" data-action="open-manager"> <li id="manager" data-action="open-manager">
<img srcset="/style/button-manager.png, /style/button-manager@2x.png 2x"> <img srcset="/style/button-manager.png, /style/button-manager@2x.png 2x">
<span data-i18n="manager.short"></span> <span data-i18n="manager.short"></span>
</li> --> </li>
<li id="prefs" data-action="open-prefs"> <li id="prefs" data-action="open-prefs">
<span class="icon icon-settings"></span> <span class="icon icon-settings"></span>
<span data-i18n="prefs.short">Preferences</span> <span data-i18n="prefs.short">Preferences</span>
@ -111,4 +111,4 @@
</ul> </ul>
</body> </body>
</html> </html>

View File

@ -16,7 +16,7 @@
} }
</style> </style>
<title data-i18n="prefs.title">TraitorousDownloading! - Preferences</title> <title data-i18n="prefs.title">DownThemAll! - Preferences</title>
<link rel="icon" href="/style/icon32.png"> <link rel="icon" href="/style/icon32.png">
<link rel="icon" sizes="16x16" href="/style/icon16.png"> <link rel="icon" sizes="16x16" href="/style/icon16.png">
<link rel="icon" sizes="32x32" href="/style/icon32.png"> <link rel="icon" sizes="32x32" href="/style/icon32.png">
@ -49,7 +49,7 @@
<label><input type="radio" name="pref-button-type" value="popup"> <span data-i18n="pref-button-type-popup"></span></label> <label><input type="radio" name="pref-button-type" value="popup"> <span data-i18n="pref-button-type-popup"></span></label>
<label><input type="radio" name="pref-button-type" value="dta"> <span data-i18n="pref-button-type-dta"></span></label> <label><input type="radio" name="pref-button-type" value="dta"> <span data-i18n="pref-button-type-dta"></span></label>
<label><input type="radio" name="pref-button-type" value="turbo"> <span data-i18n="pref-button-type-turbo"></span></label> <label><input type="radio" name="pref-button-type" value="turbo"> <span data-i18n="pref-button-type-turbo"></span></label>
<label style="display: none;"><input type="radio" name="pref-button-type" value="manager"> <span data-i18n="pref-button-type-manager"></span></label> <label><input type="radio" name="pref-button-type" value="manager"> <span data-i18n="pref-button-type-manager"></span></label>
</div> </div>
<label data-i18n="pref-theme"></label> <label data-i18n="pref-theme"></label>
<div id="pref-theme"> <div id="pref-theme">
@ -59,7 +59,7 @@
</div> </div>
</div> </div>
<hr> <hr>
<label style="display: none;"><input type="checkbox" id="pref-manager-in-popup"> <span data-i18n="pref-manager-in-popup"></span></label> <label><input type="checkbox" id="pref-manager-in-popup"> <span data-i18n="pref-manager-in-popup"></span></label>
<label><input type="checkbox" id="pref-finish-notification"> <span data-i18n="pref-finish-notification"></span></label> <label><input type="checkbox" id="pref-finish-notification"> <span data-i18n="pref-finish-notification"></span></label>
<label><input type="checkbox" id="pref-sounds"> <span data-i18n="pref-sounds"></span></label> <label><input type="checkbox" id="pref-sounds"> <span data-i18n="pref-sounds"></span></label>
<label><input type="checkbox" id="pref-hide-context"> <span data-i18n="pref-hide-context"></span></label> <label><input type="checkbox" id="pref-hide-context"> <span data-i18n="pref-hide-context"></span></label>
@ -68,16 +68,15 @@
<button id="reset-layout" data-i18n="reset-layouts"></button> <button id="reset-layout" data-i18n="reset-layouts"></button>
</div> </div>
</fieldset> </fieldset>
<fieldset style="display: none;"> <fieldset>
<legend data-i18n="pref.manager">Manager</legend> <legend data-i18n="pref.manager">Manager</legend>
<label><input type="checkbox" id="pref-tooltip"> <span data-i18n="pref-manager-tooltip"></span></label> <label><input type="checkbox" id="pref-tooltip"> <span data-i18n="pref-manager-tooltip"></span></label>
<label><input type="checkbox" id="pref-show-urls"> <span data-i18n="pref-show-urls"></span></label> <label><input type="checkbox" id="pref-show-urls"> <span data-i18n="pref-show-urls"></span></label>
</fieldset> </fieldset>
<fieldset> <fieldset>
<legend data-i18n="pref.queueing">Queueing Downloads</legend> <legend data-i18n="pref.queueing">Queueing Downloads</legend>
<label><input type="checkbox" id="pref-cookies"> <span data-i18n="pref-cookies"></span></label>
<label><input type="checkbox" id="pref-queue-notification"> <span data-i18n="pref-queue-notification"></span></label> <label><input type="checkbox" id="pref-queue-notification"> <span data-i18n="pref-queue-notification"></span></label>
<label style="display: none;"><input type="checkbox" id="pref-open-manager-on-queue"> <span data-i18n="pref-open-manager-on-queue"></span></label> <label><input type="checkbox" id="pref-open-manager-on-queue"> <span data-i18n="pref-open-manager-on-queue"></span></label>
<label><input type="checkbox" id="pref-text-links"> <span data-i18n="pref-text-links"></span></label> <label><input type="checkbox" id="pref-text-links"> <span data-i18n="pref-text-links"></span></label>
<label><input type="checkbox" id="pref-add-paused"> <span data-i18n="pref-add-paused"></span></label> <label><input type="checkbox" id="pref-add-paused"> <span data-i18n="pref-add-paused"></span></label>
<label><input type="checkbox" id="pref-remove-missing-on-init"> <span data-i18n="pref-remove-missing-on-init"></span></label> <label><input type="checkbox" id="pref-remove-missing-on-init"> <span data-i18n="pref-remove-missing-on-init"></span></label>

View File

@ -568,7 +568,6 @@ addEventListener("DOMContentLoaded", async () => {
} }
new BoolPref("pref-hide-context", "hide-context"); new BoolPref("pref-hide-context", "hide-context");
new BoolPref("pref-tooltip", "tooltip"); new BoolPref("pref-tooltip", "tooltip");
new BoolPref("pref-cookies", "cookies");
new BoolPref("pref-open-manager-on-queue", "open-manager-on-queue"); new BoolPref("pref-open-manager-on-queue", "open-manager-on-queue");
new BoolPref("pref-text-links", "text-links"); new BoolPref("pref-text-links", "text-links");
new BoolPref("pref-add-paused", "add-paused"); new BoolPref("pref-add-paused", "add-paused");
@ -642,11 +641,10 @@ addEventListener("DOMContentLoaded", async () => {
$<HTMLInputElement>("#loadCustomLocale").addEventListener("click", () => { $<HTMLInputElement>("#loadCustomLocale").addEventListener("click", () => {
customLocale.click(); customLocale.click();
}); });
$<HTMLInputElement>("#clearCustomLocale"). $<HTMLInputElement>("#clearCustomLocale").addEventListener("click", () => {
addEventListener("click", async () => { saveCustomLocale(undefined);
await saveCustomLocale(undefined); runtime.reload();
runtime.reload(); });
});
customLocale.addEventListener("change", async () => { customLocale.addEventListener("change", async () => {
if (!customLocale.files || !customLocale.files.length) { if (!customLocale.files || !customLocale.files.length) {
return; return;
@ -664,9 +662,8 @@ addEventListener("DOMContentLoaded", async () => {
reader.onerror = reject; reader.onerror = reject;
reader.readAsText(file); reader.readAsText(file);
}); });
await saveCustomLocale(text); saveCustomLocale(text);
if (confirm("Imported your file.\nWant to relaod the extension now?")) {
if (confirm("Imported your file.\nWant to reload the extension now?")) {
runtime.reload(); runtime.reload();
} }
} }

View File

@ -4,7 +4,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title data-i18n="select.title">TraitorousDownloading! - Select your links</title> <title data-i18n="select.title">DownThemAll! - Select your links</title>
<style> <style>
@import "/uikit/css/virtualtable.css"; @import "/uikit/css/virtualtable.css";
@import "/uikit/css/modal.css"; @import "/uikit/css/modal.css";
@ -75,17 +75,6 @@
<input type="checkbox" id="maskOnceCheck"> <input type="checkbox" id="maskOnceCheck">
<span data-i18n="useonlyonce">Use only once</span> <span data-i18n="useonlyonce">Use only once</span>
</label> </label>
<h2 data-i18n="server">Server</h2>
<input id="server">
<label id="cookies">
<input type="checkbox" id="cookiesCheck">
<span data-i18n="cookies">Send cookies to server</span>
</label>
<label>
<input type="checkbox" id="serverOnceCheck">
<span data-i18n="useonlyonce">Use only once</span>
</label>
</section> </section>
<section id="notification"></section> <section id="notification"></section>
<section id="buttons"> <section id="buttons">

View File

@ -7,7 +7,7 @@ import { ContextMenu } from "./contextmenu";
import { iconForPath } from "../lib/windowutils"; import { iconForPath } from "../lib/windowutils";
import { _, localize } from "../lib/i18n"; import { _, localize } from "../lib/i18n";
import { Prefs } from "../lib/prefs"; import { Prefs } from "../lib/prefs";
import { MASK, FASTFILTER, SUBFOLDER, SERVER } from "../lib/recentlist"; import { MASK, FASTFILTER, SUBFOLDER } from "../lib/recentlist";
import { WindowState } from "./windowstate"; import { WindowState } from "./windowstate";
import { Dropdown } from "./dropdown"; import { Dropdown } from "./dropdown";
import { Keys } from "./keys"; import { Keys } from "./keys";
@ -43,7 +43,6 @@ const NUM_FILTER_CLASSES = 8;
let Table: SelectionTable; let Table: SelectionTable;
let Mask: Dropdown; let Mask: Dropdown;
let OServer: Dropdown;
let FastFilter: Dropdown; let FastFilter: Dropdown;
let Subfolder: Dropdown; let Subfolder: Dropdown;
@ -434,12 +433,6 @@ class SelectionTable extends VirtualTable {
return true; return true;
}); });
Prefs.get("cookies").then(checked=>{
if ($<HTMLInputElement>("#cookiesCheck").checked != !!checked) {
$<HTMLInputElement>("#cookiesCheck").click();
}
});
this.init(); this.init();
this.switchTab(type); this.switchTab(type);
} }
@ -685,10 +678,6 @@ async function download(paused = false) {
if (!mask) { if (!mask) {
throw new Error("error.invalidMask"); throw new Error("error.invalidMask");
} }
const server = OServer.value;
if (!server) {
throw new Error("error.invalidServer");
}
const subfolder = Subfolder.value; const subfolder = Subfolder.value;
validateSubfolder(subfolder); validateSubfolder(subfolder);
@ -727,9 +716,6 @@ async function download(paused = false) {
fastOnce: $<HTMLInputElement>("#fastOnceCheck").checked, fastOnce: $<HTMLInputElement>("#fastOnceCheck").checked,
subfolder, subfolder,
subfolderOnce: $<HTMLInputElement>("#subfolderOnceCheck").checked, subfolderOnce: $<HTMLInputElement>("#subfolderOnceCheck").checked,
server,
serverOnce: $<HTMLInputElement>("#serverOnceCheck").checked,
cookies: $<HTMLInputElement>("#cookiesCheck").checked,
} }
}); });
} }
@ -805,9 +791,7 @@ function cancel() {
} }
async function init() { async function init() {
await Promise.all([MASK.init(), FASTFILTER.init(), SUBFOLDER.init(), SERVER.init()]); await Promise.all([MASK.init(), FASTFILTER.init(), SUBFOLDER.init()]);
OServer = new Dropdown("#server", SERVER.values);
OServer.on("changed", clearErrors);
Mask = new Dropdown("#mask", MASK.values); Mask = new Dropdown("#mask", MASK.values);
Mask.on("changed", clearErrors); Mask.on("changed", clearErrors);
FastFilter = new Dropdown("#fast", FASTFILTER.values); FastFilter = new Dropdown("#fast", FASTFILTER.values);
@ -906,6 +890,7 @@ addEventListener("DOMContentLoaded", function dom() {
addEventListener("contextmenu", event => { addEventListener("contextmenu", event => {
event.preventDefault(); event.preventDefault();
event.stopPropagation();
return false; return false;
}); });

View File

@ -4,7 +4,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title data-i18n="single.title">TraitorousDownloading! - Add a Link</title> <title data-i18n="single.title">DownThemAll! - Add a Link</title>
<style> <style>
@import "/uikit/css/modal.css"; @import "/uikit/css/modal.css";
@import "/style/single.css"; @import "/style/single.css";
@ -32,12 +32,12 @@
<input type="text" id="URL"> <input type="text" id="URL">
<h2 data-i18n="custom-filename">Custom Filename</h2> <h2 data-i18n="custom-filename">Custom Filename</h2>
<input type="text" id="filename"> <input type="text" id="filename">
<h3 data-i18n="referrer">Referring page (Not implemented)</h3> <h3 data-i18n="referrer">Referring page</h3>
<input type="text" id="referrer"> <input type="text" id="referrer">
<h3 data-i18n="title" style="display: none;">Title</h3> <h3 data-i18n="title">Title</h3>
<input type="text" id="title" style="display: none;"> <input type="text" id="title">
<h3 data-i18n="description" style="display: none;">Description</h3> <h3 data-i18n="description">Description</h3>
<input type="text" id="description" style="display: none;"> <input type="text" id="description">
<h3 data-i18n="mask">Mask</h3> <h3 data-i18n="mask">Mask</h3>
<div id="maskOptions"> <div id="maskOptions">
<input type="text" id="mask"> <input type="text" id="mask">
@ -47,18 +47,6 @@
<span data-i18n="useonlyonce">Use only once</span> <span data-i18n="useonlyonce">Use only once</span>
</label> </label>
</div> </div>
<h3 data-i18n="server">Server</h3>
<div id="serverOptions">
<input type="text" id="server">
<label id="cookies">
<input type="checkbox" id="cookiesCheck">
<span data-i18n="cookies">Send cookies to server</span>
</label>
<label id="serverOnce">
<input type="checkbox" id="serverOnceCheck">
<span data-i18n="useonlyonce">Use only once</span>
</label>
</div>
<h3 data-i18n="subfolder"></h3> <h3 data-i18n="subfolder"></h3>
<div id="subfolderOptions"> <div id="subfolderOptions">
<input type="text" id="subfolder" data-i18n="placeholder=subfolder.placeholder"> <input type="text" id="subfolder" data-i18n="placeholder=subfolder.placeholder">

View File

@ -4,10 +4,9 @@
import ModalDialog from "../uikit/lib/modal"; import ModalDialog from "../uikit/lib/modal";
import { _, localize } from "../lib/i18n"; import { _, localize } from "../lib/i18n";
import { Prefs } from "../lib/prefs";
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
import { Item, BaseItem } from "../lib/item"; import { Item, BaseItem } from "../lib/item";
import { MASK, SUBFOLDER, SERVER } from "../lib/recentlist"; import { MASK, SUBFOLDER } from "../lib/recentlist";
import { BatchGenerator } from "../lib/batches"; import { BatchGenerator } from "../lib/batches";
import { WindowState } from "./windowstate"; import { WindowState } from "./windowstate";
import { Dropdown } from "./dropdown"; import { Dropdown } from "./dropdown";
@ -23,7 +22,6 @@ const PORT = runtime.connect(null, { name: "single" });
let ITEM: BaseItem; let ITEM: BaseItem;
let Mask: Dropdown; let Mask: Dropdown;
let Subfolder: Dropdown; let Subfolder: Dropdown;
let OServer: Dropdown;
class BatchModalDialog extends ModalDialog { class BatchModalDialog extends ModalDialog {
private readonly gen: BatchGenerator; private readonly gen: BatchGenerator;
@ -133,11 +131,6 @@ async function downloadInternal(paused: boolean) {
return displayError("error.invalidMask"); return displayError("error.invalidMask");
} }
const server = OServer.value;
if (!server) {
throw new Error("error.invalidServer");
}
const subfolder = Subfolder.value.trim(); const subfolder = Subfolder.value.trim();
validateSubFolder(subfolder); validateSubFolder(subfolder);
@ -206,9 +199,6 @@ async function downloadInternal(paused: boolean) {
maskOnce: $<HTMLInputElement>("#maskOnceCheck").checked, maskOnce: $<HTMLInputElement>("#maskOnceCheck").checked,
subfolder, subfolder,
subfolderOnce: $<HTMLInputElement>("#subfolderOnceCheck").checked, subfolderOnce: $<HTMLInputElement>("#subfolderOnceCheck").checked,
server,
serverOnce: $<HTMLInputElement>("#serverOnceCheck").checked,
cookies: $<HTMLInputElement>("#cookiesCheck").checked,
} }
}); });
return null; return null;
@ -225,15 +215,9 @@ function cancel() {
async function init() { async function init() {
await localize(document.documentElement); await localize(document.documentElement);
await Promise.all([MASK.init(), SUBFOLDER.init(), SERVER.init()]); await Promise.all([MASK.init(), SUBFOLDER.init()]);
Mask = new Dropdown("#mask", MASK.values); Mask = new Dropdown("#mask", MASK.values);
Subfolder = new Dropdown("#subfolder", SUBFOLDER.values); Subfolder = new Dropdown("#subfolder", SUBFOLDER.values);
OServer = new Dropdown("#server", SERVER.values);
Prefs.get("cookies").then(checked=>{
if ($<HTMLInputElement>("#cookiesCheck").checked != !!checked) {
$<HTMLInputElement>("#cookiesCheck").click();
}
});
} }
addEventListener("DOMContentLoaded", async function dom() { addEventListener("DOMContentLoaded", async function dom() {

View File

@ -2,7 +2,7 @@
// License: MIT // License: MIT
export function $<T extends HTMLElement>( export function $<T extends HTMLElement>(
q: string, el?: HTMLElement | DocumentFragment | Document): T { q: string, el?: HTMLElement | DocumentFragment): T {
if (!el) { if (!el) {
el = document; el = document;
} }

1721
yarn.lock

File diff suppressed because it is too large Load Diff