Compare commits
10 Commits
ebd1581742
...
3deac4cda0
Author | SHA1 | Date | |
---|---|---|---|
|
3deac4cda0 | ||
|
49a589cb87 | ||
|
3c644e615d | ||
|
c540c1fc29 | ||
|
3e31cb326b | ||
|
add5b65ff2 | ||
|
6282f54ac0 | ||
|
1af01856e1 | ||
|
3f650be613 | ||
|
0fa7738031 |
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "أداة التنزيل لبحور من الروابط، داخل متصفحك",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "ترشيح سريع",
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! – всички раздели",
|
||||
"message": "TraitorousDownloading! – всички раздели",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Запазване на изображението с DownThemAll!",
|
||||
"message": "Запазване на изображението с TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Запазване на връзката с DownThemAll!",
|
||||
"message": "Запазване на връзката с TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Запазване на медията с DownThemAll!",
|
||||
"message": "Запазване на медията с TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Запазване на избраното с DownThemAll!",
|
||||
"message": "Запазване на избраното с TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "Диспечер за масови изтегляния за вашият браузър",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Бързо филтриране",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! Диспечер",
|
||||
"message": "TraitorousDownloading! Диспечер",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"message": "До момента са добавени $DOWNLOADS$ изтегляния с DownThemAll! Като редовен потребител може да искате да обмислите дарение за подпомагане на по-нататъшното развитие. Благодаря!",
|
||||
"message": "До момента са добавени $DOWNLOADS$ изтегляния с TraitorousDownloading! Като редовен потребител може да искате да обмислите дарение за подпомагане на по-нататъшното развитие. Благодаря!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "DownThemAll! Предпочитания",
|
||||
"message": "TraitorousDownloading! Предпочитания",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "DownThemAll! бутон:",
|
||||
"message": "TraitorousDownloading! бутон:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll! избор",
|
||||
"message": "TraitorousDownloading! избор",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! – Избиране на изтегляния",
|
||||
"message": "TraitorousDownloading! – Избиране на изтегляния",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! – добавяне на връзка",
|
||||
"message": "TraitorousDownloading! – добавяне на връзка",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - Všechny záložky",
|
||||
"message": "TraitorousDownloading! - Všechny záložky",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Stáhnout obrázek pomocí DownThemAll!",
|
||||
"message": "Stáhnout obrázek pomocí TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Stáhnout odkaz pomocí DownThemAll!",
|
||||
"message": "Stáhnout odkaz pomocí TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Stáhnout média pomocí DownThemAll!",
|
||||
"message": "Stáhnout média pomocí TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Stáhnout vybrané pomocí DownThemAll!",
|
||||
"message": "Stáhnout vybrané pomocí TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "Správce stahování pro Váš prohlížeč",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Rychlé filtrování",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! Manažer",
|
||||
"message": "TraitorousDownloading! Manažer",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"message": "Již bylo stáhnuto $DOWNLOADS$ souborů pomocí DownThemAll! Jako častý uživatel byste mohl/a podpořit další vývoj darem. Děkujeme!",
|
||||
"message": "Již bylo stáhnuto $DOWNLOADS$ souborů pomocí TraitorousDownloading! 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",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "Nastavení DownThemAll!",
|
||||
"message": "Nastavení TraitorousDownloading!",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "Tlačítko DownThemAll!:",
|
||||
"message": "Tlačítko TraitorousDownloading!:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll! selektor",
|
||||
"message": "TraitorousDownloading! selektor",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - Vyberte soubory ke stažení",
|
||||
"message": "TraitorousDownloading! - Vyberte soubory ke stažení",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - Přidat odkaz",
|
||||
"message": "TraitorousDownloading! - Přidat odkaz",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - alle faner",
|
||||
"message": "TraitorousDownloading! - alle faner",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Gem billede med DownThemAll!",
|
||||
"message": "Gem billede med TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Gem link med DownThemAll!",
|
||||
"message": "Gem link med TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Gem medie med DownThemAll!",
|
||||
"message": "Gem medie med TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Gem valgte med DownThemAll!",
|
||||
"message": "Gem valgte med TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "\"The Mass Downloader\" til din browser",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Hurtigfilter",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! Manager",
|
||||
"message": "TraitorousDownloading! Manager",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"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!",
|
||||
"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!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "DownThemAll! indstillinger",
|
||||
"message": "TraitorousDownloading! indstillinger",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "DownThemAll! knap:",
|
||||
"message": "TraitorousDownloading! knap:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll! markering",
|
||||
"message": "TraitorousDownloading! markering",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - vælg dine downloads",
|
||||
"message": "TraitorousDownloading! - vælg dine downloads",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - tilføj et link",
|
||||
"message": "TraitorousDownloading! - tilføj et link",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - Alle Tabs",
|
||||
"message": "TraitorousDownloading! - Alle Tabs",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Bild mit DownThemAll! speichern",
|
||||
"message": "Bild mit TraitorousDownloading! speichern",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Link mit DownThemAll! speichern",
|
||||
"message": "Link mit TraitorousDownloading! speichern",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Medium mit DownThemAll! speichern",
|
||||
"message": "Medium mit TraitorousDownloading! speichern",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Auswahl mit DownThemAll! speichern",
|
||||
"message": "Auswahl mit TraitorousDownloading! speichern",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "Der Massen-Downloader für Deinen Browser",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Schnelles Filtern",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! Manager",
|
||||
"message": "TraitorousDownloading! Manager",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"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!",
|
||||
"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!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "DownThemAll! Einstellungen",
|
||||
"message": "TraitorousDownloading! Einstellungen",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "DownThemAll! Button:",
|
||||
"message": "TraitorousDownloading! Button:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll! Auswahl",
|
||||
"message": "TraitorousDownloading! Auswahl",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - Downloads auswählen",
|
||||
"message": "TraitorousDownloading! - Downloads auswählen",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - Link hinzufügen",
|
||||
"message": "TraitorousDownloading! - Link hinzufügen",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -305,7 +305,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "Ο Διαχειριστής Πολλαπλών Λήψεων για τον φυλλομετρητή σας.",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Γρήγορο Φιλτράρισμα",
|
||||
|
@ -253,27 +253,27 @@
|
||||
},
|
||||
"dta_regular": {
|
||||
"description": "Regular dta action; Menu text",
|
||||
"message": "DownThemAll!"
|
||||
"message": "TraitorousDownloading!"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"description": "Menu text",
|
||||
"message": "DownThemAll! - All Tabs"
|
||||
"message": "TraitorousDownloading! - All Tabs"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"description": "Menu text",
|
||||
"message": "Save Image with DownThemAll!"
|
||||
"message": "Save Image with TraitorousDownloading!"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"description": "Menu text",
|
||||
"message": "Save Link with DownThemAll!"
|
||||
"message": "Save Link with TraitorousDownloading!"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"description": "Menu text",
|
||||
"message": "Save Media with DownThemAll!"
|
||||
"message": "Save Media with TraitorousDownloading!"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"description": "Menu text",
|
||||
"message": "Save Selection with DownThemAll!"
|
||||
"message": "Save Selection with TraitorousDownloading!"
|
||||
},
|
||||
"dta_turbo": {
|
||||
"description": "OneClick! action; Menu text",
|
||||
@ -303,6 +303,10 @@
|
||||
"description": "Error message; single/select window",
|
||||
"message": "Invalid Renaming Mask"
|
||||
},
|
||||
"error_invalidServer": {
|
||||
"description": "Error message; single/select window",
|
||||
"message": "Invalid server URL"
|
||||
},
|
||||
"error_invalidReferrer": {
|
||||
"description": "Error message; single window",
|
||||
"message": "Invalid Referrer"
|
||||
@ -340,7 +344,7 @@
|
||||
"message": "Export As Text"
|
||||
},
|
||||
"extensionDescription": {
|
||||
"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",
|
||||
"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",
|
||||
"message": "The Mass Downloader for your browser"
|
||||
},
|
||||
"fastfilter_placeholder": {
|
||||
@ -475,7 +479,7 @@
|
||||
},
|
||||
"manager_title": {
|
||||
"description": "Window/tab title",
|
||||
"message": "DownThemAll! Manager"
|
||||
"message": "TraitorousDownloading! Manager"
|
||||
},
|
||||
"mask": {
|
||||
"description": "Renaming mask (short); used in e.g. select",
|
||||
@ -511,7 +515,7 @@
|
||||
},
|
||||
"nagging_message": {
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"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!",
|
||||
"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!",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
"content": "$1",
|
||||
@ -583,11 +587,11 @@
|
||||
},
|
||||
"pref_button_type": {
|
||||
"description": "label",
|
||||
"message": "DownThemAll! button:"
|
||||
"message": "TraitorousDownloading! button:"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"description": "label",
|
||||
"message": "DownThemAll! selection"
|
||||
"message": "TraitorousDownloading! selection"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
"description": "label",
|
||||
@ -633,6 +637,10 @@
|
||||
"description": "Preferences/General",
|
||||
"message": "Open the Manager tab after queuing some downloads"
|
||||
},
|
||||
"pref_cookies": {
|
||||
"description": "Preferences/General",
|
||||
"message": "Send cookies to the download server"
|
||||
},
|
||||
"pref_queue_notification": {
|
||||
"description": "Preferences/General",
|
||||
"message": "Show a notification when queuing new downloads"
|
||||
@ -695,7 +703,7 @@
|
||||
},
|
||||
"prefs_title": {
|
||||
"description": "Window/tab title; Preferences",
|
||||
"message": "DownThemAll! Preferences"
|
||||
"message": "TraitorousDownloading! Preferences"
|
||||
},
|
||||
"queue_finished": {
|
||||
"description": "Notification text",
|
||||
@ -721,7 +729,7 @@
|
||||
},
|
||||
"referrer": {
|
||||
"description": "Label for \"Referrer\"",
|
||||
"message": "Referrer"
|
||||
"message": "Referrer (Not implemented)"
|
||||
},
|
||||
"remember": {
|
||||
"description": "Checkbox text for confirmation, e.g. when removing a download in manager",
|
||||
@ -921,7 +929,7 @@
|
||||
},
|
||||
"renamer_ref": {
|
||||
"description": "Mask text; see mask button",
|
||||
"message": "Referrer"
|
||||
"message": "Referrer (Not implemented)"
|
||||
},
|
||||
"renamer_refdomain": {
|
||||
"description": "Mask text; see mask button",
|
||||
@ -1047,7 +1055,11 @@
|
||||
},
|
||||
"select_title": {
|
||||
"description": "Title of the select window",
|
||||
"message": "DownThemAll! - Select your Downloads"
|
||||
"message": "TraitorousDownloading! - Select your Downloads"
|
||||
},
|
||||
"server": {
|
||||
"description": "Downloader Server",
|
||||
"message": "Server"
|
||||
},
|
||||
"set_mask": {
|
||||
"description": "Menu text; select window",
|
||||
@ -1075,7 +1087,7 @@
|
||||
},
|
||||
"single_title": {
|
||||
"description": "Title of single window",
|
||||
"message": "DownThemAll! - Add a link"
|
||||
"message": "TraitorousDownloading! - Add a link"
|
||||
},
|
||||
"sizeB": {
|
||||
"description": "Size formatting; bytes",
|
||||
@ -1296,5 +1308,9 @@
|
||||
"useonlyonce": {
|
||||
"description": "Label for Use-Once checkboxes",
|
||||
"message": "Use Once"
|
||||
},
|
||||
"cookies": {
|
||||
"description": "Label for cookie checkboxes",
|
||||
"message": "Send cookies to server"
|
||||
}
|
||||
}
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - Todas las pestañas",
|
||||
"message": "TraitorousDownloading! - Todas las pestañas",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Guardar imagen con DownThemAll!",
|
||||
"message": "Guardar imagen con TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Guardar enlace con DownThemAll!",
|
||||
"message": "Guardar enlace con TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Guardar multimedia con DownThemAll!",
|
||||
"message": "Guardar multimedia con TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Guardar selección con DownThemAll!",
|
||||
"message": "Guardar selección con TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "El programa de descargas masivas para su navegador",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Filtro rápido",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "Gestor DownThemAll!",
|
||||
"message": "Gestor TraitorousDownloading!",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"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!",
|
||||
"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!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "Preferencias de DownThemAll!",
|
||||
"message": "Preferencias de TraitorousDownloading!",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "Botón DownThemAll!:",
|
||||
"message": "Botón TraitorousDownloading!:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "Selección DownThemAll!",
|
||||
"message": "Selección TraitorousDownloading!",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - Seleccionar sus descargas",
|
||||
"message": "TraitorousDownloading! - Seleccionar sus descargas",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - Añadir un enlace",
|
||||
"message": "TraitorousDownloading! - Añadir un enlace",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - Kõik kaardid",
|
||||
"message": "TraitorousDownloading! - Kõik kaardid",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Salvesta pilt DownThemAll!-iga",
|
||||
"message": "Salvesta pilt TraitorousDownloading!-iga",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Salvesta link DownThemAll!-iga",
|
||||
"message": "Salvesta link TraitorousDownloading!-iga",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Salvesta meedia DownThemAll!-iga",
|
||||
"message": "Salvesta meedia TraitorousDownloading!-iga",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Salvesta valik DownThemAll!-iga",
|
||||
"message": "Salvesta valik TraitorousDownloading!-iga",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "Massallalaadija sinu veebilehitsejale",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Kiirfiltreerimine",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! haldur",
|
||||
"message": "TraitorousDownloading! haldur",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"message": "Sa oled praeguseks DownThemAll!-iga lisanud $DOWNLOADS$ allalaadimist! Tavakasutajana võiksid edasise arendamise toetamiseks kaaluda annetamist. Täname!",
|
||||
"message": "Sa oled praeguseks TraitorousDownloading!-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",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "DownThemAll! eelistused",
|
||||
"message": "TraitorousDownloading! eelistused",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "DownThemAll! nupp:",
|
||||
"message": "TraitorousDownloading! nupp:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll! valik",
|
||||
"message": "TraitorousDownloading! valik",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - Vali oma allalaadimised",
|
||||
"message": "TraitorousDownloading! - Vali oma allalaadimised",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - Lingi lisamine",
|
||||
"message": "TraitorousDownloading! - Lingi lisamine",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - Tous les onglets",
|
||||
"message": "TraitorousDownloading! - Tous les onglets",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Enregistrer l'image avec DownThemAll!",
|
||||
"message": "Enregistrer l'image avec TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Enregistrer le lien avec DownThemAll!",
|
||||
"message": "Enregistrer le lien avec TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Enregistrer le média avec DownThemAll!",
|
||||
"message": "Enregistrer le média avec TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Enregistrer la sélection avec DownThemAll!",
|
||||
"message": "Enregistrer la sélection avec TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "Le gestionnaire de téléchargements pour votre navigateur",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Filtrage rapide",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! Gestionnaire",
|
||||
"message": "TraitorousDownloading! Gestionnaire",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"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!",
|
||||
"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!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "Paramètres DownThemAll!",
|
||||
"message": "Paramètres TraitorousDownloading!",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "Bouton DownThemAll!",
|
||||
"message": "Bouton TraitorousDownloading!",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "Sélection DownthemAll!",
|
||||
"message": "Sélection TraitorousDownloading!",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - Selectionner vos téléchargements",
|
||||
"message": "TraitorousDownloading! - Selectionner vos téléchargements",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - Ajouter un lien",
|
||||
"message": "TraitorousDownloading! - Ajouter un lien",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - Összes lap",
|
||||
"message": "TraitorousDownloading! - Összes lap",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Kép mentése a DownThemAll-al!",
|
||||
"message": "Kép mentése a TraitorousDownloading-al!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Hivatkozás mentése DownThemAll-al",
|
||||
"message": "Hivatkozás mentése TraitorousDownloading-al",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Média mentése DownThemAll-al",
|
||||
"message": "Média mentése TraitorousDownloading-al",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Kiválasztás mentése DownThemAll-al",
|
||||
"message": "Kiválasztás mentése TraitorousDownloading-al",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "A tömeges letöltő a böngésződ számára",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Gyors szűrés",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! kezelő",
|
||||
"message": "TraitorousDownloading! kezelő",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"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!",
|
||||
"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!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "DownThemAll! beállításai",
|
||||
"message": "TraitorousDownloading! beállításai",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "DownThemAll gomb:",
|
||||
"message": "TraitorousDownloading gomb:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll választás",
|
||||
"message": "TraitorousDownloading választás",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - Válaszd ki a letöltéseidet",
|
||||
"message": "TraitorousDownloading! - Válaszd ki a letöltéseidet",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - Adj hozzá egy hivatkozást",
|
||||
"message": "TraitorousDownloading! - Adj hozzá egy hivatkozást",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -216,23 +216,23 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll - Semua Tab",
|
||||
"message": "TraitorousDownloading - Semua Tab",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Simpan Gambar menggunakan DownThemAll!",
|
||||
"message": "Simpan Gambar menggunakan TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Simpan Tautan menggunakan DownThemAll!",
|
||||
"message": "Simpan Tautan menggunakan TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Simpan Media menggunakan DownThemAll!",
|
||||
"message": "Simpan Media menggunakan TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Simpan Pilihan menggunakan DownThemAll!",
|
||||
"message": "Simpan Pilihan menggunakan TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo_all": {
|
||||
@ -297,7 +297,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "Pengunduh Masal untuk browser anda",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Penyaringan Cepat",
|
||||
@ -398,7 +398,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "Pengelola DownThemAll!",
|
||||
"message": "Pengelola TraitorousDownloading!",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask_default": {
|
||||
@ -426,7 +426,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"message": "Sejauh ini Anda telah menambahkan $DOWNLOADS$ unduhan menggunakan DownThemAll! Sebagai penggunan setia, silakan berdonasi untuk mendukung pengembangan lebih lanjut. Terima Kasih!",
|
||||
"message": "Sejauh ini Anda telah menambahkan $DOWNLOADS$ unduhan menggunakan TraitorousDownloading! Sebagai penggunan setia, silakan berdonasi untuk mendukung pengembangan lebih lanjut. Terima Kasih!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -498,7 +498,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "Preferensi DownThemAll!",
|
||||
"message": "Preferensi TraitorousDownloading!",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -506,11 +506,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "Tombol DownThemAll!:",
|
||||
"message": "Tombol TraitorousDownloading!:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "Pilihan DownThemAll!",
|
||||
"message": "Pilihan TraitorousDownloading!",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -926,7 +926,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - Pilih Unduhan Anda",
|
||||
"message": "TraitorousDownloading! - Pilih Unduhan Anda",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -970,7 +970,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - Tambah tautan",
|
||||
"message": "TraitorousDownloading! - Tambah tautan",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizes_huge": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - Tutte le schede",
|
||||
"message": "TraitorousDownloading! - Tutte le schede",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Salva immagine con DownThemAll!",
|
||||
"message": "Salva immagine con TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Salva link con DownThemAll!",
|
||||
"message": "Salva link con TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Salva media con DownThemAll!",
|
||||
"message": "Salva media con TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Salva selezione con DownThemAll!",
|
||||
"message": "Salva selezione con TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "Il download manager di massa per il tuo browser",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Filtro Rapido",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! Manager",
|
||||
"message": "TraitorousDownloading! Manager",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"message": "Hai aggiunto $DOWNLOADS$ download a DownThemAll! Come utente abituale potresti considerare una donazione per supportare lo sviluppo. Grazie!",
|
||||
"message": "Hai aggiunto $DOWNLOADS$ download a TraitorousDownloading! Come utente abituale potresti considerare una donazione per supportare lo sviluppo. Grazie!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "Preferenze di DownThemAll!",
|
||||
"message": "Preferenze di TraitorousDownloading!",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "Pulsante DownThemAll!:",
|
||||
"message": "Pulsante TraitorousDownloading!:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "Selezione DownThemAll!",
|
||||
"message": "Selezione TraitorousDownloading!",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1010,7 +1010,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - Seleziona i tuoi download",
|
||||
"message": "TraitorousDownloading! - Seleziona i tuoi download",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1054,7 +1054,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - Aggiungi un link",
|
||||
"message": "TraitorousDownloading! - Aggiungi un link",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - 全てのタブ",
|
||||
"message": "TraitorousDownloading! - 全てのタブ",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "画像をDownThemAll! で保存する",
|
||||
"message": "画像をTraitorousDownloading! で保存する",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "リンク先をDownThemAll! で保存する",
|
||||
"message": "リンク先をTraitorousDownloading! で保存する",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "メディアをDownThemAll! で保存する",
|
||||
"message": "メディアをTraitorousDownloading! で保存する",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "選択項目をDownThemAll! で保存する",
|
||||
"message": "選択項目をTraitorousDownloading! で保存する",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "ブラウザ用マスダウンローダー",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "高速フィルタリング",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! マネージャ",
|
||||
"message": "TraitorousDownloading! マネージャ",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"message": "これまでDownThemAllで$DOWNLOADS$ダウンロードを追加しました! 通常のユーザーとして、さらなる開発を支援するために寄付を検討することができます。 皆様のご協力、心よりお待ち致しております。",
|
||||
"message": "これまでTraitorousDownloadingで$DOWNLOADS$ダウンロードを追加しました! 通常のユーザーとして、さらなる開発を支援するために寄付を検討することができます。 皆様のご協力、心よりお待ち致しております。",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "DownThemAll! 設定",
|
||||
"message": "TraitorousDownloading! 設定",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,7 +574,7 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "DownThemAll! アイコンクリック時:",
|
||||
"message": "TraitorousDownloading! アイコンクリック時:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - ダウンロードの選択",
|
||||
"message": "TraitorousDownloading! - ダウンロードの選択",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - リンクを追加",
|
||||
"message": "TraitorousDownloading! - リンクを追加",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - 모든 탭",
|
||||
"message": "TraitorousDownloading! - 모든 탭",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "이미지를 DownThemAll!로 저장",
|
||||
"message": "이미지를 TraitorousDownloading!로 저장",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "링크를 DownThemAll!로 저장",
|
||||
"message": "링크를 TraitorousDownloading!로 저장",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "미디어를 DownThemAll!로 저장",
|
||||
"message": "미디어를 TraitorousDownloading!로 저장",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "선택영역을 DownThemAll!로 저장",
|
||||
"message": "선택영역을 TraitorousDownloading!로 저장",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "브라우저용 대량 다운로더",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "빠른 필터링",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! 관리자",
|
||||
"message": "TraitorousDownloading! 관리자",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"message": "지금까지 DownThemAll!로 $DOWNLOADS$ 다운로드를 추가하셨습니다. 일반 사용자로서 추가 개발을 지원하기 위해 기부를 고려할 수 있습니다. 감사합니다!",
|
||||
"message": "지금까지 TraitorousDownloading!로 $DOWNLOADS$ 다운로드를 추가하셨습니다. 일반 사용자로서 추가 개발을 지원하기 위해 기부를 고려할 수 있습니다. 감사합니다!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "DownThemAll! 설정",
|
||||
"message": "TraitorousDownloading! 설정",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "DownThemAll! 버튼:",
|
||||
"message": "TraitorousDownloading! 버튼:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll! 선택",
|
||||
"message": "TraitorousDownloading! 선택",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1010,7 +1010,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - 다운로드 선택",
|
||||
"message": "TraitorousDownloading! - 다운로드 선택",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1054,7 +1054,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - 링크 추가",
|
||||
"message": "TraitorousDownloading! - 링크 추가",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - Visoms kortelėms",
|
||||
"message": "TraitorousDownloading! - Visoms kortelėms",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Išsaugoti vaizdą su DownThemAll!",
|
||||
"message": "Išsaugoti vaizdą su TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Išsaugoti nuorodą su DownThemAll!",
|
||||
"message": "Išsaugoti nuorodą su TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Išsaugoti media su DownThemAll!",
|
||||
"message": "Išsaugoti media su TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Išsaugoti pažymėtą su DownThemAll!",
|
||||
"message": "Išsaugoti pažymėtą su TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "Masinio parsisiuntimo programa jūsų naršyklėje",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Greitas filtravimas",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! menedžeris",
|
||||
"message": "TraitorousDownloading! menedžeris",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"message": "Iki šiol, naudodami DownThemAll!, pridėjote $DOWNLOADS$ parsisiuntimų! Kaip paprastas vartotojas, galbūt norėsite apsvarstyti galimybę paaukoti tolimesnei plėtrai. Ačiū!",
|
||||
"message": "Iki šiol, naudodami TraitorousDownloading!, 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",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "DownThemAll! nuostatos",
|
||||
"message": "TraitorousDownloading! nuostatos",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "DownThemAll! mygtukas:",
|
||||
"message": "TraitorousDownloading! mygtukas:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll! pasirinkimas",
|
||||
"message": "TraitorousDownloading! pasirinkimas",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - Pasirinkite parsisiuntimus",
|
||||
"message": "TraitorousDownloading! - Pasirinkite parsisiuntimus",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - Pridėti nuorodą",
|
||||
"message": "TraitorousDownloading! - Pridėti nuorodą",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - Alle Tabbladen",
|
||||
"message": "TraitorousDownloading! - Alle Tabbladen",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Afbeelding opslaan met DownThemAll!",
|
||||
"message": "Afbeelding opslaan met TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Link opslaan met DownThemAll!",
|
||||
"message": "Link opslaan met TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Media opslaan met DownThemAll!",
|
||||
"message": "Media opslaan met TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Selectie opslaan met DownThemAll!",
|
||||
"message": "Selectie opslaan met TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "De bulkdownloader voor uw browser",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Snel filteren",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! beheerder",
|
||||
"message": "TraitorousDownloading! beheerder",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"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!",
|
||||
"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!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "DownThemAll! voorkeuren",
|
||||
"message": "TraitorousDownloading! voorkeuren",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "DownThemAll! knop:",
|
||||
"message": "TraitorousDownloading! knop:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll! selectie",
|
||||
"message": "TraitorousDownloading! selectie",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - Selecteer uw Downloads",
|
||||
"message": "TraitorousDownloading! - Selecteer uw Downloads",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - Link toevoegen",
|
||||
"message": "TraitorousDownloading! - Link toevoegen",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - Wszystkie zakładki",
|
||||
"message": "TraitorousDownloading! - Wszystkie zakładki",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Zapisz Obraz z DownThemAll!",
|
||||
"message": "Zapisz Obraz z TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Zapisz Link z DownThemAll!",
|
||||
"message": "Zapisz Link z TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Zapisz Multimedia z DownThemAll!",
|
||||
"message": "Zapisz Multimedia z TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Zapisz wybór z DownThemAll!",
|
||||
"message": "Zapisz wybór z TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "Narzędzie do zbiorowego pobierania dla Twojej przeglądarki",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Szybkie filtrowanie",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "Menedżer DownThemAll!",
|
||||
"message": "Menedżer TraitorousDownloading!",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"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!",
|
||||
"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!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "Ustawienia DownThemAll!",
|
||||
"message": "Ustawienia TraitorousDownloading!",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "Przycisk DownThemAll!:",
|
||||
"message": "Przycisk TraitorousDownloading!:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "Wybór DownThemAll!:",
|
||||
"message": "Wybór TraitorousDownloading!:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - Wybierz swoje pobierania",
|
||||
"message": "TraitorousDownloading! - Wybierz swoje pobierania",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - Dodaj link",
|
||||
"message": "TraitorousDownloading! - Dodaj link",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - Todas as abas",
|
||||
"message": "TraitorousDownloading! - Todas as abas",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Salvar Imagem com o DownThemAll!",
|
||||
"message": "Salvar Imagem com o TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Salvar Link com o DownThemAll!",
|
||||
"message": "Salvar Link com o TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Salvar Mídia com o DownThemAll!",
|
||||
"message": "Salvar Mídia com o TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Salvar Seleção com o DownThemAll!",
|
||||
"message": "Salvar Seleção com o TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "A ferramenta de download em massa para o seu navegador",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Filtragem rápida",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "Gerenciador do DownThemAll!",
|
||||
"message": "Gerenciador do TraitorousDownloading!",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"message": "Você já adicionou $DOWNLOADS$ downloads com DownThemAll! Como usuário regular, você pode considerar uma doação para apoiar desenvolvimento adicional. Obrigado!",
|
||||
"message": "Você já adicionou $DOWNLOADS$ downloads com TraitorousDownloading! 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",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "Preferências do DownThemAll!",
|
||||
"message": "Preferências do TraitorousDownloading!",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "Botão DownThemAll!",
|
||||
"message": "Botão TraitorousDownloading!",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "Seleção do DownThemAll!",
|
||||
"message": "Seleção do TraitorousDownloading!",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - Selecione seus Downloads",
|
||||
"message": "TraitorousDownloading! - Selecione seus Downloads",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - Adicone um link",
|
||||
"message": "TraitorousDownloading! - Adicone um link",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - Все вкладки",
|
||||
"message": "TraitorousDownloading! - Все вкладки",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Закачать изображение через DownThemAll!",
|
||||
"message": "Закачать изображение через TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Закачать ссылку через DownThemAll!",
|
||||
"message": "Закачать ссылку через TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Закачать медиа через DownThemAll!",
|
||||
"message": "Закачать медиа через TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Закачать выделенное через DownThemAll!",
|
||||
"message": "Закачать выделенное через TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "Универсальная качалка для вашего браузера",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Быстрый фильтр",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! Менеджер",
|
||||
"message": "TraitorousDownloading! Менеджер",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"message": "Добавлено $DOWNLOADS$ закачек через DownThemAll! на текущий момент! Как постоянный пользователь подумайте над тем чтобы поддержать дальнейшую разработку. Спасибо!",
|
||||
"message": "Добавлено $DOWNLOADS$ закачек через TraitorousDownloading! на текущий момент! Как постоянный пользователь подумайте над тем чтобы поддержать дальнейшую разработку. Спасибо!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "Настройки DownThemAll!",
|
||||
"message": "Настройки TraitorousDownloading!",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "Кнопка DownThemAll!",
|
||||
"message": "Кнопка TraitorousDownloading!",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll! выделенного",
|
||||
"message": "TraitorousDownloading! выделенного",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - Выбрать ваши закачки",
|
||||
"message": "TraitorousDownloading! - Выбрать ваши закачки",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - Добавить ссылку",
|
||||
"message": "TraitorousDownloading! - Добавить ссылку",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - Alla flikar",
|
||||
"message": "TraitorousDownloading! - Alla flikar",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "Spara bild med DownThemAll!",
|
||||
"message": "Spara bild med TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "Spara länk med DownThemAll!",
|
||||
"message": "Spara länk med TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "Spara media med DownThemAll!",
|
||||
"message": "Spara media med TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "Spara val med DownThemAll!",
|
||||
"message": "Spara val med TraitorousDownloading!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -313,7 +313,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "Bulkhämtaren för din webbläsare",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Snabb filtrering",
|
||||
@ -442,7 +442,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! Hanterare",
|
||||
"message": "TraitorousDownloading! Hanterare",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"media": {
|
||||
@ -470,7 +470,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"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!",
|
||||
"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!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -550,7 +550,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "DownThemAll! Inställningar",
|
||||
"message": "TraitorousDownloading! Inställningar",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -558,11 +558,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "DownThemAll! knapp:",
|
||||
"message": "TraitorousDownloading! knapp:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll! urval",
|
||||
"message": "TraitorousDownloading! urval",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -966,7 +966,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - Välj dina hämtningar",
|
||||
"message": "TraitorousDownloading! - Välj dina hämtningar",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -994,7 +994,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - Lägg till en länk",
|
||||
"message": "TraitorousDownloading! - Lägg till en länk",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - Tüm Sekmeler",
|
||||
"message": "TraitorousDownloading! - Tüm Sekmeler",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "DownThemAll ile Görüntüyü Kaydet!",
|
||||
"message": "TraitorousDownloading ile Görüntüyü Kaydet!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "DownThemAll ile Bağlantıyı Kaydet!",
|
||||
"message": "TraitorousDownloading ile Bağlantıyı Kaydet!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "DownThemAll ile Medyayı Kaydet!",
|
||||
"message": "TraitorousDownloading ile Medyayı Kaydet!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "DownThemAll ile Seçimi Kaydet!",
|
||||
"message": "TraitorousDownloading ile Seçimi Kaydet!",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "Tarayıcınız için Toplu İndirme",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "Hızlı Filtreleme",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! Yöneticisi",
|
||||
"message": "TraitorousDownloading! Yöneticisi",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"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!",
|
||||
"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!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "DownThemAll! Tercihleri",
|
||||
"message": "TraitorousDownloading! Tercihleri",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "DownThemAll! düğmesi:",
|
||||
"message": "TraitorousDownloading! düğmesi:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll! seçimi",
|
||||
"message": "TraitorousDownloading! seçimi",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - İndirilenlerinizi seçin",
|
||||
"message": "TraitorousDownloading! - İndirilenlerinizi seçin",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - Bir bağlantı ekle",
|
||||
"message": "TraitorousDownloading! - Bir bağlantı ekle",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll! - 全部标签页",
|
||||
"message": "TraitorousDownloading! - 全部标签页",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "用 DownThemAll! 保存图片",
|
||||
"message": "用 TraitorousDownloading! 保存图片",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "用 DownThemAll! 保存链接",
|
||||
"message": "用 TraitorousDownloading! 保存链接",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "用 DownThemAll! 保存媒体",
|
||||
"message": "用 TraitorousDownloading! 保存媒体",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "用 DownThemAll! 保存选中项",
|
||||
"message": "用 TraitorousDownloading! 保存选中项",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "适用您浏览器的批量下载工具",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "快速筛选",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll! 管理器",
|
||||
"message": "TraitorousDownloading! 管理器",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"message": "您使用 DownThemAll! 至今已经添加了 $DOWNLOADS$ 个下载。作为一名普通用户,您可以考虑捐助来支持一下开发。多谢!",
|
||||
"message": "您使用 TraitorousDownloading! 至今已经添加了 $DOWNLOADS$ 个下载。作为一名普通用户,您可以考虑捐助来支持一下开发。多谢!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "DownThemAll! 首选项",
|
||||
"message": "TraitorousDownloading! 首选项",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "DownThemAll! 按钮:",
|
||||
"message": "TraitorousDownloading! 按钮:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll! 选择框",
|
||||
"message": "TraitorousDownloading! 选择框",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll! - 选择您要下载的内容",
|
||||
"message": "TraitorousDownloading! - 选择您要下载的内容",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll! - 添加链接",
|
||||
"message": "TraitorousDownloading! - 添加链接",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
@ -232,27 +232,27 @@
|
||||
"description": "Download (verb/action); e.g. in single and select buttons"
|
||||
},
|
||||
"dta_regular": {
|
||||
"message": "DownThemAll!",
|
||||
"message": "TraitorousDownloading!",
|
||||
"description": "Regular dta action; Menu text"
|
||||
},
|
||||
"dta_regular_all": {
|
||||
"message": "DownThemAll!- 全部分頁",
|
||||
"message": "TraitorousDownloading!- 全部分頁",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_image": {
|
||||
"message": "以 DownThemAll! 儲存圖片",
|
||||
"message": "以 TraitorousDownloading! 儲存圖片",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_link": {
|
||||
"message": "以 DownThemAll! 下載連結",
|
||||
"message": "以 TraitorousDownloading! 下載連結",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_media": {
|
||||
"message": "以 DownThemAll! 儲存媒體檔案",
|
||||
"message": "以 TraitorousDownloading! 儲存媒體檔案",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_regular_selection": {
|
||||
"message": "以 DownThemAll! 儲存選取項目",
|
||||
"message": "以 TraitorousDownloading! 儲存選取項目",
|
||||
"description": "Menu text"
|
||||
},
|
||||
"dta_turbo": {
|
||||
@ -321,7 +321,7 @@
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "為你瀏覽器而生的大量下載工具",
|
||||
"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"
|
||||
"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"
|
||||
},
|
||||
"fastfiltering": {
|
||||
"message": "快速篩選",
|
||||
@ -450,7 +450,7 @@
|
||||
}
|
||||
},
|
||||
"manager_title": {
|
||||
"message": "DownThemAll!下載管理",
|
||||
"message": "TraitorousDownloading!下載管理",
|
||||
"description": "Window/tab title"
|
||||
},
|
||||
"mask": {
|
||||
@ -486,7 +486,7 @@
|
||||
"description": "Action for moving a download up"
|
||||
},
|
||||
"nagging_message": {
|
||||
"message": "目前已透過DownThemAll! 加入 $DOWNLOADS$ 個下載您可以贊助我們支持更進一步的開發謝謝!",
|
||||
"message": "目前已透過TraitorousDownloading! 加入 $DOWNLOADS$ 個下載您可以贊助我們支持更進一步的開發謝謝!",
|
||||
"description": "Donation nagging message; displayed as a notification bar in manager",
|
||||
"placeholders": {
|
||||
"downloads": {
|
||||
@ -566,7 +566,7 @@
|
||||
"description": "Menu text; Preferences"
|
||||
},
|
||||
"prefs_title": {
|
||||
"message": "DownThemAll!偏好設定",
|
||||
"message": "TraitorousDownloading!偏好設定",
|
||||
"description": "Window/tab title; Preferences"
|
||||
},
|
||||
"pref_add_paused": {
|
||||
@ -574,11 +574,11 @@
|
||||
"description": "Preferences/General"
|
||||
},
|
||||
"pref_button_type": {
|
||||
"message": "DownThemAll! 按鈕:",
|
||||
"message": "TraitorousDownloading! 按鈕:",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_dta": {
|
||||
"message": "DownThemAll! 選取",
|
||||
"message": "TraitorousDownloading! 選取",
|
||||
"description": "label"
|
||||
},
|
||||
"pref_button_type_manager": {
|
||||
@ -1026,7 +1026,7 @@
|
||||
"description": "Menu text; select context"
|
||||
},
|
||||
"select_title": {
|
||||
"message": "DownThemAll!- 選擇下載",
|
||||
"message": "TraitorousDownloading!- 選擇下載",
|
||||
"description": "Title of the select window"
|
||||
},
|
||||
"SERVER_BAD_CONTENT": {
|
||||
@ -1070,7 +1070,7 @@
|
||||
"description": "Header text; single window"
|
||||
},
|
||||
"single_title": {
|
||||
"message": "DownThemAll!- 新增連結",
|
||||
"message": "TraitorousDownloading!- 新增連結",
|
||||
"description": "Title of single window"
|
||||
},
|
||||
"sizeB": {
|
||||
|
16
lib/api.ts
@ -11,7 +11,7 @@ import { getManager } from "./manager/man";
|
||||
import { select } from "./select";
|
||||
import { single } from "./single";
|
||||
import { Notification } from "./notifications";
|
||||
import { MASK, FASTFILTER, SUBFOLDER } from "./recentlist";
|
||||
import { MASK, FASTFILTER, SUBFOLDER, SERVER } from "./recentlist";
|
||||
import { openManager } from "./windowutils";
|
||||
import { _ } from "./i18n";
|
||||
|
||||
@ -20,7 +20,9 @@ const MAX_BATCH = 10000;
|
||||
export interface QueueOptions {
|
||||
mask?: string;
|
||||
subfolder?: string;
|
||||
server?: string;
|
||||
paused?: boolean;
|
||||
cookies?: boolean;
|
||||
}
|
||||
|
||||
export const API = new class APIImpl {
|
||||
@ -32,8 +34,10 @@ export const API = new class APIImpl {
|
||||
await Promise.all([MASK.init(), SUBFOLDER.init()]);
|
||||
const {mask = MASK.current} = options;
|
||||
const {subfolder = SUBFOLDER.current} = options;
|
||||
const {server = SERVER.current} = options;
|
||||
|
||||
const {paused = false} = options;
|
||||
const {cookies = false} = options;
|
||||
const defaults: any = {
|
||||
_idx: 0,
|
||||
get idx() {
|
||||
@ -49,8 +53,10 @@ export const API = new class APIImpl {
|
||||
postData: null,
|
||||
mask,
|
||||
subfolder,
|
||||
server,
|
||||
date: Date.now(),
|
||||
paused
|
||||
paused,
|
||||
cookies,
|
||||
};
|
||||
let currentBatch = await Prefs.get("currentBatch", 0);
|
||||
const initialBatch = currentBatch;
|
||||
@ -80,7 +86,7 @@ export const API = new class APIImpl {
|
||||
new Notification(null, _("queued-downloads", items.length));
|
||||
}
|
||||
}
|
||||
if (await Prefs.get("open-manager-on-queue")) {
|
||||
if (false && await Prefs.get("open-manager-on-queue")) {
|
||||
await openManager(false);
|
||||
}
|
||||
}
|
||||
@ -124,6 +130,10 @@ export const API = new class APIImpl {
|
||||
await SUBFOLDER.init();
|
||||
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") {
|
||||
await Prefs.set("last-type", options.type);
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ import {
|
||||
} from "./browser";
|
||||
import { Bus } from "./bus";
|
||||
import { filterInSitu } from "./util";
|
||||
import { DB } from "./db";
|
||||
|
||||
|
||||
const menus = typeof (_menus) !== "undefined" && _menus || _cmenus;
|
||||
@ -106,19 +107,19 @@ class Handler {
|
||||
|
||||
async performSelection(options: SelectionOptions) {
|
||||
try {
|
||||
const toptions: any = {
|
||||
const tabOptions: any = {
|
||||
currentWindow: true,
|
||||
discarded: false,
|
||||
};
|
||||
if (!CHROME) {
|
||||
toptions.hidden = false;
|
||||
tabOptions.hidden = false;
|
||||
}
|
||||
const selectedTabs = options.allTabs ?
|
||||
await tabs.query(toptions) as any[] :
|
||||
await tabs.query(tabOptions) as any[] :
|
||||
[options.tab];
|
||||
|
||||
const textLinks = await Prefs.get("text-links", true);
|
||||
const goptions = {
|
||||
const gatherOptions = {
|
||||
type: "DTA:gather",
|
||||
selectionOnly: options.selectionOnly,
|
||||
textLinks,
|
||||
@ -127,7 +128,7 @@ class Handler {
|
||||
};
|
||||
|
||||
const results = await Promise.all(selectedTabs.
|
||||
map((tab: any) => runContentJob(tab, GATHER, goptions)));
|
||||
map((tab: any) => runContentJob(tab, GATHER, gatherOptions)));
|
||||
|
||||
await this.processResults(options.turbo, results.flat());
|
||||
}
|
||||
@ -153,14 +154,14 @@ runtime.onInstalled.addListener(({reason, previousVersion}: OnInstalled) => {
|
||||
const major = getMajor(version);
|
||||
const prevMajor = getMajor(previousVersion);
|
||||
if (reason === "update" && major !== prevMajor) {
|
||||
tabs.create({
|
||||
url: `https://about.downthemall.org/changelog/?cur=${major}&prev=${prevMajor}`,
|
||||
});
|
||||
// tabs.create({
|
||||
// url: `https://about.downthemall.org/changelog/?cur=${major}&prev=${prevMajor}`,
|
||||
// });
|
||||
}
|
||||
else if (reason === "install") {
|
||||
tabs.create({
|
||||
url: `https://about.downthemall.org/4.0/?cur=${major}`,
|
||||
});
|
||||
// tabs.create({
|
||||
// url: `https://about.downthemall.org/4.0/?cur=${major}`,
|
||||
// });
|
||||
}
|
||||
});
|
||||
|
||||
@ -170,7 +171,7 @@ locale.then(() => {
|
||||
super();
|
||||
this.onClicked = this.onClicked.bind(this);
|
||||
const alls = new Map<string, string[]>();
|
||||
const mcreate = (options: any) => {
|
||||
const menuCreate = (options: any) => {
|
||||
if (CHROME) {
|
||||
delete options.icons;
|
||||
options.contexts = options.contexts.
|
||||
@ -184,7 +185,7 @@ locale.then(() => {
|
||||
}
|
||||
menus.create(options);
|
||||
};
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "DTARegularLink",
|
||||
contexts: ["link"],
|
||||
icons: {
|
||||
@ -193,7 +194,7 @@ locale.then(() => {
|
||||
},
|
||||
title: _("dta.regular.link"),
|
||||
});
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "DTATurboLink",
|
||||
contexts: ["link"],
|
||||
icons: {
|
||||
@ -202,7 +203,7 @@ locale.then(() => {
|
||||
},
|
||||
title: _("dta.turbo.link"),
|
||||
});
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "DTARegularImage",
|
||||
contexts: ["image"],
|
||||
icons: {
|
||||
@ -211,7 +212,7 @@ locale.then(() => {
|
||||
},
|
||||
title: _("dta.regular.image"),
|
||||
});
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "DTATurboImage",
|
||||
contexts: ["image"],
|
||||
icons: {
|
||||
@ -220,7 +221,7 @@ locale.then(() => {
|
||||
},
|
||||
title: _("dta.turbo.image"),
|
||||
});
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "DTARegularMedia",
|
||||
contexts: ["video", "audio"],
|
||||
icons: {
|
||||
@ -229,7 +230,7 @@ locale.then(() => {
|
||||
},
|
||||
title: _("dta.regular.media"),
|
||||
});
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "DTATurboMedia",
|
||||
contexts: ["video", "audio"],
|
||||
icons: {
|
||||
@ -238,7 +239,7 @@ locale.then(() => {
|
||||
},
|
||||
title: _("dta.turbo.media"),
|
||||
});
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "DTARegularSelection",
|
||||
contexts: ["selection"],
|
||||
icons: {
|
||||
@ -247,7 +248,7 @@ locale.then(() => {
|
||||
},
|
||||
title: _("dta.regular.selection"),
|
||||
});
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "DTATurboSelection",
|
||||
contexts: ["selection"],
|
||||
icons: {
|
||||
@ -256,7 +257,7 @@ locale.then(() => {
|
||||
},
|
||||
title: _("dta.turbo.selection"),
|
||||
});
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "DTARegular",
|
||||
contexts: ["all", "browser_action", "tools_menu"],
|
||||
icons: {
|
||||
@ -265,7 +266,7 @@ locale.then(() => {
|
||||
},
|
||||
title: _("dta.regular"),
|
||||
});
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "DTATurbo",
|
||||
contexts: ["all", "browser_action", "tools_menu"],
|
||||
icons: {
|
||||
@ -274,12 +275,12 @@ locale.then(() => {
|
||||
},
|
||||
title: _("dta.turbo"),
|
||||
});
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "sep-1",
|
||||
contexts: ["all", "browser_action", "tools_menu"],
|
||||
type: "separator"
|
||||
});
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "DTARegularAll",
|
||||
contexts: ["all", "browser_action", "tools_menu"],
|
||||
icons: {
|
||||
@ -288,7 +289,7 @@ locale.then(() => {
|
||||
},
|
||||
title: _("dta-regular-all"),
|
||||
});
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "DTATurboAll",
|
||||
contexts: ["all", "browser_action", "tools_menu"],
|
||||
icons: {
|
||||
@ -300,12 +301,12 @@ locale.then(() => {
|
||||
const sep2ctx = menus.ACTION_MENU_TOP_LEVEL_LIMIT === 6 ?
|
||||
["all", "tools_menu"] :
|
||||
["all", "browser_action", "tools_menu"];
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "sep-2",
|
||||
contexts: sep2ctx,
|
||||
type: "separator"
|
||||
});
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "DTAAdd",
|
||||
contexts: ["all", "browser_action", "tools_menu"],
|
||||
icons: {
|
||||
@ -316,12 +317,12 @@ locale.then(() => {
|
||||
},
|
||||
title: _("add-download"),
|
||||
});
|
||||
mcreate({
|
||||
menuCreate({
|
||||
id: "sep-3",
|
||||
contexts: ["all", "browser_action", "tools_menu"],
|
||||
type: "separator"
|
||||
});
|
||||
mcreate({
|
||||
/* menuCreate({
|
||||
id: "DTAManager",
|
||||
contexts: ["all", "browser_action", "tools_menu"],
|
||||
icons: {
|
||||
@ -329,8 +330,8 @@ locale.then(() => {
|
||||
32: "/style/button-manager@2x.png",
|
||||
},
|
||||
title: _("manager.short"),
|
||||
});
|
||||
mcreate({
|
||||
});*/
|
||||
menuCreate({
|
||||
id: "DTAPrefs",
|
||||
contexts: ["all", "browser_action", "tools_menu"],
|
||||
icons: {
|
||||
@ -662,6 +663,13 @@ locale.then(() => {
|
||||
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 filters();
|
||||
await getManager();
|
||||
|
132
lib/db.ts
@ -1,17 +1,25 @@
|
||||
"use strict";
|
||||
// License: MIT
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import { BaseItem } from "./item";
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import { Download } from "./manager/download";
|
||||
import { RUNNING, QUEUED, RETRYING } from "./manager/state";
|
||||
|
||||
// License: MIT
|
||||
import { storage } from "./browser";
|
||||
import { sort } from "./sorting";
|
||||
|
||||
const VERSION = 1;
|
||||
const STORE = "queue";
|
||||
|
||||
export const DB = new class DB {
|
||||
interface Database {
|
||||
init(): Promise<void>;
|
||||
saveItems(items: Download[]): Promise<unknown>;
|
||||
deleteItems(items: any[]): Promise<void>;
|
||||
getAll(): Promise<BaseItem[]>;
|
||||
}
|
||||
|
||||
export class IDB implements Database {
|
||||
private db?: IDBDatabase;
|
||||
|
||||
constructor() {
|
||||
@ -106,7 +114,7 @@ export const DB = new class DB {
|
||||
return await new Promise(this.saveItemsInternal.bind(this, items));
|
||||
}
|
||||
|
||||
deleteItemsInternal(items: any[], resolve: Function, reject: Function) {
|
||||
deleteItemsInternal(items: any[], resolve: () => void, reject: Function) {
|
||||
if (!items || !items.length || !this.db) {
|
||||
resolve();
|
||||
return;
|
||||
@ -139,4 +147,120 @@ export const DB = new class DB {
|
||||
await this.init();
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}();
|
||||
|
41
lib/i18n.ts
@ -4,7 +4,7 @@
|
||||
import {memoize} from "./memoize";
|
||||
import langs from "../_locales/all.json";
|
||||
import { sorted, naturalCaseCompare } from "./sorting";
|
||||
|
||||
import lf from "localforage";
|
||||
|
||||
export const ALL_LANGS = Object.freeze(new Map<string, string>(
|
||||
sorted(Object.entries(langs), e => {
|
||||
@ -40,11 +40,11 @@ class Entry {
|
||||
this.message = entry.message.replace(/\$[A-Z0-9]+\$/g, (r: string) => {
|
||||
hit = true;
|
||||
const id = r.substr(1, r.length - 2).toLocaleLowerCase();
|
||||
const pholder = entry.placeholders[id];
|
||||
if (!pholder || !pholder.content) {
|
||||
const placeholder = entry.placeholders[id];
|
||||
if (!placeholder || !placeholder.content) {
|
||||
throw new Error(`Invalid placeholder: ${id}`);
|
||||
}
|
||||
return `${pholder.content}$`;
|
||||
return `${placeholder.content}$`;
|
||||
});
|
||||
if (!hit) {
|
||||
throw new Error("Not entry-able");
|
||||
@ -123,14 +123,17 @@ async function fetchLanguage(code: string) {
|
||||
}
|
||||
|
||||
|
||||
function loadCached() {
|
||||
if (document.location.pathname.includes("/windows/")) {
|
||||
const cached = localStorage.getItem(CACHE_KEY);
|
||||
if (cached) {
|
||||
return JSON.parse(cached) as any[];
|
||||
}
|
||||
}
|
||||
async function loadCached(): Promise<any> {
|
||||
const cached = await lf.getItem<string>(CACHE_KEY);
|
||||
if (!cached) {
|
||||
return null;
|
||||
}
|
||||
const parsed = JSON.parse(cached);
|
||||
if (!Array.isArray(parsed) || !parsed[0].CRASH || !parsed[0].CRASH.message) {
|
||||
console.warn("rejecting cached locales", parsed);
|
||||
return null;
|
||||
}
|
||||
return parsed;
|
||||
}
|
||||
|
||||
async function loadRawLocales() {
|
||||
@ -187,16 +190,16 @@ async function load(): Promise<Localization> {
|
||||
}
|
||||
CURRENT = currentLang;
|
||||
// en is the base locale
|
||||
let valid = loadCached();
|
||||
let valid = await loadCached();
|
||||
if (!valid) {
|
||||
valid = await loadRawLocales();
|
||||
localStorage.setItem(CACHE_KEY, JSON.stringify(valid));
|
||||
await lf.setItem(CACHE_KEY, JSON.stringify(valid));
|
||||
}
|
||||
if (!valid.length) {
|
||||
throw new Error("Could not lood ANY of these locales");
|
||||
throw new Error("Could not load ANY of these locales");
|
||||
}
|
||||
|
||||
const custom = localStorage.getItem(CUSTOM_KEY);
|
||||
const custom = await lf.getItem<string>(CUSTOM_KEY);
|
||||
if (custom) {
|
||||
try {
|
||||
valid.push(JSON.parse(custom));
|
||||
@ -239,7 +242,7 @@ locale.then(l => {
|
||||
/**
|
||||
* Localize a message
|
||||
* @param {string} id Identifier of the string to localize
|
||||
* @param {string[]} [subst] Message substituations
|
||||
* @param {string[]} [subst] Message substitutions
|
||||
* @returns {string} Localized message
|
||||
*/
|
||||
export function _(id: string, ...subst: any[]) {
|
||||
@ -302,11 +305,11 @@ export async function localize<T extends HTMLElement | DocumentFragment>(
|
||||
return localize_(elem);
|
||||
}
|
||||
|
||||
export function saveCustomLocale(data?: string) {
|
||||
export async function saveCustomLocale(data?: string) {
|
||||
if (!data) {
|
||||
localStorage.removeItem(CUSTOM_KEY);
|
||||
await lf.removeItem(CUSTOM_KEY);
|
||||
return;
|
||||
}
|
||||
new Localization(JSON.parse(data));
|
||||
localStorage.setItem(CUSTOM_KEY, data);
|
||||
await localStorage.setItem(CUSTOM_KEY, data);
|
||||
}
|
||||
|
@ -4,9 +4,11 @@
|
||||
import { downloads, CHROME } from "./browser";
|
||||
import { EventEmitter } from "../uikit/lib/events";
|
||||
import { PromiseSerializer } from "./pserializer";
|
||||
import lf from "localforage";
|
||||
|
||||
|
||||
const VERSION = 1;
|
||||
const STORE = "iconcache";
|
||||
|
||||
// eslint-disable-next-line no-magic-numbers
|
||||
const CACHE_SIZES = CHROME ? [16, 32] : [16, 32, 64, 127];
|
||||
|
||||
@ -48,37 +50,17 @@ const SYNONYMS = Object.freeze(new Map<string, string>([
|
||||
]));
|
||||
|
||||
export const IconCache = new class IconCache extends EventEmitter {
|
||||
private db: Promise<IDBDatabase>;
|
||||
private db = lf.createInstance({name: STORE});
|
||||
|
||||
private cache: Map<string, string>;
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
this.db = this.init();
|
||||
this.cache = new Map();
|
||||
this.get = PromiseSerializer.wrapNew(8, this, this.get);
|
||||
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) {
|
||||
ext = ext.toLocaleLowerCase();
|
||||
return SYNONYMS.get(ext) || ext;
|
||||
@ -95,36 +77,25 @@ export const IconCache = new class IconCache extends EventEmitter {
|
||||
if (rv) {
|
||||
return rv;
|
||||
}
|
||||
const db = await this.db;
|
||||
rv = this.cache.get(sext);
|
||||
if (rv) {
|
||||
return rv;
|
||||
}
|
||||
return await new Promise<string | undefined>(resolve => {
|
||||
const trans = db.transaction(STORE, "readonly");
|
||||
trans.onerror = () => resolve(undefined);
|
||||
const store = trans.objectStore(STORE);
|
||||
const req = store.get(sext);
|
||||
req.onerror = () => resolve(undefined);
|
||||
req.onsuccess = () => {
|
||||
const rv = this.cache.get(sext);
|
||||
if (rv) {
|
||||
resolve(rv);
|
||||
return;
|
||||
}
|
||||
let {result} = req;
|
||||
let result = await this.db.getItem<any>(sext);
|
||||
if (!result) {
|
||||
resolve(undefined);
|
||||
return;
|
||||
return this.cache.get(sext);
|
||||
}
|
||||
if (typeof req.result !== "string") {
|
||||
rv = this.cache.get(sext);
|
||||
if (rv) {
|
||||
return rv;
|
||||
}
|
||||
if (typeof result !== "string") {
|
||||
result = URL.createObjectURL(result).toString();
|
||||
}
|
||||
|
||||
this.cache.set(sext, result);
|
||||
this.cache.set(ext, "");
|
||||
resolve(result);
|
||||
};
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
async set(ext: string, manId: number) {
|
||||
@ -145,18 +116,9 @@ export const IconCache = new class IconCache extends EventEmitter {
|
||||
}
|
||||
for (const {size, icon} of urls) {
|
||||
this.cache.set(`${ext}-${size}`, URL.createObjectURL(icon));
|
||||
await this.db.setItem(`${ext}-${size}`, icon);
|
||||
}
|
||||
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);
|
||||
}
|
||||
}();
|
||||
|
32
lib/imex.ts
@ -81,6 +81,14 @@ function importMeta4(data: string) {
|
||||
if (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);
|
||||
}
|
||||
catch (ex) {
|
||||
@ -94,9 +102,9 @@ function parseKV(current: BaseItem, line: string) {
|
||||
const [k, v] = line.split("=", 2);
|
||||
switch (k.toLocaleLowerCase().trim()) {
|
||||
case "referer": {
|
||||
const rurls = getTextLinks(v);
|
||||
if (rurls && rurls.length) {
|
||||
current.referrer = rurls.pop();
|
||||
const refererUrls = getTextLinks(v);
|
||||
if (refererUrls && refererUrls.length) {
|
||||
current.referrer = refererUrls.pop();
|
||||
current.usableReferrer = decodeURIComponent(current.referrer || "");
|
||||
}
|
||||
break;
|
||||
@ -197,15 +205,15 @@ class MetalinkExporter {
|
||||
const document = window.document.implementation.
|
||||
createDocument(NS_METALINK_RFC5854, "metalink", null);
|
||||
const root = document.documentElement;
|
||||
root.setAttributeNS(NS_DTA, "generator", "DownThemAll!");
|
||||
root.setAttributeNS(NS_DTA, "generator", "TraitorousDownloading!");
|
||||
root.appendChild(document.createComment(
|
||||
"metalink as exported by DownThemAll!",
|
||||
"metalink as exported by TraitorousDownloading!",
|
||||
));
|
||||
|
||||
for (const item of items) {
|
||||
const aitem = item as any;
|
||||
const anyItem = item as any;
|
||||
const f = document.createElementNS(NS_METALINK_RFC5854, "file");
|
||||
f.setAttribute("name", aitem.currentName);
|
||||
f.setAttribute("name", anyItem.currentName);
|
||||
if (item.batch) {
|
||||
f.setAttributeNS(NS_DTA, "num", item.batch.toString());
|
||||
}
|
||||
@ -225,13 +233,19 @@ class MetalinkExporter {
|
||||
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");
|
||||
u.textContent = item.url;
|
||||
f.appendChild(u);
|
||||
|
||||
if (aitem.totalSize > 0) {
|
||||
if (anyItem.totalSize > 0) {
|
||||
const s = document.createElementNS(NS_METALINK_RFC5854, "size");
|
||||
s.textContent = aitem.totalSize.toString();
|
||||
s.textContent = anyItem.totalSize.toString();
|
||||
f.appendChild(s);
|
||||
}
|
||||
root.appendChild(f);
|
||||
|
@ -32,7 +32,8 @@ const OPTIONPROPS = Object.freeze([
|
||||
"startDate",
|
||||
"private",
|
||||
"postData",
|
||||
"paused"
|
||||
"paused",
|
||||
"server", "cookies",
|
||||
]);
|
||||
|
||||
function maybeAssign(options: any, what: any) {
|
||||
|
@ -16,7 +16,7 @@ import {
|
||||
DONE,
|
||||
FORCABLE,
|
||||
MISSING,
|
||||
PAUSABLE,
|
||||
PAUSEABLE,
|
||||
PAUSED,
|
||||
QUEUED,
|
||||
RUNNING,
|
||||
@ -235,7 +235,7 @@ export class Download extends BaseDownload {
|
||||
}
|
||||
|
||||
async pause(retry?: boolean) {
|
||||
if (!(PAUSABLE & this.state)) {
|
||||
if (!(PAUSEABLE & this.state)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -277,7 +277,7 @@ export class Download extends BaseDownload {
|
||||
await downloads.cancel(id);
|
||||
}
|
||||
catch (ex) {
|
||||
// ingored
|
||||
// ignored
|
||||
}
|
||||
await new Promise(r => setTimeout(r, 1000));
|
||||
try {
|
||||
@ -285,7 +285,7 @@ export class Download extends BaseDownload {
|
||||
}
|
||||
catch (ex) {
|
||||
console.error(id, ex.toString(), ex);
|
||||
// ingored
|
||||
// ignored
|
||||
}
|
||||
}
|
||||
|
||||
@ -399,7 +399,7 @@ export class Download extends BaseDownload {
|
||||
}
|
||||
}
|
||||
|
||||
updatefromSuggestion(state: any) {
|
||||
updateFromSuggestion(state: any) {
|
||||
const res: PrerollResults = {};
|
||||
if (state.mime) {
|
||||
res.mime = state.mime;
|
||||
|
@ -17,6 +17,7 @@ import { ManagerPort } from "./port";
|
||||
import { Scheduler } from "./scheduler";
|
||||
import { Limits } from "./limits";
|
||||
import { downloads, runtime, webRequest, CHROME, OPERA } from "../browser";
|
||||
import { browser } from "webextension-polyfill-ts";
|
||||
|
||||
const US = runtime.getURL("");
|
||||
|
||||
@ -91,11 +92,11 @@ export class Manager extends EventEmitter {
|
||||
}
|
||||
|
||||
Bus.onPort("manager", (port: Port) => {
|
||||
const mport = new ManagerPort(this, port);
|
||||
const managerPort = new ManagerPort(this, port);
|
||||
port.on("disconnect", () => {
|
||||
this.ports.delete(mport);
|
||||
this.ports.delete(managerPort);
|
||||
});
|
||||
this.ports.add(mport);
|
||||
this.ports.add(managerPort);
|
||||
return true;
|
||||
});
|
||||
Limits.on("changed", () => {
|
||||
@ -126,7 +127,7 @@ export class Manager extends EventEmitter {
|
||||
// Do not wait for the scheduler
|
||||
this.resetScheduler();
|
||||
|
||||
this.emit("inited");
|
||||
this.emit("initialized");
|
||||
setTimeout(() => this.checkMissing(), MISSING_TIMEOUT);
|
||||
runtime.onUpdateAvailable.addListener(() => {
|
||||
if (this.running.size) {
|
||||
@ -171,7 +172,7 @@ export class Manager extends EventEmitter {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
download.updatefromSuggestion(state);
|
||||
download.updateFromSuggestion(state);
|
||||
}
|
||||
finally {
|
||||
const suggestion = {filename: download.dest.full};
|
||||
@ -261,6 +262,61 @@ export class Manager extends EventEmitter {
|
||||
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[]) {
|
||||
if (!items || !items.length) {
|
||||
return;
|
||||
@ -283,6 +339,7 @@ export class Manager extends EventEmitter {
|
||||
this.save(items);
|
||||
this.startNext();
|
||||
}
|
||||
*/
|
||||
|
||||
setDirty(item: Download) {
|
||||
this.dirty.add(item);
|
||||
@ -358,8 +415,8 @@ export class Manager extends EventEmitter {
|
||||
this.startNext().catch(console.error);
|
||||
}
|
||||
else if (newState === RUNNING) {
|
||||
// Usually we already added it. Buit if a user uses the built-in
|
||||
// download manager to resart
|
||||
// Usually we already added it. But if a user uses the built-in
|
||||
// download manager to restart
|
||||
// a download, we have not, so make sure it is added either way
|
||||
this.running.add(download);
|
||||
}
|
||||
@ -417,17 +474,18 @@ export class Manager extends EventEmitter {
|
||||
sorted(sids: number[]) {
|
||||
try {
|
||||
// Construct new items
|
||||
const csids = new Map(this.sids);
|
||||
const currentSids = new Map(this.sids);
|
||||
let items = mapFilterInSitu(sids, sid => {
|
||||
const item = csids.get(sid);
|
||||
const item = currentSids.get(sid);
|
||||
if (!item) {
|
||||
return null;
|
||||
}
|
||||
csids.delete(sid);
|
||||
currentSids.delete(sid);
|
||||
return item;
|
||||
}, e => !!e);
|
||||
if (csids.size) {
|
||||
items = items.concat(sort(Array.from(csids.values()), i => i.position));
|
||||
if (currentSids.size) {
|
||||
items = items.concat(
|
||||
sort(Array.from(currentSids.values()), i => i.position));
|
||||
}
|
||||
this.items = items;
|
||||
this.setPositions();
|
||||
|
@ -12,5 +12,5 @@ export const RETRYING = 1 << 7;
|
||||
|
||||
export const RESUMABLE = PAUSED | CANCELED | RETRYING;
|
||||
export const FORCABLE = PAUSED | QUEUED | CANCELED | RETRYING;
|
||||
export const PAUSABLE = QUEUED | CANCELED | RUNNING | RETRYING;
|
||||
export const PAUSEABLE = QUEUED | CANCELED | RUNNING | RETRYING;
|
||||
export const CANCELABLE = QUEUED | RUNNING | PAUSED | DONE | MISSING | RETRYING;
|
||||
|
@ -8,7 +8,7 @@ import {EventEmitter} from "./events";
|
||||
const DEFAULTS = {
|
||||
type: "basic",
|
||||
iconUrl: extension.getURL("/style/icon64.png"),
|
||||
title: "DownThemAll!",
|
||||
title: "TraitorousDownloading!",
|
||||
message: "message",
|
||||
};
|
||||
|
||||
@ -25,7 +25,7 @@ export class Notification extends EventEmitter {
|
||||
super();
|
||||
|
||||
this.generated = !id;
|
||||
id = id || `DownThemAll-notification${++gid}`;
|
||||
id = id || `TraitorousDownloading-notification${++gid}`;
|
||||
if (typeof options === "string") {
|
||||
options = {message: options};
|
||||
}
|
||||
|
@ -122,3 +122,8 @@ export const SUBFOLDER = new RecentList("subfolder", [
|
||||
"downthemall",
|
||||
]);
|
||||
SUBFOLDER.init().catch(console.error);
|
||||
|
||||
export const SERVER = new RecentList("server", [
|
||||
"",
|
||||
]);
|
||||
SERVER.init().catch(console.error);
|
||||
|
@ -1,11 +1,11 @@
|
||||
{
|
||||
"manifest_version": 2,
|
||||
"name": "DownThemAll!",
|
||||
"name": "TraitorousDownloading!",
|
||||
"version": "4.2.6",
|
||||
|
||||
"description": "__MSG_extensionDescription__",
|
||||
"homepage_url": "https://downthemall.org/",
|
||||
"author": "Nils Maier",
|
||||
"homepage_url": "https://github.com/lordwelch/downthemall",
|
||||
"author": "lordwelch",
|
||||
|
||||
"default_locale": "en",
|
||||
|
||||
@ -23,6 +23,7 @@
|
||||
"permissions": [
|
||||
"<all_urls>",
|
||||
"contextMenus",
|
||||
"cookies",
|
||||
"downloads",
|
||||
"downloads.open",
|
||||
"downloads.shelf",
|
||||
@ -56,7 +57,7 @@
|
||||
"128": "style/icon128.png",
|
||||
"256": "style/icon256.png"
|
||||
},
|
||||
"default_title": "DownThemAll!"
|
||||
"default_title": "TraitorousDownloading!"
|
||||
},
|
||||
|
||||
"options_ui": {
|
||||
@ -66,7 +67,7 @@
|
||||
|
||||
"browser_specific_settings": {
|
||||
"gecko": {
|
||||
"id": "dtalite@downthemall.org",
|
||||
"id": "downloading@traitorousenterprises.net",
|
||||
"strict_min_version": "67.0"
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "dtalite",
|
||||
"name": "tdl",
|
||||
"version": "4.0.0",
|
||||
"description": "DownThemAll! lite",
|
||||
"description": "TraitorousDownloading!",
|
||||
"main": "main.js",
|
||||
"directories": {
|
||||
"lib": "lib"
|
||||
@ -35,8 +35,10 @@
|
||||
"dependencies": {
|
||||
"@types/psl": "^1.1.0",
|
||||
"@types/whatwg-mimetype": "^2.1.0",
|
||||
"localforage": "^1.9.0",
|
||||
"psl": "^1.4.0",
|
||||
"webextension-polyfill": "^0.5.0",
|
||||
"webextension-polyfill-ts": "^0.22.0",
|
||||
"whatwg-mimetype": "^2.3.0"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 763 B After Width: | Height: | Size: 747 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 725 B After Width: | Height: | Size: 711 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
style/icon.ico
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 130 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 13 KiB |
BIN
style/icon16.png
Before Width: | Height: | Size: 785 B After Width: | Height: | Size: 810 B |
BIN
style/icon24.png
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 34 KiB |
BIN
style/icon32.png
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
BIN
style/icon48.png
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.2 KiB |
BIN
style/icon64.png
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.6 KiB |
@ -64,7 +64,7 @@ p.example {
|
||||
}
|
||||
|
||||
#options > #subfolderOptions,
|
||||
#options > #maskOptions {
|
||||
#options > #maskOptions, #options > #serverOptions {
|
||||
display: grid;
|
||||
grid-template-columns: 2fr auto auto;
|
||||
}
|
||||
|
@ -108,8 +108,13 @@ export class MenuItem extends MenuItemBase {
|
||||
super(owner, id, text, options);
|
||||
this.disabled = options.disabled === "true";
|
||||
this.elem.setAttribute("aria-role", "menuitem");
|
||||
this.elem.addEventListener(
|
||||
"click", () => this.owner.emit("clicked", this.id, this.autoHide));
|
||||
this.clicked = this.clicked.bind(this);
|
||||
this.elem.addEventListener("click", this.clicked);
|
||||
this.elem.addEventListener("contextmenu", this.clicked);
|
||||
}
|
||||
|
||||
clicked() {
|
||||
this.owner.emit("clicked", this.id, this.autoHide);
|
||||
}
|
||||
|
||||
get disabled() {
|
||||
|
@ -20,7 +20,7 @@ FILES = [
|
||||
"LICENSE.*",
|
||||
]
|
||||
|
||||
RELEASE_ID = "{DDC359D1-844A-42a7-9AA1-88A850A938A8}"
|
||||
RELEASE_ID = "downloading@traitorousenterprises.net"
|
||||
|
||||
UNCOMPRESSABLE = set((".png", ".jpg", ".zip", ".woff2"))
|
||||
LICENSED = set((".css", ".html", ".js", "*.ts"))
|
||||
@ -88,14 +88,14 @@ def build_firefox(args):
|
||||
|
||||
if args.mode != "release":
|
||||
infos["version_name"] = f"{version}-{args.mode}"
|
||||
infos["browser_specific_settings"]["gecko"]["id"] = f"{args.mode}@downthemall.org"
|
||||
infos["browser_specific_settings"]["gecko"]["id"] = f"{args.mode}@traitorousenterprises.net"
|
||||
infos["short_name"] = infos.get("name")
|
||||
infos["name"] = f"{infos.get('name')} {args.mode}"
|
||||
else:
|
||||
infos["browser_specific_settings"]["gecko"]["id"] = RELEASE_ID
|
||||
|
||||
infos["permissions"] = [p for p in infos.get("permissions") if not p in PERM_IGNORED_FX]
|
||||
out = Path("web-ext-artifacts") / f"dta-{version}-{args.mode}-fx.zip"
|
||||
out = Path("web-ext-artifacts") / f"tdl-{version}-{args.mode}-fx.zip"
|
||||
if not out.parent.exists():
|
||||
out.parent.mkdir()
|
||||
if out.exists():
|
||||
@ -122,7 +122,7 @@ def build_chromium(args, pkg, additional_ignored=set()):
|
||||
infos["name"] = f"{infos.get('name')} {args.mode}"
|
||||
|
||||
infos["permissions"] = [p for p in infos.get("permissions") if not p in PERM_IGNORED_CHROME]
|
||||
out = Path("web-ext-artifacts") / f"dta-{version}-{args.mode}-{pkg}.zip"
|
||||
out = Path("web-ext-artifacts") / f"tdl-{version}-{args.mode}-{pkg}.zip"
|
||||
if not out.parent.exists():
|
||||
out.parent.mkdir()
|
||||
if out.exists():
|
||||
|
@ -3,7 +3,7 @@
|
||||
<!-- License: gpl-v2 -->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title data-i18n="manager.title">DownThemAll!</title>
|
||||
<title data-i18n="manager.title">TraitorousDownloading!</title>
|
||||
<style>
|
||||
@import "/uikit/css/virtualtable.css";
|
||||
@import "/uikit/css/modal.css";
|
||||
|
@ -131,7 +131,6 @@ addEventListener("DOMContentLoaded", function dom() {
|
||||
|
||||
addEventListener("contextmenu", event => {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
return false;
|
||||
});
|
||||
|
||||
|
@ -790,7 +790,7 @@ export class DownloadTable extends VirtualTable {
|
||||
const items = this.getSelectedItems();
|
||||
const states = items.reduce((p, c) => p |= c.state, 0);
|
||||
|
||||
if (!(states & DownloadState.PAUSABLE)) {
|
||||
if (!(states & DownloadState.PAUSEABLE)) {
|
||||
this.pauseAction.disabled = true;
|
||||
}
|
||||
|
||||
@ -828,7 +828,7 @@ export class DownloadTable extends VirtualTable {
|
||||
}
|
||||
|
||||
pauseDownloads() {
|
||||
const sids = this.getSelectedSids(DownloadState.PAUSABLE);
|
||||
const sids = this.getSelectedSids(DownloadState.PAUSEABLE);
|
||||
if (!sids.length) {
|
||||
return;
|
||||
}
|
||||
|
@ -100,10 +100,10 @@
|
||||
<li class="sep">
|
||||
<hr>
|
||||
</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">
|
||||
<span data-i18n="manager.short"></span>
|
||||
</li>
|
||||
</li> -->
|
||||
<li id="prefs" data-action="open-prefs">
|
||||
<span class="icon icon-settings"></span>
|
||||
<span data-i18n="prefs.short">Preferences</span>
|
||||
|
@ -16,7 +16,7 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
<title data-i18n="prefs.title">DownThemAll! - Preferences</title>
|
||||
<title data-i18n="prefs.title">TraitorousDownloading! - Preferences</title>
|
||||
<link rel="icon" href="/style/icon32.png">
|
||||
<link rel="icon" sizes="16x16" href="/style/icon16.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="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="manager"> <span data-i18n="pref-button-type-manager"></span></label>
|
||||
<label style="display: none;"><input type="radio" name="pref-button-type" value="manager"> <span data-i18n="pref-button-type-manager"></span></label>
|
||||
</div>
|
||||
<label data-i18n="pref-theme"></label>
|
||||
<div id="pref-theme">
|
||||
@ -59,7 +59,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<label><input type="checkbox" id="pref-manager-in-popup"> <span data-i18n="pref-manager-in-popup"></span></label>
|
||||
<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-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-hide-context"> <span data-i18n="pref-hide-context"></span></label>
|
||||
@ -68,15 +68,16 @@
|
||||
<button id="reset-layout" data-i18n="reset-layouts"></button>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<fieldset style="display: none;">
|
||||
<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-show-urls"> <span data-i18n="pref-show-urls"></span></label>
|
||||
</fieldset>
|
||||
<fieldset>
|
||||
<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-open-manager-on-queue"> <span data-i18n="pref-open-manager-on-queue"></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-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-remove-missing-on-init"> <span data-i18n="pref-remove-missing-on-init"></span></label>
|
||||
|
@ -568,6 +568,7 @@ addEventListener("DOMContentLoaded", async () => {
|
||||
}
|
||||
new BoolPref("pref-hide-context", "hide-context");
|
||||
new BoolPref("pref-tooltip", "tooltip");
|
||||
new BoolPref("pref-cookies", "cookies");
|
||||
new BoolPref("pref-open-manager-on-queue", "open-manager-on-queue");
|
||||
new BoolPref("pref-text-links", "text-links");
|
||||
new BoolPref("pref-add-paused", "add-paused");
|
||||
@ -641,8 +642,9 @@ addEventListener("DOMContentLoaded", async () => {
|
||||
$<HTMLInputElement>("#loadCustomLocale").addEventListener("click", () => {
|
||||
customLocale.click();
|
||||
});
|
||||
$<HTMLInputElement>("#clearCustomLocale").addEventListener("click", () => {
|
||||
saveCustomLocale(undefined);
|
||||
$<HTMLInputElement>("#clearCustomLocale").
|
||||
addEventListener("click", async () => {
|
||||
await saveCustomLocale(undefined);
|
||||
runtime.reload();
|
||||
});
|
||||
customLocale.addEventListener("change", async () => {
|
||||
@ -662,8 +664,9 @@ addEventListener("DOMContentLoaded", async () => {
|
||||
reader.onerror = reject;
|
||||
reader.readAsText(file);
|
||||
});
|
||||
saveCustomLocale(text);
|
||||
if (confirm("Imported your file.\nWant to relaod the extension now?")) {
|
||||
await saveCustomLocale(text);
|
||||
|
||||
if (confirm("Imported your file.\nWant to reload the extension now?")) {
|
||||
runtime.reload();
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title data-i18n="select.title">DownThemAll! - Select your links</title>
|
||||
<title data-i18n="select.title">TraitorousDownloading! - Select your links</title>
|
||||
<style>
|
||||
@import "/uikit/css/virtualtable.css";
|
||||
@import "/uikit/css/modal.css";
|
||||
@ -75,6 +75,17 @@
|
||||
<input type="checkbox" id="maskOnceCheck">
|
||||
<span data-i18n="useonlyonce">Use only once</span>
|
||||
</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 id="notification"></section>
|
||||
<section id="buttons">
|
||||
|
@ -7,7 +7,7 @@ import { ContextMenu } from "./contextmenu";
|
||||
import { iconForPath } from "../lib/windowutils";
|
||||
import { _, localize } from "../lib/i18n";
|
||||
import { Prefs } from "../lib/prefs";
|
||||
import { MASK, FASTFILTER, SUBFOLDER } from "../lib/recentlist";
|
||||
import { MASK, FASTFILTER, SUBFOLDER, SERVER } from "../lib/recentlist";
|
||||
import { WindowState } from "./windowstate";
|
||||
import { Dropdown } from "./dropdown";
|
||||
import { Keys } from "./keys";
|
||||
@ -43,6 +43,7 @@ const NUM_FILTER_CLASSES = 8;
|
||||
|
||||
let Table: SelectionTable;
|
||||
let Mask: Dropdown;
|
||||
let OServer: Dropdown;
|
||||
let FastFilter: Dropdown;
|
||||
let Subfolder: Dropdown;
|
||||
|
||||
@ -433,6 +434,12 @@ class SelectionTable extends VirtualTable {
|
||||
return true;
|
||||
});
|
||||
|
||||
Prefs.get("cookies").then(checked=>{
|
||||
if ($<HTMLInputElement>("#cookiesCheck").checked != !!checked) {
|
||||
$<HTMLInputElement>("#cookiesCheck").click();
|
||||
}
|
||||
});
|
||||
|
||||
this.init();
|
||||
this.switchTab(type);
|
||||
}
|
||||
@ -678,6 +685,10 @@ async function download(paused = false) {
|
||||
if (!mask) {
|
||||
throw new Error("error.invalidMask");
|
||||
}
|
||||
const server = OServer.value;
|
||||
if (!server) {
|
||||
throw new Error("error.invalidServer");
|
||||
}
|
||||
const subfolder = Subfolder.value;
|
||||
validateSubfolder(subfolder);
|
||||
|
||||
@ -716,6 +727,9 @@ async function download(paused = false) {
|
||||
fastOnce: $<HTMLInputElement>("#fastOnceCheck").checked,
|
||||
subfolder,
|
||||
subfolderOnce: $<HTMLInputElement>("#subfolderOnceCheck").checked,
|
||||
server,
|
||||
serverOnce: $<HTMLInputElement>("#serverOnceCheck").checked,
|
||||
cookies: $<HTMLInputElement>("#cookiesCheck").checked,
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -791,7 +805,9 @@ function cancel() {
|
||||
}
|
||||
|
||||
async function init() {
|
||||
await Promise.all([MASK.init(), FASTFILTER.init(), SUBFOLDER.init()]);
|
||||
await Promise.all([MASK.init(), FASTFILTER.init(), SUBFOLDER.init(), SERVER.init()]);
|
||||
OServer = new Dropdown("#server", SERVER.values);
|
||||
OServer.on("changed", clearErrors);
|
||||
Mask = new Dropdown("#mask", MASK.values);
|
||||
Mask.on("changed", clearErrors);
|
||||
FastFilter = new Dropdown("#fast", FASTFILTER.values);
|
||||
@ -890,7 +906,6 @@ addEventListener("DOMContentLoaded", function dom() {
|
||||
|
||||
addEventListener("contextmenu", event => {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
return false;
|
||||
});
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title data-i18n="single.title">DownThemAll! - Add a Link</title>
|
||||
<title data-i18n="single.title">TraitorousDownloading! - Add a Link</title>
|
||||
<style>
|
||||
@import "/uikit/css/modal.css";
|
||||
@import "/style/single.css";
|
||||
@ -32,12 +32,12 @@
|
||||
<input type="text" id="URL">
|
||||
<h2 data-i18n="custom-filename">Custom Filename</h2>
|
||||
<input type="text" id="filename">
|
||||
<h3 data-i18n="referrer">Referring page</h3>
|
||||
<h3 data-i18n="referrer">Referring page (Not implemented)</h3>
|
||||
<input type="text" id="referrer">
|
||||
<h3 data-i18n="title">Title</h3>
|
||||
<input type="text" id="title">
|
||||
<h3 data-i18n="description">Description</h3>
|
||||
<input type="text" id="description">
|
||||
<h3 data-i18n="title" style="display: none;">Title</h3>
|
||||
<input type="text" id="title" style="display: none;">
|
||||
<h3 data-i18n="description" style="display: none;">Description</h3>
|
||||
<input type="text" id="description" style="display: none;">
|
||||
<h3 data-i18n="mask">Mask</h3>
|
||||
<div id="maskOptions">
|
||||
<input type="text" id="mask">
|
||||
@ -47,6 +47,18 @@
|
||||
<span data-i18n="useonlyonce">Use only once</span>
|
||||
</label>
|
||||
</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>
|
||||
<div id="subfolderOptions">
|
||||
<input type="text" id="subfolder" data-i18n="placeholder=subfolder.placeholder">
|
||||
|
@ -4,9 +4,10 @@
|
||||
|
||||
import ModalDialog from "../uikit/lib/modal";
|
||||
import { _, localize } from "../lib/i18n";
|
||||
import { Prefs } from "../lib/prefs";
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import { Item, BaseItem } from "../lib/item";
|
||||
import { MASK, SUBFOLDER } from "../lib/recentlist";
|
||||
import { MASK, SUBFOLDER, SERVER } from "../lib/recentlist";
|
||||
import { BatchGenerator } from "../lib/batches";
|
||||
import { WindowState } from "./windowstate";
|
||||
import { Dropdown } from "./dropdown";
|
||||
@ -22,6 +23,7 @@ const PORT = runtime.connect(null, { name: "single" });
|
||||
let ITEM: BaseItem;
|
||||
let Mask: Dropdown;
|
||||
let Subfolder: Dropdown;
|
||||
let OServer: Dropdown;
|
||||
|
||||
class BatchModalDialog extends ModalDialog {
|
||||
private readonly gen: BatchGenerator;
|
||||
@ -131,6 +133,11 @@ async function downloadInternal(paused: boolean) {
|
||||
return displayError("error.invalidMask");
|
||||
}
|
||||
|
||||
const server = OServer.value;
|
||||
if (!server) {
|
||||
throw new Error("error.invalidServer");
|
||||
}
|
||||
|
||||
const subfolder = Subfolder.value.trim();
|
||||
validateSubFolder(subfolder);
|
||||
|
||||
@ -199,6 +206,9 @@ async function downloadInternal(paused: boolean) {
|
||||
maskOnce: $<HTMLInputElement>("#maskOnceCheck").checked,
|
||||
subfolder,
|
||||
subfolderOnce: $<HTMLInputElement>("#subfolderOnceCheck").checked,
|
||||
server,
|
||||
serverOnce: $<HTMLInputElement>("#serverOnceCheck").checked,
|
||||
cookies: $<HTMLInputElement>("#cookiesCheck").checked,
|
||||
}
|
||||
});
|
||||
return null;
|
||||
@ -215,9 +225,15 @@ function cancel() {
|
||||
|
||||
async function init() {
|
||||
await localize(document.documentElement);
|
||||
await Promise.all([MASK.init(), SUBFOLDER.init()]);
|
||||
await Promise.all([MASK.init(), SUBFOLDER.init(), SERVER.init()]);
|
||||
Mask = new Dropdown("#mask", MASK.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() {
|
||||
|
@ -2,7 +2,7 @@
|
||||
// License: MIT
|
||||
|
||||
export function $<T extends HTMLElement>(
|
||||
q: string, el?: HTMLElement | DocumentFragment): T {
|
||||
q: string, el?: HTMLElement | DocumentFragment | Document): T {
|
||||
if (!el) {
|
||||
el = document;
|
||||
}
|
||||
|