12 Commits

Author SHA1 Message Date
ebd1581742 Make audio filter to apply to both, links and media 2020-08-29 19:59:57 +02:00
db1b50bc90 Update locales 2020-08-29 19:56:05 +02:00
8ad4d7a59d Update de locale (#225) 2020-08-29 19:23:38 +02:00
5c6cd47485 Create tr.json (#201) 2020-08-29 19:20:44 +02:00
dbd596e8ea New language: Swedish (#226) 2020-08-29 19:18:04 +02:00
0362eaf6e3 Update Czech locale (#236) 2020-08-29 19:15:59 +02:00
4538066e9d update typo messages.json of zh-CN (#260) 2020-08-29 19:15:15 +02:00
0da87398b4 Fix typo in windows.getLastFocused (#277) 2020-08-29 19:14:42 +02:00
82e7361567 Version 4.2.6 2019-11-26 13:13:09 +01:00
5c84493a0f build: cleanup stale bundles 2019-11-26 13:05:16 +01:00
83cb8e32f1 Update Readme.md 2019-11-25 19:14:51 +01:00
c49af54532 Remove compresslevel from build.py
Makes python3.6 choke
2019-11-25 19:08:33 +01:00
13 changed files with 2753 additions and 64 deletions

View File

@ -31,28 +31,59 @@ If you would like to help out translating DTA, please see our [translation guide
## Development
### Requirements
You will want to `yarn` the development dependencies such as webpack first.
- [node](https://nodejs.org/en/)
- [yarn](https://yarnpkg.com/)
- [python3](https://www.python.org/) >= 3.6 (to build zips)
- [web-ext](https://www.npmjs.com/package/web-ext) (for development ease)
Afterwards, you will want to run`yarn watch`.
### Setup
You will want to run `yarn` to install the development dependencies such as webpack first.
### Making changes
Just use your favorite text editor to edit the files.
You will want to run`yarn watch`.
This will run the webpack bundler in watch mode, transpiling the TypeScript to Javascript and updating bundles as you change the source.
Please note: You have to run `yarn watch` (at least once) as it builds the actual script bundles.
Please note: You have to run `yarn watch` or `yarn build` (at least once) as it builds the actual script bundles.
### Firefox
### Running in Firefox
I recommend you install the [`web-ext`](https://www.npmjs.com/package/web-ext) tools from mozilla. It is not listed as a dependency by design at it causes problems with dependency resolution in yarn right now if installed in the same location as the rest of the dependencies.
If you did, then running `yarn webext` (additionally to `yarn watch`) will run the WebExtension in a development profile. This will use the directory `../dtalite.p` to keep a development profile. You might need to create this directory before you use this command. Furthermore `yarn webext` will watch for changes to the sources and automatically reload the extension.
Alternative, you can also `yarn build`, which then builds an *unsigned* zip that you can then install permanently in a browser that does not enforce signing (i.e. Nightly or the Unbranded Firefox with the right about:config preferences).
Alternatively, you can also `yarn build`, which then builds an *unsigned* zip that you can then install permanently in a browser that does not enforce signing (i.e. Nightly or the Unbranded Firefox with the right about:config preferences).
### Chrome
### Running in Chrome/Chromium/etc
You have to build the bundles first, of course.
Then put your Chrome into Developement Mode on the Extensions page, and Load Unpacked the directory of your downthemall clone.
### Making release zips
To get a basic unofficial set of zips for Firefox and chrome, run `yarn build`.
If you want to generate release builds like the ones that are eventually released in the extension stores, use `python3 util/build.py --mode=release`.
The output is located in `web-ext-artifacts`.
- `-fx.zip` are Firefox builds
- `-crx.zip` are Chrome/Chromium builds
- `-opr.zip` are Opera builds (essentially like the Chrome one, but without sounds)
### The AMO Editors tl;dr guide
1. Install the requirements.
2. `yarn && python3 build/util.py --mode=release`
3. Have a look in `web-ext-artifacts/dta-*-fx.zip`
### Patches
Before submitting patches, please make sure you run eslint (if this isn't done automatically in your text editor/IDE), and eslint does not report any open issues. Code contributions should favor typescript code over javascript code. External dependencies that would ship with the final product (including all npm/yarn packages) should be kept to a bare minimum and need justification.

View File

@ -19,6 +19,8 @@
"pl": "Polski [pl]",
"pt": "Português (Brasil) [pt]",
"ru": "Русский [ru]",
"zh_CN": "简体中文 [zh_CN]",
"zh_TW": "正體中文 [zh_TW]"
"sv": "Svenska (SV) [sv]",
"tr": "Türkçe TR) [tr]",
"zh_CN": "中文(简体) [zh_CN]",
"zh_TW": "正體中文 (TW) [zh_TW]"
}

View File

@ -191,6 +191,22 @@
"message": "Smazat",
"description": "button text"
},
"deletefiles": {
"message": "Odstranit soubory",
"description": "menu action"
},
"deletefiles_button": {
"message": "Odstranit",
"description": "button text"
},
"deletefiles_text": {
"message": "Opravdu chcete odstranit následující soubory?",
"description": "messagebox text"
},
"deletefiles_title": {
"message": "Odstranit soubory",
"description": "messagebox title"
},
"description": {
"message": "Popis",
"description": "Description (keep it short); e.g. the description column in select"
@ -275,10 +291,34 @@
"message": "Neplatná URL adresa",
"description": "Error message; single window"
},
"error_noabsolutepath": {
"message": "Absolutní formát cest pro podsložky není prohlížečem podporovaný",
"description": "Error Message; select/single window"
},
"error_nodotsinpath": {
"message": "Tečky (.) v podsložkách nejsou prohlížečem podporované",
"description": "Error Message; select/single window"
},
"error_noItemsSelected": {
"message": "Nic není vybráno",
"description": "Error Message; select window"
},
"export": {
"message": "Exportovat do souboru",
"description": "menu text"
},
"export_aria2": {
"message": "Exportovat jako seznam aria2",
"description": "menu text"
},
"export_metalink": {
"message": "Exportovat jako metalink",
"description": "menu text"
},
"export_text": {
"message": "Exportovat jako text",
"description": "menu text"
},
"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"
@ -331,6 +371,10 @@
"message": "Vynutit spuštění",
"description": "Menu text"
},
"import": {
"message": "Importovat ze souboru",
"description": "menu text"
},
"information_title": {
"message": "Informace",
"description": "Used in message boxes"
@ -529,6 +573,26 @@
"message": "Přidávat nová stahování pozastavená",
"description": "Preferences/General"
},
"pref_button_type": {
"message": "Tlačítko DownThemAll!:",
"description": "label"
},
"pref_button_type_dta": {
"message": "DownThemAll! selektor",
"description": "label"
},
"pref_button_type_manager": {
"message": "Otevřít Manažera",
"description": "label"
},
"pref_button_type_popup": {
"message": "Nabídka",
"description": "label"
},
"pref_button_type_turbo": {
"message": "OneClick!",
"description": "label"
},
"pref_concurrent_downloads": {
"message": "Souběžná stahování",
"description": "Preferences/Network"
@ -537,10 +601,6 @@
"message": "Zobrazit oznámení po dokončení fronty stahování",
"description": "Preferences/General"
},
"pref_global_turbo": {
"message": "Tlačítho na liště je OneClick!",
"description": "Preferences/General"
},
"pref_hide_context": {
"message": "Nezobrazovat v kontextové nabídce",
"description": "Preferences/General"
@ -549,8 +609,12 @@
"message": "Manažer",
"description": "Preferences/General; group text"
},
"pref_manager_in_popup": {
"message": "Otevřít Manažera v novém vyskakovacím okně",
"description": "checkbox text"
},
"pref_manager_tooltip": {
"message": "Zobrazovat popisky v záložkách Manažeru",
"message": "Zobrazovat popisky v záložkách Manažera",
"description": "Preferences/General"
},
"pref_netglobal": {
@ -558,7 +622,7 @@
"description": "Preferences/General; group text"
},
"pref_open_manager_on_queue": {
"message": "Otevřít záložku Manažeru po zařazení stahování do fronty",
"message": "Otevřít záložku Manažera po zařazení stahování do fronty",
"description": "Preferences/General"
},
"pref_queueing": {
@ -573,14 +637,42 @@
"message": "Odebrat chybějící stahování po restartu",
"description": "Preferences/General"
},
"pref_retries": {
"message": "Počet pokusů o stažení při dočasných chybách",
"description": "pref text"
},
"pref_retry_time": {
"message": "Interval opakování (v minutách)",
"description": "pref text"
},
"pref_show_urls": {
"message": "Zobrazit URL adresy místo názvů souborů",
"description": "Preferences/General"
},
"pref_sounds": {
"message": "Přehrát zvuky",
"description": "checkbox text"
},
"pref_text_links": {
"message": "Vyhledat odkazy v textu stránky (pomalejší)",
"description": "Preferences/General"
},
"pref_theme": {
"message": "Motiv:",
"description": "label text"
},
"pref_theme_dark": {
"message": "Tmavý",
"description": "option text"
},
"pref_theme_default": {
"message": "Systémový/Výchozí",
"description": "option text"
},
"pref_theme_light": {
"message": "Světlý",
"description": "option text"
},
"pref_ui": {
"message": "Uživatelské rozhraní",
"description": "Preferences/General; group text"
@ -895,6 +987,20 @@
"message": "Pokračovat",
"description": "Action for resuming a download"
},
"retrying": {
"message": "Opakuji",
"description": "Status text"
},
"retrying_error": {
"message": "Opakuji - $ERROR$",
"description": "status text",
"placeholders": {
"error": {
"content": "$1",
"example": "Server Error"
}
}
},
"running": {
"message": "Probíhá",
"description": "Status text"
@ -943,6 +1049,18 @@
"message": "Nastavit masku přejmenování",
"description": "Menu text; select window"
},
"set_mask_text": {
"message": "Nastavte novou masku přejmenování",
"description": "dialog text"
},
"set_referrer": {
"message": "Nastavit odkázání",
"description": "menu text"
},
"set_referrer_text": {
"message": "Nastavit novou odkazující stránku",
"description": "dialog text"
},
"single_batchexamples": {
"message": "Jsou podporována dávková stahování, například:",
"description": "Header text; single window"
@ -1123,6 +1241,14 @@
"message": "Nová stahování nebudou spuštěna",
"description": "Status bar tooltip; manager network icon"
},
"subfolder": {
"message": "Podsložka:",
"description": "label text"
},
"subfolder_placeholder": {
"message": "Umístí soubory v této podložce uvnitř vaší složky stahování",
"description": "placeholder text within an input box"
},
"title": {
"message": "Popisek",
"description": "Column text; Title label (short)"
@ -1166,5 +1292,9 @@
"useonlyonce": {
"message": "Použít pouze jednou",
"description": "Label for Use-Once checkboxes"
},
"USER_CANCELED": {
"message": "Zrušeno uživatelem",
"description": "Error message"
}
}

View File

@ -1,7 +1,7 @@
{
"language": {
"message": "Deutsch",
"description": "Lanuage Name in your language"
"description": "Language Name in your language"
},
"language_code": {
"message": "de",
@ -24,7 +24,7 @@
"description": "Checkbox label"
},
"add_paused_question": {
"message": "Soll sich diese Entscheidung gemerkt werden und neue Downloads von jetzt an immer pausiert hinzugefügt werden?",
"message": "Diese Entscheidung speichern und neue Downloads von jetzt an immer pausiert hinzufügen?",
"description": "Messagebox text"
},
"add_paused_title": {
@ -52,15 +52,15 @@
"description": "Messagebox info text for batch confirmations"
},
"batch_question": {
"message": "Als Batch oder einfachen Download hinzufügen?",
"message": "Als Batch oder als einfachen Download hinzufügen?",
"description": "Messagebox info text for batch confirmations"
},
"batch_single": {
"message": "Einfacher Download",
"message": "Einzelner Download",
"description": "Button text for batch confirmation"
},
"batch_title": {
"message": "Batch Download",
"message": "Batch",
"description": "Messagebox title for batch confirmations"
},
"cancel": {
@ -84,7 +84,7 @@
"description": "Checkbox label text for decision confirmations"
},
"check_selected_items": {
"message": "Ausgewählte Einträge markieren",
"message": "markierte Einträge auswählen",
"description": "Menu text"
},
"colConnections": {
@ -228,7 +228,7 @@
"description": "Download (noun); e.g. Download column in select"
},
"download_verb": {
"message": "Download",
"message": "Herunterladen",
"description": "Download (verb/action); e.g. in single and select buttons"
},
"dta_regular": {
@ -328,7 +328,7 @@
"description": "Label for Fast Filtering input"
},
"fastfilter_placeholder": {
"message": "Platzhalter-Ausdruck oder Regular Expression",
"message": "Platzhalter-Ausdruck oder regulärer Ausdruck",
"description": "Placeholder for fastfilter inputs"
},
"FILE_FAILED": {
@ -348,11 +348,11 @@
"description": "Message box label"
},
"filter_label": {
"message": "Filter-Titel",
"message": "Filter-Bezeichnung",
"description": "Message box label"
},
"filter_types": {
"message": "Filter Typen",
"message": "Filter-Typen",
"description": "Message box label"
},
"filter_type_link": {
@ -360,11 +360,11 @@
"description": "Message box checkbox label"
},
"filter_type_media": {
"message": "Medien Filter",
"message": "Medien-Filter",
"description": "Message box checkbox label"
},
"finishing": {
"message": "Beenden",
"message": "Beende",
"description": "Status text"
},
"force_start": {
@ -416,7 +416,7 @@
"description": "Short for PageUp-key"
},
"limited_to": {
"message": "Begrenzt auf",
"message": "Begrenzen auf",
"description": "Label text; used in prefs/network"
},
"links": {
@ -614,7 +614,7 @@
"description": "checkbox text"
},
"pref_manager_tooltip": {
"message": "Keine Tooltips im Manager-Tab anzeigen",
"message": "Tooltips im Manager-Tab anzeigen",
"description": "Preferences/General"
},
"pref_netglobal": {
@ -622,7 +622,7 @@
"description": "Preferences/General; group text"
},
"pref_open_manager_on_queue": {
"message": "Den Manager öffnen nachdem neue Downloads zur Warteschlange hinzugefügt wurden",
"message": "Den Manager öffnen, nachdem neue Downloads zur Warteschlange hinzugefügt wurden",
"description": "Preferences/General"
},
"pref_queueing": {
@ -642,7 +642,7 @@
"description": "pref text"
},
"pref_retry_time": {
"message": "Neuversuch Alle (in Minuten)",
"message": "Erneut versuchen alle (in Minuten)",
"description": "pref text"
},
"pref_show_urls": {
@ -650,7 +650,7 @@
"description": "Preferences/General"
},
"pref_sounds": {
"message": "Sounds abspielen",
"message": "Töne abspielen",
"description": "checkbox text"
},
"pref_text_links": {
@ -658,7 +658,7 @@
"description": "Preferences/General"
},
"pref_theme": {
"message": "Theme:",
"message": "Farbschema:",
"description": "label text"
},
"pref_theme_dark": {
@ -724,7 +724,7 @@
"description": "Menu text"
},
"remove_batch_downloads_question": {
"message": "Wirklich alle Downloads vom aktuellen Batch entfernen?",
"message": "Wirklich alle Downloads des aktuellen Batch entfernen?",
"description": "Messagebox text"
},
"remove_complete_downloads": {
@ -754,7 +754,7 @@
"description": "Menu text"
},
"remove_domain_complete_downloads_question": {
"message": "Wirklich alle fertigen Downloads mit Domain \"$DOMAIN$\" entfernen?",
"message": "Wirklich alle fertigen Downloads der Domain \"$DOMAIN$\" entfernen?",
"description": "Messagebox text",
"placeholders": {
"domain": {
@ -768,7 +768,7 @@
"description": "Menu text"
},
"remove_domain_downloads_question": {
"message": "Wirklich alle Downloads mit Domain \"$DOMAIN$\" entfernen?",
"message": "Wirklich alle Downloads der Domain \"$DOMAIN$\" entfernen?",
"description": "Messagebox text",
"placeholders": {
"domain": {
@ -812,11 +812,11 @@
}
},
"remove_missing": {
"message": "Fehlende Downloads entfernen",
"message": "Nicht vorhandene Downloads entfernen",
"description": "Menu text"
},
"remove_missing_downloads_question": {
"message": "Wirklich alle fehlenden Downloads entfernen?",
"message": "Wirklich alle nicht vorhandene Downloads entfernen?",
"description": "Messagebox text"
},
"remove_paused_downloads": {
@ -844,15 +844,15 @@
"description": "UI for renaming; currently unused"
},
"renamer_batch": {
"message": "Batch Nummer",
"message": "Batch-Nummer",
"description": "Mask text; see mask button"
},
"renamer_d": {
"message": "Datum hinzugefügt - Tag",
"message": "Datum: hinzugefügt - Tag",
"description": "Mask text; see mask button"
},
"renamer_date": {
"message": "Datum hinzugefügt",
"message": "Datum: hinzugefügt",
"description": "Mask text; see mask button"
},
"renamer_domain": {
@ -864,7 +864,7 @@
"description": "Mask text; see mask button"
},
"renamer_hh": {
"message": "Datum hinzugefügt - Stunde",
"message": "Datum: hinzugefügt - Stunde",
"description": "Mask text; see mask button"
},
"renamer_host": {
@ -872,7 +872,7 @@
"description": "Mask text; see mask button"
},
"renamer_idx": {
"message": "Fortlaufende Nummer im Batch",
"message": "Fortlaufende Nummer des Batch",
"description": "Mask text; see mask button"
},
"renamer_info": {
@ -880,11 +880,11 @@
"description": "Mask text; see mask button; do NOT translate any mentions of \"flat\"!"
},
"renamer_m": {
"message": "Datum hinzugefügt - Monat",
"message": "Datum: hinzugefügt - Monat",
"description": "Mask text; see mask button"
},
"renamer_mm": {
"message": "Datum hinzugefügt - Minute",
"message": "Datum: hinzugefügt - Minute",
"description": "Mask text; see mask button"
},
"renamer_name": {
@ -892,7 +892,7 @@
"description": "Mask text; see mask button"
},
"renamer_num": {
"message": "Alias für \"batch\"",
"message": "Alias für \"Batch\"",
"description": "Mask text; see mask button"
},
"renamer_qstring": {
@ -932,7 +932,7 @@
"description": "Mask text; see mask button"
},
"renamer_ss": {
"message": "Datum hinzugefügt - Sekunde",
"message": "Datum: hinzugefügt - Sekunde",
"description": "Mask text; see mask button"
},
"renamer_subdirs": {
@ -956,7 +956,7 @@
"description": "Mask text; see mask button"
},
"renamer_y": {
"message": "Datum hinzugefügt - Jahr",
"message": "Datum: hinzugefügt - Jahr",
"description": "Mask text; see mask button"
},
"renmask": {
@ -976,11 +976,11 @@
"description": "Messagebox text; pref/General"
},
"reset_layouts": {
"message": "Benutzeroberflächenanpassungen zurücksetzen",
"message": "Änderungen der Benutzeroberfläche zurücksetzen",
"description": "Button text; pref/General"
},
"reset_layouts_done": {
"message": "Alle gemerkten Benutzeroberflächenanpassungen zurückgesetzt! Tabs/Fenster müssen neu geladen werden.",
"message": "Alle gemerkten Anpassungen der Benutzeroberfläche zurückgesetzt! Tabs/Fenster müssen neu geladen werden.",
"description": "Messagebox text; pref/General"
},
"resume_download": {
@ -988,7 +988,7 @@
"description": "Action for resuming a download"
},
"retrying": {
"message": "Neuversuch",
"message": "neuer Versuch",
"description": "Status text"
},
"retrying_error": {
@ -1046,23 +1046,23 @@
"description": "Error message"
},
"set_mask": {
"message": "Umbenennungsmaske setzen",
"message": "Umbenennungsmaske festlegen",
"description": "Menu text; select window"
},
"set_mask_text": {
"message": "Neue Umbenennungsmaske setzen",
"message": "Neue Umbenennungsmaske festlegen",
"description": "dialog text"
},
"set_referrer": {
"message": "Referrer setzen",
"message": "Referrer festlegen",
"description": "menu text"
},
"set_referrer_text": {
"message": "Neuen Referrer setzen",
"message": "Neuen Referrer festlegen",
"description": "dialog text"
},
"single_batchexamples": {
"message": "Batches sind unterstützt, z.B.:",
"message": "Stapelverarbeitung (Batch) wird unterstützt, z.B.:",
"description": "Header text; single window"
},
"single_header": {

1224
_locales/sv/messages.json Normal file

File diff suppressed because it is too large Load Diff

1300
_locales/tr/messages.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1262,7 +1262,7 @@
"description": "Tooltip text; manager/downloads"
},
"tooltip_eta": {
"message": "重命名",
"message": "剩余时间",
"description": "Tooltip text; manager/downloads; Time"
},
"tooltip_from": {

View File

@ -15,7 +15,7 @@
"deffilter-aud": {
"label": "Audio",
"expr": "/\\.(?:mp3|wav|og(?:g|a)|flac|midi?|rm|aac|wma|mka|ape|opus)$/i",
"type": 1,
"type": 3,
"active": false,
"icon": "mp3"
},

View File

@ -30,7 +30,7 @@ export async function mostRecentBrowser(incognito: boolean): Promise<any> {
}
catch {
try {
window = await windows.getlastFocused();
window = await windows.getLastFocused();
if (window.type !== "normal") {
throw new Error("not a normal window");
}

View File

@ -1,7 +1,7 @@
{
"manifest_version": 2,
"name": "DownThemAll!",
"version": "4.2.5",
"version": "4.2.6",
"description": "__MSG_extensionDescription__",
"homepage_url": "https://downthemall.org/",

View File

@ -8,6 +8,7 @@
},
"scripts": {
"build": "util/build.py",
"build:cleanup": "rm -rf bundles",
"build:bundles": "webpack",
"build:regexps": "node util/makexregexps.js > data/xregexps.json",
"stats": "cloc --vcs=git --exclude-lang=Markdown,SVG",

View File

@ -32,6 +32,7 @@ PERM_IGNORED_FX = set(("downloads.shelf", "webRequest", "webRequestBlocking"))
PERM_IGNORED_CHROME = set(("menus", "sessions", "theme"))
SCRIPTS = [
"yarn build:cleanup",
"yarn build:regexps",
"yarn build:bundles",
]
@ -56,7 +57,7 @@ def files(additional_ignored):
yield file
def build(out, manifest, additional_ignored=set()):
with ZipFile(out, "w", compression=ZIP_DEFLATED, allowZip64=False, compresslevel=2) as zp:
with ZipFile(out, "w", compression=ZIP_DEFLATED, allowZip64=False) as zp:
for file in files(additional_ignored):
if str(file) == "manifest.json":
buf = manifest
@ -70,7 +71,7 @@ def build(out, manifest, additional_ignored=set()):
if file.suffix in UNCOMPRESSABLE:
zp.writestr(zinfo, buf, compress_type=ZIP_STORED)
else:
zp.writestr(zinfo, buf, compress_type=ZIP_DEFLATED, compresslevel=2)
zp.writestr(zinfo, buf, compress_type=ZIP_DEFLATED)
print(file)

View File

@ -6,7 +6,7 @@ langs = sorted(Path("_locales").glob("**/messages.json"), key=lambda p: p.parent
all = {}
for m in langs:
loc = m.parent.name
with m.open("r") as mp:
with m.open("r", encoding="utf-8") as mp:
lang = json.load(mp).get("language").get("message")
if not lang:
raise Exception(f"{m}: no language")