# ============================================================ # Screw Edge - Terminal Browser Downloader # https://screwedge.now # Usage: # - irm screwedge.now/pwsh | iex # - irm go.screwedge.now | iex # Auto-generated - DO NOT EDIT # ============================================================ # --- Self-relaunch in a dedicated, sized window --- if (-not $MyInvocation.MyCommand.Path) { $tmp = Join-Path $env:TEMP 'screwedge_browser.ps1' try { $s = irm 'https://screwedge.now/pwsh' } catch { $s = irm 'https://go.screwedge.now' } Set-Content $tmp $s -Encoding UTF8 Start-Process powershell -ArgumentList ('-NoProfile', '-ExecutionPolicy', 'Bypass', '-File', $tmp) return } # --- Console setup --- $Host.UI.RawUI.WindowTitle = 'Screw Edge - Browser Downloader' $e = [char]27 try { mode con cols=76 lines=30 | Out-Null } catch {} $Browsers = @( @{ Name = 'Firefox' Version = 'Latest' Shorthand = 'ff' Archs = @( @{ Name = 'x64' Shorthand = 'x64' Langs = @( @{ Name = 'ACH - Acholi'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ach'; Code = 'ach' } @{ Name = 'AF - Afrikaans'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=af'; Code = 'af' } @{ Name = 'AK - Akan'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ak'; Code = 'ak' } @{ Name = 'AM-ET - Amharic'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=am-et'; Code = 'am-et' } @{ Name = 'AN - Aragonese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=an'; Code = 'an' } @{ Name = 'AR - Arabic'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ar'; Code = 'ar' } @{ Name = 'AS - Assamese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=as'; Code = 'as' } @{ Name = 'AST - Asturian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ast'; Code = 'ast' } @{ Name = 'AZ - Azerbaijani'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=az'; Code = 'az' } @{ Name = 'AZZ - Highland Puebla Nahuatl'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=azz'; Code = 'azz' } @{ Name = 'BE - Belarusian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=be'; Code = 'be' } @{ Name = 'BG - Bulgarian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=bg'; Code = 'bg' } @{ Name = 'BM - Bambara'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=bm'; Code = 'bm' } @{ Name = 'BN - Bengali'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=bn'; Code = 'bn' } @{ Name = 'BN-BD - Bengali (Bangladesh)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=bn-BD'; Code = 'bn-BD' } @{ Name = 'BN-IN - Bengali (India)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=bn-IN'; Code = 'bn-IN' } @{ Name = 'BO - Tibetan'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=bo'; Code = 'bo' } @{ Name = 'BQI - Luri Bakhtiari'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=bqi'; Code = 'bqi' } @{ Name = 'BR - Breton'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=br'; Code = 'br' } @{ Name = 'BRX - Bodo'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=brx'; Code = 'brx' } @{ Name = 'BS - Bosnian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=bs'; Code = 'bs' } @{ Name = 'CA - Catalan'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ca'; Code = 'ca' } @{ Name = 'CA-VALENCIA - Catalan (Valencian)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ca-valencia'; Code = 'ca-valencia' } @{ Name = 'CAK - Kaqchikel'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=cak'; Code = 'cak' } @{ Name = 'CKB - Central Kurdish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ckb'; Code = 'ckb' } @{ Name = 'CRH - Crimean Tatar'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=crh'; Code = 'crh' } @{ Name = 'CS - Czech'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=cs'; Code = 'cs' } @{ Name = 'CSB - Kashubian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=csb'; Code = 'csb' } @{ Name = 'CY - Welsh'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=cy'; Code = 'cy' } @{ Name = 'DA - Danish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=da'; Code = 'da' } @{ Name = 'DBG - Debug Robot'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=dbg'; Code = 'dbg' } @{ Name = 'DE - German'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=de'; Code = 'de' } @{ Name = 'DE-AT - German (Austria)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=de-AT'; Code = 'de-AT' } @{ Name = 'DE-CH - German (Switzerland)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=de-CH'; Code = 'de-CH' } @{ Name = 'DE-DE - German (Germany)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=de-DE'; Code = 'de-DE' } @{ Name = 'DSB - Lower Sorbian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=dsb'; Code = 'dsb' } @{ Name = 'EE - Ewe'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ee'; Code = 'ee' } @{ Name = 'EL - Greek'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=el'; Code = 'el' } @{ Name = 'EN-AU - English (Australian)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=en-AU'; Code = 'en-AU' } @{ Name = 'EN-CA - English (Canadian)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=en-CA'; Code = 'en-CA' } @{ Name = 'EN-GB - English (British)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=en-GB'; Code = 'en-GB' } @{ Name = 'EN-NZ - English (New Zealand)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=en-NZ'; Code = 'en-NZ' } @{ Name = 'EN-US - English (US)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=en-US'; Code = 'en-US' } @{ Name = 'EN-ZA - English (South African)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=en-ZA'; Code = 'en-ZA' } @{ Name = 'EO - Esperanto'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=eo'; Code = 'eo' } @{ Name = 'ES - Spanish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=es'; Code = 'es' } @{ Name = 'ES-AR - Spanish (Argentina)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=es-AR'; Code = 'es-AR' } @{ Name = 'ES-CL - Spanish (Chile)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=es-CL'; Code = 'es-CL' } @{ Name = 'ES-ES - Spanish (Spain)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=es-ES'; Code = 'es-ES' } @{ Name = 'ES-MX - Spanish (Mexico)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=es-MX'; Code = 'es-MX' } @{ Name = 'ET - Estonian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=et'; Code = 'et' } @{ Name = 'EU - Basque'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=eu'; Code = 'eu' } @{ Name = 'FA - Persian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=fa'; Code = 'fa' } @{ Name = 'FF - Fulah'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ff'; Code = 'ff' } @{ Name = 'FI - Finnish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=fi'; Code = 'fi' } @{ Name = 'FJ-FJ - Fijian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=fj-FJ'; Code = 'fj-FJ' } @{ Name = 'FR - French'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=fr'; Code = 'fr' } @{ Name = 'FUR - Friulian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=fur'; Code = 'fur' } @{ Name = 'FUR-IT - Friulian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=fur-IT'; Code = 'fur-IT' } @{ Name = 'FY-NL - Frisian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=fy-NL'; Code = 'fy-NL' } @{ Name = 'GA - Irish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ga'; Code = 'ga' } @{ Name = 'GA-IE - Irish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ga-IE'; Code = 'ga-IE' } @{ Name = 'GD - Gaelic (Scotland)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=gd'; Code = 'gd' } @{ Name = 'GL - Galician'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=gl'; Code = 'gl' } @{ Name = 'GN - Guarani'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=gn'; Code = 'gn' } @{ Name = 'GU - Gujarati'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=gu'; Code = 'gu' } @{ Name = 'GU-IN - Gujarati (India)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=gu-IN'; Code = 'gu-IN' } @{ Name = 'HA - Hausa'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ha'; Code = 'ha' } @{ Name = 'HE - Hebrew'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=he'; Code = 'he' } @{ Name = 'HI - Hindi'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=hi'; Code = 'hi' } @{ Name = 'HI-IN - Hindi (India)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=hi-IN'; Code = 'hi-IN' } @{ Name = 'HR - Croatian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=hr'; Code = 'hr' } @{ Name = 'HSB - Upper Sorbian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=hsb'; Code = 'hsb' } @{ Name = 'HU - Hungarian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=hu'; Code = 'hu' } @{ Name = 'HY-AM - Armenian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=hy-AM'; Code = 'hy-AM' } @{ Name = 'HYE - Armenian Eastern Classic Orthography'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=hye'; Code = 'hye' } @{ Name = 'IA - Interlingua'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ia'; Code = 'ia' } @{ Name = 'ID - Indonesian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=id'; Code = 'id' } @{ Name = 'IG - Igbo'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ig'; Code = 'ig' } @{ Name = 'IS - Icelandic'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=is'; Code = 'is' } @{ Name = 'IT - Italian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=it'; Code = 'it' } @{ Name = 'JA - Japanese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ja'; Code = 'ja' } @{ Name = 'JA-JP-MAC - Japanese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ja-JP-mac'; Code = 'ja-JP-mac' } @{ Name = 'KA - Georgian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ka'; Code = 'ka' } @{ Name = 'KAB - Kabyle'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=kab'; Code = 'kab' } @{ Name = 'KK - Kazakh'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=kk'; Code = 'kk' } @{ Name = 'KM - Khmer'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=km'; Code = 'km' } @{ Name = 'KN - Kannada'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=kn'; Code = 'kn' } @{ Name = 'KO - Korean'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ko'; Code = 'ko' } @{ Name = 'KOK - Konkani'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=kok'; Code = 'kok' } @{ Name = 'KS - Kashmiri'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ks'; Code = 'ks' } @{ Name = 'KU - Kurdish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ku'; Code = 'ku' } @{ Name = 'LA - Latin'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=la'; Code = 'la' } @{ Name = 'LG - Luganda'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=lg'; Code = 'lg' } @{ Name = 'LIJ - Ligurian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=lij'; Code = 'lij' } @{ Name = 'LN - Lingala'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ln'; Code = 'ln' } @{ Name = 'LO - Lao'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=lo'; Code = 'lo' } @{ Name = 'LT - Lithuanian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=lt'; Code = 'lt' } @{ Name = 'LTG - Latgalian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ltg'; Code = 'ltg' } @{ Name = 'LV - Latvian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=lv'; Code = 'lv' } @{ Name = 'MAI - Maithili'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=mai'; Code = 'mai' } @{ Name = 'MEH - Mixteco Yucuhiti'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=meh'; Code = 'meh' } @{ Name = 'MG - Malagasy'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=mg'; Code = 'mg' } @{ Name = 'MI - Maori (Aotearoa)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=mi'; Code = 'mi' } @{ Name = 'MK - Macedonian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=mk'; Code = 'mk' } @{ Name = 'ML - Malayalam'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ml'; Code = 'ml' } @{ Name = 'MN - Mongolian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=mn'; Code = 'mn' } @{ Name = 'MR - Marathi'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=mr'; Code = 'mr' } @{ Name = 'MS - Malay'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ms'; Code = 'ms' } @{ Name = 'MY - Burmese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=my'; Code = 'my' } @{ Name = 'NB-NO - Norwegian (Bokmål)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=nb-NO'; Code = 'nb-NO' } @{ Name = 'NE-NP - Nepali'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ne-NP'; Code = 'ne-NP' } @{ Name = 'NL - Dutch'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=nl'; Code = 'nl' } @{ Name = 'NN-NO - Norwegian (Nynorsk)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=nn-NO'; Code = 'nn-NO' } @{ Name = 'NR - Ndebele, South'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=nr'; Code = 'nr' } @{ Name = 'NSO - Northern Sotho'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=nso'; Code = 'nso' } @{ Name = 'OC - Occitan (Lengadocian)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=oc'; Code = 'oc' } @{ Name = 'OR - Odia'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=or'; Code = 'or' } @{ Name = 'PA - Punjabi'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=pa'; Code = 'pa' } @{ Name = 'PA-IN - Punjabi (India)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=pa-IN'; Code = 'pa-IN' } @{ Name = 'PL - Polish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=pl'; Code = 'pl' } @{ Name = 'PT-BR - Portuguese (Brazilian)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=pt-BR'; Code = 'pt-BR' } @{ Name = 'PT-PT - Portuguese (Portugal)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=pt-PT'; Code = 'pt-PT' } @{ Name = 'RM - Romansh'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=rm'; Code = 'rm' } @{ Name = 'RO - Romanian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ro'; Code = 'ro' } @{ Name = 'RU - Russian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ru'; Code = 'ru' } @{ Name = 'RW - Kinyarwanda'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=rw'; Code = 'rw' } @{ Name = 'SA - Sanskrit'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=sa'; Code = 'sa' } @{ Name = 'SAH - Sakha'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=sah'; Code = 'sah' } @{ Name = 'SAT - Santali'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=sat'; Code = 'sat' } @{ Name = 'SC - Sardinian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=sc'; Code = 'sc' } @{ Name = 'SCN - Sicilian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=scn'; Code = 'scn' } @{ Name = 'SCO - Scots'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=sco'; Code = 'sco' } @{ Name = 'SI - Sinhala'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=si'; Code = 'si' } @{ Name = 'SK - Slovak'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=sk'; Code = 'sk' } @{ Name = 'SKR - Saraiki'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=skr'; Code = 'skr' } @{ Name = 'SL - Slovenian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=sl'; Code = 'sl' } @{ Name = 'SON - Songhai'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=son'; Code = 'son' } @{ Name = 'SQ - Albanian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=sq'; Code = 'sq' } @{ Name = 'SR - Serbian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=sr'; Code = 'sr' } @{ Name = 'SR-CYRL - Serbian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=sr-Cyrl'; Code = 'sr-Cyrl' } @{ Name = 'SR-LATN - Serbian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=sr-Latn'; Code = 'sr-Latn' } @{ Name = 'SS - Siswati'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ss'; Code = 'ss' } @{ Name = 'ST - Southern Sotho'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=st'; Code = 'st' } @{ Name = 'SV-SE - Swedish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=sv-SE'; Code = 'sv-SE' } @{ Name = 'SW - Swahili'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=sw'; Code = 'sw' } @{ Name = 'SZL - Silesian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=szl'; Code = 'szl' } @{ Name = 'TA - Tamil'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ta'; Code = 'ta' } @{ Name = 'TA-IN - Tamil (India)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ta-IN'; Code = 'ta-IN' } @{ Name = 'TA-LK - Tamil (Sri Lanka)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ta-LK'; Code = 'ta-LK' } @{ Name = 'TE - Telugu'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=te'; Code = 'te' } @{ Name = 'TG - Tajik'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=tg'; Code = 'tg' } @{ Name = 'TH - Thai'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=th'; Code = 'th' } @{ Name = 'TL - Tagalog'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=tl'; Code = 'tl' } @{ Name = 'TN - Tswana'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=tn'; Code = 'tn' } @{ Name = 'TR - Turkish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=tr'; Code = 'tr' } @{ Name = 'TRS - Triqui'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=trs'; Code = 'trs' } @{ Name = 'TS - Tsonga'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ts'; Code = 'ts' } @{ Name = 'TSZ - Purépecha'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=tsz'; Code = 'tsz' } @{ Name = 'TT-RU - Tatar'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=tt-RU'; Code = 'tt-RU' } @{ Name = 'UK - Ukrainian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=uk'; Code = 'uk' } @{ Name = 'UR - Urdu'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ur'; Code = 'ur' } @{ Name = 'UZ - Uzbek'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=uz'; Code = 'uz' } @{ Name = 'VE - Venda'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=ve'; Code = 've' } @{ Name = 'VI - Vietnamese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=vi'; Code = 'vi' } @{ Name = 'WO - Wolof'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=wo'; Code = 'wo' } @{ Name = 'XH - Xhosa'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=xh'; Code = 'xh' } @{ Name = 'YO - Yoruba'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=yo'; Code = 'yo' } @{ Name = 'ZH-CN - Chinese (Simplified)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=zh-CN'; Code = 'zh-CN' } @{ Name = 'ZH-TW - Chinese (Traditional)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=zh-TW'; Code = 'zh-TW' } @{ Name = 'ZU - Zulu'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64&lang=zu'; Code = 'zu' } ) } @{ Name = 'x86' Shorthand = 'x86' Langs = @( @{ Name = 'ACH - Acholi'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ach'; Code = 'ach' } @{ Name = 'AF - Afrikaans'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=af'; Code = 'af' } @{ Name = 'AK - Akan'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ak'; Code = 'ak' } @{ Name = 'AM-ET - Amharic'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=am-et'; Code = 'am-et' } @{ Name = 'AN - Aragonese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=an'; Code = 'an' } @{ Name = 'AR - Arabic'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ar'; Code = 'ar' } @{ Name = 'AS - Assamese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=as'; Code = 'as' } @{ Name = 'AST - Asturian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ast'; Code = 'ast' } @{ Name = 'AZ - Azerbaijani'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=az'; Code = 'az' } @{ Name = 'AZZ - Highland Puebla Nahuatl'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=azz'; Code = 'azz' } @{ Name = 'BE - Belarusian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=be'; Code = 'be' } @{ Name = 'BG - Bulgarian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=bg'; Code = 'bg' } @{ Name = 'BM - Bambara'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=bm'; Code = 'bm' } @{ Name = 'BN - Bengali'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=bn'; Code = 'bn' } @{ Name = 'BN-BD - Bengali (Bangladesh)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=bn-BD'; Code = 'bn-BD' } @{ Name = 'BN-IN - Bengali (India)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=bn-IN'; Code = 'bn-IN' } @{ Name = 'BO - Tibetan'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=bo'; Code = 'bo' } @{ Name = 'BQI - Luri Bakhtiari'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=bqi'; Code = 'bqi' } @{ Name = 'BR - Breton'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=br'; Code = 'br' } @{ Name = 'BRX - Bodo'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=brx'; Code = 'brx' } @{ Name = 'BS - Bosnian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=bs'; Code = 'bs' } @{ Name = 'CA - Catalan'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ca'; Code = 'ca' } @{ Name = 'CA-VALENCIA - Catalan (Valencian)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ca-valencia'; Code = 'ca-valencia' } @{ Name = 'CAK - Kaqchikel'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=cak'; Code = 'cak' } @{ Name = 'CKB - Central Kurdish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ckb'; Code = 'ckb' } @{ Name = 'CRH - Crimean Tatar'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=crh'; Code = 'crh' } @{ Name = 'CS - Czech'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=cs'; Code = 'cs' } @{ Name = 'CSB - Kashubian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=csb'; Code = 'csb' } @{ Name = 'CY - Welsh'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=cy'; Code = 'cy' } @{ Name = 'DA - Danish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=da'; Code = 'da' } @{ Name = 'DBG - Debug Robot'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=dbg'; Code = 'dbg' } @{ Name = 'DE - German'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=de'; Code = 'de' } @{ Name = 'DE-AT - German (Austria)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=de-AT'; Code = 'de-AT' } @{ Name = 'DE-CH - German (Switzerland)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=de-CH'; Code = 'de-CH' } @{ Name = 'DE-DE - German (Germany)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=de-DE'; Code = 'de-DE' } @{ Name = 'DSB - Lower Sorbian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=dsb'; Code = 'dsb' } @{ Name = 'EE - Ewe'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ee'; Code = 'ee' } @{ Name = 'EL - Greek'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=el'; Code = 'el' } @{ Name = 'EN-AU - English (Australian)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=en-AU'; Code = 'en-AU' } @{ Name = 'EN-CA - English (Canadian)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=en-CA'; Code = 'en-CA' } @{ Name = 'EN-GB - English (British)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=en-GB'; Code = 'en-GB' } @{ Name = 'EN-NZ - English (New Zealand)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=en-NZ'; Code = 'en-NZ' } @{ Name = 'EN-US - English (US)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=en-US'; Code = 'en-US' } @{ Name = 'EN-ZA - English (South African)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=en-ZA'; Code = 'en-ZA' } @{ Name = 'EO - Esperanto'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=eo'; Code = 'eo' } @{ Name = 'ES - Spanish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=es'; Code = 'es' } @{ Name = 'ES-AR - Spanish (Argentina)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=es-AR'; Code = 'es-AR' } @{ Name = 'ES-CL - Spanish (Chile)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=es-CL'; Code = 'es-CL' } @{ Name = 'ES-ES - Spanish (Spain)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=es-ES'; Code = 'es-ES' } @{ Name = 'ES-MX - Spanish (Mexico)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=es-MX'; Code = 'es-MX' } @{ Name = 'ET - Estonian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=et'; Code = 'et' } @{ Name = 'EU - Basque'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=eu'; Code = 'eu' } @{ Name = 'FA - Persian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=fa'; Code = 'fa' } @{ Name = 'FF - Fulah'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ff'; Code = 'ff' } @{ Name = 'FI - Finnish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=fi'; Code = 'fi' } @{ Name = 'FJ-FJ - Fijian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=fj-FJ'; Code = 'fj-FJ' } @{ Name = 'FR - French'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=fr'; Code = 'fr' } @{ Name = 'FUR - Friulian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=fur'; Code = 'fur' } @{ Name = 'FUR-IT - Friulian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=fur-IT'; Code = 'fur-IT' } @{ Name = 'FY-NL - Frisian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=fy-NL'; Code = 'fy-NL' } @{ Name = 'GA - Irish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ga'; Code = 'ga' } @{ Name = 'GA-IE - Irish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ga-IE'; Code = 'ga-IE' } @{ Name = 'GD - Gaelic (Scotland)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=gd'; Code = 'gd' } @{ Name = 'GL - Galician'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=gl'; Code = 'gl' } @{ Name = 'GN - Guarani'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=gn'; Code = 'gn' } @{ Name = 'GU - Gujarati'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=gu'; Code = 'gu' } @{ Name = 'GU-IN - Gujarati (India)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=gu-IN'; Code = 'gu-IN' } @{ Name = 'HA - Hausa'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ha'; Code = 'ha' } @{ Name = 'HE - Hebrew'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=he'; Code = 'he' } @{ Name = 'HI - Hindi'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=hi'; Code = 'hi' } @{ Name = 'HI-IN - Hindi (India)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=hi-IN'; Code = 'hi-IN' } @{ Name = 'HR - Croatian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=hr'; Code = 'hr' } @{ Name = 'HSB - Upper Sorbian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=hsb'; Code = 'hsb' } @{ Name = 'HU - Hungarian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=hu'; Code = 'hu' } @{ Name = 'HY-AM - Armenian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=hy-AM'; Code = 'hy-AM' } @{ Name = 'HYE - Armenian Eastern Classic Orthography'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=hye'; Code = 'hye' } @{ Name = 'IA - Interlingua'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ia'; Code = 'ia' } @{ Name = 'ID - Indonesian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=id'; Code = 'id' } @{ Name = 'IG - Igbo'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ig'; Code = 'ig' } @{ Name = 'IS - Icelandic'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=is'; Code = 'is' } @{ Name = 'IT - Italian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=it'; Code = 'it' } @{ Name = 'JA - Japanese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ja'; Code = 'ja' } @{ Name = 'JA-JP-MAC - Japanese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ja-JP-mac'; Code = 'ja-JP-mac' } @{ Name = 'KA - Georgian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ka'; Code = 'ka' } @{ Name = 'KAB - Kabyle'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=kab'; Code = 'kab' } @{ Name = 'KK - Kazakh'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=kk'; Code = 'kk' } @{ Name = 'KM - Khmer'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=km'; Code = 'km' } @{ Name = 'KN - Kannada'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=kn'; Code = 'kn' } @{ Name = 'KO - Korean'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ko'; Code = 'ko' } @{ Name = 'KOK - Konkani'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=kok'; Code = 'kok' } @{ Name = 'KS - Kashmiri'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ks'; Code = 'ks' } @{ Name = 'KU - Kurdish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ku'; Code = 'ku' } @{ Name = 'LA - Latin'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=la'; Code = 'la' } @{ Name = 'LG - Luganda'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=lg'; Code = 'lg' } @{ Name = 'LIJ - Ligurian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=lij'; Code = 'lij' } @{ Name = 'LN - Lingala'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ln'; Code = 'ln' } @{ Name = 'LO - Lao'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=lo'; Code = 'lo' } @{ Name = 'LT - Lithuanian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=lt'; Code = 'lt' } @{ Name = 'LTG - Latgalian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ltg'; Code = 'ltg' } @{ Name = 'LV - Latvian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=lv'; Code = 'lv' } @{ Name = 'MAI - Maithili'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=mai'; Code = 'mai' } @{ Name = 'MEH - Mixteco Yucuhiti'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=meh'; Code = 'meh' } @{ Name = 'MG - Malagasy'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=mg'; Code = 'mg' } @{ Name = 'MI - Maori (Aotearoa)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=mi'; Code = 'mi' } @{ Name = 'MK - Macedonian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=mk'; Code = 'mk' } @{ Name = 'ML - Malayalam'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ml'; Code = 'ml' } @{ Name = 'MN - Mongolian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=mn'; Code = 'mn' } @{ Name = 'MR - Marathi'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=mr'; Code = 'mr' } @{ Name = 'MS - Malay'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ms'; Code = 'ms' } @{ Name = 'MY - Burmese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=my'; Code = 'my' } @{ Name = 'NB-NO - Norwegian (Bokmål)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=nb-NO'; Code = 'nb-NO' } @{ Name = 'NE-NP - Nepali'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ne-NP'; Code = 'ne-NP' } @{ Name = 'NL - Dutch'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=nl'; Code = 'nl' } @{ Name = 'NN-NO - Norwegian (Nynorsk)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=nn-NO'; Code = 'nn-NO' } @{ Name = 'NR - Ndebele, South'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=nr'; Code = 'nr' } @{ Name = 'NSO - Northern Sotho'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=nso'; Code = 'nso' } @{ Name = 'OC - Occitan (Lengadocian)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=oc'; Code = 'oc' } @{ Name = 'OR - Odia'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=or'; Code = 'or' } @{ Name = 'PA - Punjabi'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=pa'; Code = 'pa' } @{ Name = 'PA-IN - Punjabi (India)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=pa-IN'; Code = 'pa-IN' } @{ Name = 'PL - Polish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=pl'; Code = 'pl' } @{ Name = 'PT-BR - Portuguese (Brazilian)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=pt-BR'; Code = 'pt-BR' } @{ Name = 'PT-PT - Portuguese (Portugal)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=pt-PT'; Code = 'pt-PT' } @{ Name = 'RM - Romansh'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=rm'; Code = 'rm' } @{ Name = 'RO - Romanian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ro'; Code = 'ro' } @{ Name = 'RU - Russian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ru'; Code = 'ru' } @{ Name = 'RW - Kinyarwanda'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=rw'; Code = 'rw' } @{ Name = 'SA - Sanskrit'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=sa'; Code = 'sa' } @{ Name = 'SAH - Sakha'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=sah'; Code = 'sah' } @{ Name = 'SAT - Santali'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=sat'; Code = 'sat' } @{ Name = 'SC - Sardinian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=sc'; Code = 'sc' } @{ Name = 'SCN - Sicilian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=scn'; Code = 'scn' } @{ Name = 'SCO - Scots'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=sco'; Code = 'sco' } @{ Name = 'SI - Sinhala'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=si'; Code = 'si' } @{ Name = 'SK - Slovak'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=sk'; Code = 'sk' } @{ Name = 'SKR - Saraiki'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=skr'; Code = 'skr' } @{ Name = 'SL - Slovenian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=sl'; Code = 'sl' } @{ Name = 'SON - Songhai'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=son'; Code = 'son' } @{ Name = 'SQ - Albanian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=sq'; Code = 'sq' } @{ Name = 'SR - Serbian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=sr'; Code = 'sr' } @{ Name = 'SR-CYRL - Serbian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=sr-Cyrl'; Code = 'sr-Cyrl' } @{ Name = 'SR-LATN - Serbian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=sr-Latn'; Code = 'sr-Latn' } @{ Name = 'SS - Siswati'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ss'; Code = 'ss' } @{ Name = 'ST - Southern Sotho'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=st'; Code = 'st' } @{ Name = 'SV-SE - Swedish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=sv-SE'; Code = 'sv-SE' } @{ Name = 'SW - Swahili'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=sw'; Code = 'sw' } @{ Name = 'SZL - Silesian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=szl'; Code = 'szl' } @{ Name = 'TA - Tamil'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ta'; Code = 'ta' } @{ Name = 'TA-IN - Tamil (India)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ta-IN'; Code = 'ta-IN' } @{ Name = 'TA-LK - Tamil (Sri Lanka)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ta-LK'; Code = 'ta-LK' } @{ Name = 'TE - Telugu'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=te'; Code = 'te' } @{ Name = 'TG - Tajik'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=tg'; Code = 'tg' } @{ Name = 'TH - Thai'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=th'; Code = 'th' } @{ Name = 'TL - Tagalog'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=tl'; Code = 'tl' } @{ Name = 'TN - Tswana'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=tn'; Code = 'tn' } @{ Name = 'TR - Turkish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=tr'; Code = 'tr' } @{ Name = 'TRS - Triqui'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=trs'; Code = 'trs' } @{ Name = 'TS - Tsonga'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ts'; Code = 'ts' } @{ Name = 'TSZ - Purépecha'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=tsz'; Code = 'tsz' } @{ Name = 'TT-RU - Tatar'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=tt-RU'; Code = 'tt-RU' } @{ Name = 'UK - Ukrainian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=uk'; Code = 'uk' } @{ Name = 'UR - Urdu'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ur'; Code = 'ur' } @{ Name = 'UZ - Uzbek'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=uz'; Code = 'uz' } @{ Name = 'VE - Venda'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=ve'; Code = 've' } @{ Name = 'VI - Vietnamese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=vi'; Code = 'vi' } @{ Name = 'WO - Wolof'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=wo'; Code = 'wo' } @{ Name = 'XH - Xhosa'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=xh'; Code = 'xh' } @{ Name = 'YO - Yoruba'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=yo'; Code = 'yo' } @{ Name = 'ZH-CN - Chinese (Simplified)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=zh-CN'; Code = 'zh-CN' } @{ Name = 'ZH-TW - Chinese (Traditional)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=zh-TW'; Code = 'zh-TW' } @{ Name = 'ZU - Zulu'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win&lang=zu'; Code = 'zu' } ) } @{ Name = 'ARM' Shorthand = 'arm' Langs = @( @{ Name = 'ACH - Acholi'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ach'; Code = 'ach' } @{ Name = 'AF - Afrikaans'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=af'; Code = 'af' } @{ Name = 'AK - Akan'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ak'; Code = 'ak' } @{ Name = 'AM-ET - Amharic'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=am-et'; Code = 'am-et' } @{ Name = 'AN - Aragonese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=an'; Code = 'an' } @{ Name = 'AR - Arabic'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ar'; Code = 'ar' } @{ Name = 'AS - Assamese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=as'; Code = 'as' } @{ Name = 'AST - Asturian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ast'; Code = 'ast' } @{ Name = 'AZ - Azerbaijani'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=az'; Code = 'az' } @{ Name = 'AZZ - Highland Puebla Nahuatl'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=azz'; Code = 'azz' } @{ Name = 'BE - Belarusian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=be'; Code = 'be' } @{ Name = 'BG - Bulgarian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=bg'; Code = 'bg' } @{ Name = 'BM - Bambara'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=bm'; Code = 'bm' } @{ Name = 'BN - Bengali'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=bn'; Code = 'bn' } @{ Name = 'BN-BD - Bengali (Bangladesh)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=bn-BD'; Code = 'bn-BD' } @{ Name = 'BN-IN - Bengali (India)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=bn-IN'; Code = 'bn-IN' } @{ Name = 'BO - Tibetan'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=bo'; Code = 'bo' } @{ Name = 'BQI - Luri Bakhtiari'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=bqi'; Code = 'bqi' } @{ Name = 'BR - Breton'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=br'; Code = 'br' } @{ Name = 'BRX - Bodo'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=brx'; Code = 'brx' } @{ Name = 'BS - Bosnian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=bs'; Code = 'bs' } @{ Name = 'CA - Catalan'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ca'; Code = 'ca' } @{ Name = 'CA-VALENCIA - Catalan (Valencian)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ca-valencia'; Code = 'ca-valencia' } @{ Name = 'CAK - Kaqchikel'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=cak'; Code = 'cak' } @{ Name = 'CKB - Central Kurdish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ckb'; Code = 'ckb' } @{ Name = 'CRH - Crimean Tatar'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=crh'; Code = 'crh' } @{ Name = 'CS - Czech'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=cs'; Code = 'cs' } @{ Name = 'CSB - Kashubian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=csb'; Code = 'csb' } @{ Name = 'CY - Welsh'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=cy'; Code = 'cy' } @{ Name = 'DA - Danish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=da'; Code = 'da' } @{ Name = 'DBG - Debug Robot'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=dbg'; Code = 'dbg' } @{ Name = 'DE - German'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=de'; Code = 'de' } @{ Name = 'DE-AT - German (Austria)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=de-AT'; Code = 'de-AT' } @{ Name = 'DE-CH - German (Switzerland)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=de-CH'; Code = 'de-CH' } @{ Name = 'DE-DE - German (Germany)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=de-DE'; Code = 'de-DE' } @{ Name = 'DSB - Lower Sorbian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=dsb'; Code = 'dsb' } @{ Name = 'EE - Ewe'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ee'; Code = 'ee' } @{ Name = 'EL - Greek'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=el'; Code = 'el' } @{ Name = 'EN-AU - English (Australian)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=en-AU'; Code = 'en-AU' } @{ Name = 'EN-CA - English (Canadian)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=en-CA'; Code = 'en-CA' } @{ Name = 'EN-GB - English (British)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=en-GB'; Code = 'en-GB' } @{ Name = 'EN-NZ - English (New Zealand)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=en-NZ'; Code = 'en-NZ' } @{ Name = 'EN-US - English (US)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=en-US'; Code = 'en-US' } @{ Name = 'EN-ZA - English (South African)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=en-ZA'; Code = 'en-ZA' } @{ Name = 'EO - Esperanto'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=eo'; Code = 'eo' } @{ Name = 'ES - Spanish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=es'; Code = 'es' } @{ Name = 'ES-AR - Spanish (Argentina)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=es-AR'; Code = 'es-AR' } @{ Name = 'ES-CL - Spanish (Chile)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=es-CL'; Code = 'es-CL' } @{ Name = 'ES-ES - Spanish (Spain)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=es-ES'; Code = 'es-ES' } @{ Name = 'ES-MX - Spanish (Mexico)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=es-MX'; Code = 'es-MX' } @{ Name = 'ET - Estonian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=et'; Code = 'et' } @{ Name = 'EU - Basque'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=eu'; Code = 'eu' } @{ Name = 'FA - Persian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=fa'; Code = 'fa' } @{ Name = 'FF - Fulah'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ff'; Code = 'ff' } @{ Name = 'FI - Finnish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=fi'; Code = 'fi' } @{ Name = 'FJ-FJ - Fijian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=fj-FJ'; Code = 'fj-FJ' } @{ Name = 'FR - French'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=fr'; Code = 'fr' } @{ Name = 'FUR - Friulian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=fur'; Code = 'fur' } @{ Name = 'FUR-IT - Friulian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=fur-IT'; Code = 'fur-IT' } @{ Name = 'FY-NL - Frisian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=fy-NL'; Code = 'fy-NL' } @{ Name = 'GA - Irish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ga'; Code = 'ga' } @{ Name = 'GA-IE - Irish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ga-IE'; Code = 'ga-IE' } @{ Name = 'GD - Gaelic (Scotland)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=gd'; Code = 'gd' } @{ Name = 'GL - Galician'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=gl'; Code = 'gl' } @{ Name = 'GN - Guarani'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=gn'; Code = 'gn' } @{ Name = 'GU - Gujarati'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=gu'; Code = 'gu' } @{ Name = 'GU-IN - Gujarati (India)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=gu-IN'; Code = 'gu-IN' } @{ Name = 'HA - Hausa'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ha'; Code = 'ha' } @{ Name = 'HE - Hebrew'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=he'; Code = 'he' } @{ Name = 'HI - Hindi'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=hi'; Code = 'hi' } @{ Name = 'HI-IN - Hindi (India)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=hi-IN'; Code = 'hi-IN' } @{ Name = 'HR - Croatian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=hr'; Code = 'hr' } @{ Name = 'HSB - Upper Sorbian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=hsb'; Code = 'hsb' } @{ Name = 'HU - Hungarian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=hu'; Code = 'hu' } @{ Name = 'HY-AM - Armenian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=hy-AM'; Code = 'hy-AM' } @{ Name = 'HYE - Armenian Eastern Classic Orthography'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=hye'; Code = 'hye' } @{ Name = 'IA - Interlingua'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ia'; Code = 'ia' } @{ Name = 'ID - Indonesian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=id'; Code = 'id' } @{ Name = 'IG - Igbo'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ig'; Code = 'ig' } @{ Name = 'IS - Icelandic'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=is'; Code = 'is' } @{ Name = 'IT - Italian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=it'; Code = 'it' } @{ Name = 'JA - Japanese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ja'; Code = 'ja' } @{ Name = 'JA-JP-MAC - Japanese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ja-JP-mac'; Code = 'ja-JP-mac' } @{ Name = 'KA - Georgian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ka'; Code = 'ka' } @{ Name = 'KAB - Kabyle'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=kab'; Code = 'kab' } @{ Name = 'KK - Kazakh'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=kk'; Code = 'kk' } @{ Name = 'KM - Khmer'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=km'; Code = 'km' } @{ Name = 'KN - Kannada'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=kn'; Code = 'kn' } @{ Name = 'KO - Korean'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ko'; Code = 'ko' } @{ Name = 'KOK - Konkani'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=kok'; Code = 'kok' } @{ Name = 'KS - Kashmiri'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ks'; Code = 'ks' } @{ Name = 'KU - Kurdish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ku'; Code = 'ku' } @{ Name = 'LA - Latin'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=la'; Code = 'la' } @{ Name = 'LG - Luganda'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=lg'; Code = 'lg' } @{ Name = 'LIJ - Ligurian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=lij'; Code = 'lij' } @{ Name = 'LN - Lingala'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ln'; Code = 'ln' } @{ Name = 'LO - Lao'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=lo'; Code = 'lo' } @{ Name = 'LT - Lithuanian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=lt'; Code = 'lt' } @{ Name = 'LTG - Latgalian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ltg'; Code = 'ltg' } @{ Name = 'LV - Latvian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=lv'; Code = 'lv' } @{ Name = 'MAI - Maithili'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=mai'; Code = 'mai' } @{ Name = 'MEH - Mixteco Yucuhiti'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=meh'; Code = 'meh' } @{ Name = 'MG - Malagasy'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=mg'; Code = 'mg' } @{ Name = 'MI - Maori (Aotearoa)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=mi'; Code = 'mi' } @{ Name = 'MK - Macedonian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=mk'; Code = 'mk' } @{ Name = 'ML - Malayalam'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ml'; Code = 'ml' } @{ Name = 'MN - Mongolian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=mn'; Code = 'mn' } @{ Name = 'MR - Marathi'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=mr'; Code = 'mr' } @{ Name = 'MS - Malay'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ms'; Code = 'ms' } @{ Name = 'MY - Burmese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=my'; Code = 'my' } @{ Name = 'NB-NO - Norwegian (Bokmål)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=nb-NO'; Code = 'nb-NO' } @{ Name = 'NE-NP - Nepali'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ne-NP'; Code = 'ne-NP' } @{ Name = 'NL - Dutch'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=nl'; Code = 'nl' } @{ Name = 'NN-NO - Norwegian (Nynorsk)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=nn-NO'; Code = 'nn-NO' } @{ Name = 'NR - Ndebele, South'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=nr'; Code = 'nr' } @{ Name = 'NSO - Northern Sotho'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=nso'; Code = 'nso' } @{ Name = 'OC - Occitan (Lengadocian)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=oc'; Code = 'oc' } @{ Name = 'OR - Odia'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=or'; Code = 'or' } @{ Name = 'PA - Punjabi'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=pa'; Code = 'pa' } @{ Name = 'PA-IN - Punjabi (India)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=pa-IN'; Code = 'pa-IN' } @{ Name = 'PL - Polish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=pl'; Code = 'pl' } @{ Name = 'PT-BR - Portuguese (Brazilian)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=pt-BR'; Code = 'pt-BR' } @{ Name = 'PT-PT - Portuguese (Portugal)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=pt-PT'; Code = 'pt-PT' } @{ Name = 'RM - Romansh'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=rm'; Code = 'rm' } @{ Name = 'RO - Romanian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ro'; Code = 'ro' } @{ Name = 'RU - Russian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ru'; Code = 'ru' } @{ Name = 'RW - Kinyarwanda'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=rw'; Code = 'rw' } @{ Name = 'SA - Sanskrit'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=sa'; Code = 'sa' } @{ Name = 'SAH - Sakha'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=sah'; Code = 'sah' } @{ Name = 'SAT - Santali'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=sat'; Code = 'sat' } @{ Name = 'SC - Sardinian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=sc'; Code = 'sc' } @{ Name = 'SCN - Sicilian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=scn'; Code = 'scn' } @{ Name = 'SCO - Scots'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=sco'; Code = 'sco' } @{ Name = 'SI - Sinhala'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=si'; Code = 'si' } @{ Name = 'SK - Slovak'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=sk'; Code = 'sk' } @{ Name = 'SKR - Saraiki'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=skr'; Code = 'skr' } @{ Name = 'SL - Slovenian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=sl'; Code = 'sl' } @{ Name = 'SON - Songhai'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=son'; Code = 'son' } @{ Name = 'SQ - Albanian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=sq'; Code = 'sq' } @{ Name = 'SR - Serbian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=sr'; Code = 'sr' } @{ Name = 'SR-CYRL - Serbian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=sr-Cyrl'; Code = 'sr-Cyrl' } @{ Name = 'SR-LATN - Serbian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=sr-Latn'; Code = 'sr-Latn' } @{ Name = 'SS - Siswati'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ss'; Code = 'ss' } @{ Name = 'ST - Southern Sotho'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=st'; Code = 'st' } @{ Name = 'SV-SE - Swedish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=sv-SE'; Code = 'sv-SE' } @{ Name = 'SW - Swahili'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=sw'; Code = 'sw' } @{ Name = 'SZL - Silesian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=szl'; Code = 'szl' } @{ Name = 'TA - Tamil'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ta'; Code = 'ta' } @{ Name = 'TA-IN - Tamil (India)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ta-IN'; Code = 'ta-IN' } @{ Name = 'TA-LK - Tamil (Sri Lanka)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ta-LK'; Code = 'ta-LK' } @{ Name = 'TE - Telugu'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=te'; Code = 'te' } @{ Name = 'TG - Tajik'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=tg'; Code = 'tg' } @{ Name = 'TH - Thai'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=th'; Code = 'th' } @{ Name = 'TL - Tagalog'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=tl'; Code = 'tl' } @{ Name = 'TN - Tswana'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=tn'; Code = 'tn' } @{ Name = 'TR - Turkish'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=tr'; Code = 'tr' } @{ Name = 'TRS - Triqui'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=trs'; Code = 'trs' } @{ Name = 'TS - Tsonga'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ts'; Code = 'ts' } @{ Name = 'TSZ - Purépecha'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=tsz'; Code = 'tsz' } @{ Name = 'TT-RU - Tatar'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=tt-RU'; Code = 'tt-RU' } @{ Name = 'UK - Ukrainian'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=uk'; Code = 'uk' } @{ Name = 'UR - Urdu'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ur'; Code = 'ur' } @{ Name = 'UZ - Uzbek'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=uz'; Code = 'uz' } @{ Name = 'VE - Venda'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=ve'; Code = 've' } @{ Name = 'VI - Vietnamese'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=vi'; Code = 'vi' } @{ Name = 'WO - Wolof'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=wo'; Code = 'wo' } @{ Name = 'XH - Xhosa'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=xh'; Code = 'xh' } @{ Name = 'YO - Yoruba'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=yo'; Code = 'yo' } @{ Name = 'ZH-CN - Chinese (Simplified)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=zh-CN'; Code = 'zh-CN' } @{ Name = 'ZH-TW - Chinese (Traditional)'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=zh-TW'; Code = 'zh-TW' } @{ Name = 'ZU - Zulu'; Link = 'https://download.mozilla.org/?product=firefox-latest&os=win64-aarch64&lang=zu'; Code = 'zu' } ) } ) } @{ Name = 'Floorp Browser' Version = 'v12.13.0' Shorthand = 'fl' Archs = @( @{ Name = 'x64' Shorthand = 'x64' Langs = @( @{ Name = 'EN - English'; Link = 'https://github.com/Floorp-Projects/Floorp/releases/download/v12.13.0/floorp-windows-x86_64.installer.exe'; Code = '' } ) } ) } @{ Name = 'LibreWolf' Version = '146.0.1-1' Shorthand = 'lw' Archs = @( @{ Name = 'x64' Shorthand = 'x64' Langs = @( @{ Name = 'EN - English'; Link = 'https://gitlab.com/api/v4/projects/44042130/packages/generic/librewolf/146.0.1-1/librewolf-146.0.1-1-windows-x86_64-setup.exe'; Code = '' } ) } @{ Name = 'x86' Shorthand = 'x86' Langs = @( @{ Name = 'EN - English'; Link = 'https://gitlab.com/api/v4/projects/44042130/packages/generic/librewolf/146.0.1-1/librewolf-146.0.1-1-windows-i686-setup.exe'; Code = '' } ) } ) } @{ Name = 'Zen Browser' Version = '1.19.11b' Shorthand = 'zen' Archs = @( @{ Name = 'x64' Shorthand = 'x64' Langs = @( @{ Name = 'EN - English'; Link = 'https://github.com/zen-browser/desktop/releases/download/1.19.11b/zen.installer.exe'; Code = '' } ) } @{ Name = 'ARM' Shorthand = 'arm' Langs = @( @{ Name = 'EN - English'; Link = 'https://github.com/zen-browser/desktop/releases/download/1.19.11b/zen.installer-arm64.exe'; Code = '' } ) } ) } @{ Name = 'Brave Browser' Version = 'v1.89.145' Shorthand = 'brv' Archs = @( @{ Name = 'x64' Shorthand = 'x64' Langs = @( @{ Name = 'EN - English'; Link = 'https://github.com/brave/brave-browser/releases/download/v1.89.145/BraveBrowserStandaloneSetup.exe'; Code = '' } ) } @{ Name = 'ARM' Shorthand = 'arm' Langs = @( @{ Name = 'EN - English'; Link = 'https://github.com/brave/brave-browser/releases/download/v1.89.145/BraveBrowserStandaloneSetupArm64.exe'; Code = '' } ) } ) } @{ Name = 'Google Chrome' Version = 'Latest' Shorthand = 'gc' Archs = @( @{ Name = 'x64' Shorthand = 'x64' Langs = @( @{ Name = 'ALL - Bundles all languages'; Link = 'https://dl.google.com/tag/s/appguid%3D%7B8A69D345-D564-463C-AFF1-A69D9E530F96%7D%26iid%3D%7BF6F7985F-126C-1371-171F-F97FB9241140%7D%26lang%3Den%26browser%3D3%26usagestats%3D0%26appname%3DGoogle%2520Chrome%26needsadmin%3Dprefers%26ap%3D-arch_x64-statsdef_1%26installdataindex%3Dempty/update2/installers/ChromeSetup.exe'; Code = '' } ) } @{ Name = 'x86' Shorthand = 'x86' Langs = @( @{ Name = 'ALL - Bundles all languages'; Link = 'https://dl.google.com/tag/s/appguid%3D%7B8A69D345-D564-463C-AFF1-A69D9E530F96%7D%26iid%3D%7BF6F7985F-126C-1371-171F-F97FB9241140%7D%26lang%3Den%26browser%3D3%26usagestats%3D0%26appname%3DGoogle%2520Chrome%26needsadmin%3Dprefers%26ap%3D-arch_x86-statsdef_1%26installdataindex%3Dempty/update2/installers/ChromeSetup.exe'; Code = '' } ) } @{ Name = 'ARM' Shorthand = 'arm' Langs = @( @{ Name = 'ALL - Bundles all languages'; Link = 'https://dl.google.com/tag/s/appguid%3D%7B8A69D345-D564-463C-AFF1-A69D9E530F96%7D%26iid%3D%7B60FE1734-68D3-B6F1-107D-182E641FA582%7D%26lang%3Den%26browser%3D3%26usagestats%3D0%26appname%3DGoogle%2520Chrome%26needsadmin%3Dprefers%26ap%3D-arch_arm-statsdef_1%26installdataindex%3Dempty/update2/installers/ChromeSetup.exe'; Code = '' } ) } ) } @{ Name = 'Opera GX' Version = '130.0.5847.108' Shorthand = 'ogx' Archs = @( @{ Name = 'x64' Shorthand = 'x64' Langs = @( @{ Name = 'EN - English'; Link = 'https://download3.operacdn.com/pub/opera_gx/130.0.5847.108/win/Opera_GX_130.0.5847.108_Setup_x64.exe'; Code = '' } ) } @{ Name = 'x32' Shorthand = 'x32' Langs = @( @{ Name = 'EN - English'; Link = 'https://download3.operacdn.com/pub/opera_gx/130.0.5847.108/win/Opera_GX_130.0.5847.108_Setup.exe'; Code = '' } ) } ) } @{ Name = 'Ungoogled Chromium' Version = '147.0.7727.116-1.1' Shorthand = 'uc' Archs = @( @{ Name = 'x64' Shorthand = 'x64' Langs = @( @{ Name = 'UNK - Unknown (Default english)'; Link = 'https://github.com/ungoogled-software/ungoogled-chromium-windows/releases/download/147.0.7727.116-1.1/ungoogled-chromium_147.0.7727.116-1.1_installer_x64.exe'; Code = '' } ) } @{ Name = 'x86' Shorthand = 'x86' Langs = @( @{ Name = 'UNK - Unknown (Default english)'; Link = 'https://github.com/ungoogled-software/ungoogled-chromium-windows/releases/download/147.0.7727.116-1.1/ungoogled-chromium_147.0.7727.116-1.1_installer_x86.exe'; Code = '' } ) } @{ Name = 'arm64' Shorthand = 'arm64' Langs = @( @{ Name = 'UNK - Unknown (Default english)'; Link = 'https://github.com/ungoogled-software/ungoogled-chromium-windows/releases/download/147.0.7727.116-1.1/ungoogled-chromium_147.0.7727.116-1.1_installer_arm64.exe'; Code = '' } ) } ) } @{ Name = 'Hydra' Version = 'v2025.09.28' Shorthand = 'hyd' Archs = @( @{ Name = 'x64' Shorthand = 'x64' Langs = @( @{ Name = 'EN - English'; Link = 'http://http.screwedge.now/https://github.com/Eclipse-Community/UXP/releases/download/v2025.09.28/hydra-2025.09.28.win64.installer.exe'; Code = '' } ) } @{ Name = 'x86' Shorthand = 'x86' Langs = @( @{ Name = 'EN - English'; Link = 'http://http.screwedge.now/https://github.com/Eclipse-Community/UXP/releases/download/v2025.09.28/hydra-2025.09.28.win32.installer.exe'; Code = '' } ) } ) } @{ Name = 'Lun3r' Version = 'v2025.09.28' Shorthand = 'lun' Archs = @( @{ Name = 'x64' Shorthand = 'x64' Langs = @( @{ Name = 'EN - English'; Link = 'http://http.screwedge.now/https://github.com/Eclipse-Community/UXP/releases/download/v2025.09.28/lun3r-2025.09.28.win64.installer.exe'; Code = '' } ) } @{ Name = 'x86' Shorthand = 'x86' Langs = @( @{ Name = 'EN - English'; Link = 'http://http.screwedge.now/https://github.com/Eclipse-Community/UXP/releases/download/v2025.09.28/lun3r-2025.09.28.win32.installer.exe'; Code = '' } ) } ) } @{ Name = 'MyPal68 (ZIP)' Version = '78.0.2' Shorthand = 'mp' Archs = @( @{ Name = 'x64' Shorthand = 'x64' Langs = @( @{ Name = 'EN - English'; Link = 'http://http.screwedge.now/https://github.com/Feodor2/Mypal68/releases/download/78.0.2/mypal-78.0.2.en-US.win64.zip'; Code = '' } ) } @{ Name = 'x86' Shorthand = 'x86' Langs = @( @{ Name = 'EN - English'; Link = 'http://http.screwedge.now/https://github.com/Feodor2/Mypal68/releases/download/78.0.2/mypal-78.0.2.en-US.win32.zip'; Code = '' } ) } @{ Name = 'x86 (SSE enabled)' Shorthand = 'x86sse' Langs = @( @{ Name = 'EN - English'; Link = 'http://http.screwedge.now/https://github.com/Feodor2/Mypal68/releases/download/78.0.2/mypal-78.0.2.en-US.win32-sse.zip'; Code = '' } ) } ) } @{ Name = 'R3dfox' Version = 'v150.0b10' Shorthand = 'r3d' Archs = @( @{ Name = 'x64' Shorthand = 'x64' Langs = @( @{ Name = 'EN - English'; Link = 'http://http.screwedge.now/https://github.com/Eclipse-Community/r3dfox/releases/download/v150.0b10/r3dfox-150.0b10.en-US.win64.installer.exe'; Code = '' } ) } @{ Name = 'x86' Shorthand = 'x86' Langs = @( @{ Name = 'EN - English'; Link = 'http://http.screwedge.now/https://github.com/Eclipse-Community/r3dfox/releases/download/v150.0b10/r3dfox-150.0b10.en-US.win32.installer.exe'; Code = '' } ) } ) } @{ Name = 'Supermium' Version = 'v144-r2' Shorthand = 'sm' Archs = @( @{ Name = 'x64' Shorthand = 'x64' Langs = @( @{ Name = 'EN - English'; Link = 'http://http.screwedge.now/https://github.com/win32ss/supermium/releases/download/v144-r2/supermium_144_64_setup.exe'; Code = '' } ) } @{ Name = 'x32' Shorthand = 'x32' Langs = @( @{ Name = 'EN - English'; Link = 'http://http.screwedge.now/https://github.com/win32ss/supermium/releases/download/v144-r2/supermium_144_32_setup.exe'; Code = '' } ) } @{ Name = 'x64 (10/11)' Shorthand = 'x64w10' Langs = @( @{ Name = 'EN - English'; Link = 'http://http.screwedge.now/https://github.com/win32ss/supermium/releases/download/v144-r2/supermium_144_64_setup_win10_11.exe'; Code = '' } ) } ) } ) $Categories = @( @{ Name = 'Popular'; Indices = @(4, 5, 0, 6) } @{ Name = 'Gecko'; Indices = @(0, 1, 2, 3) } @{ Name = 'Blink'; Indices = @(4, 5, 6, 7) } @{ Name = 'Legacy'; Indices = @(8, 9, 10, 11, 12) } ) # --- Alias tables --- $LangAliases = @{ 'jp' = 'ja'; 'sp' = 'es'; 'cn' = 'zh-CN'; 'tw' = 'zh-TW' 'br' = 'pt-BR'; 'uk' = 'en-GB'; 'en' = 'en-US' } $ArchAliases = @{ '64' = 'x64'; '32' = 'x86'; 'x32' = 'x86' 'arm' = 'arm'; 'arm64' = 'arm'; 'aarch64' = 'arm' } # --- UI --- function Show-Header { Clear-Host Write-Host ' _______________________________________________________________' Write-Host '' Write-Host ' Screw Edge - Get a better browser now!' Write-Host ' _______________________________________________________________' Write-Host '' } function Read-Key { return $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown') } function Get-KeyNum { param($k) $vk = $k.VirtualKeyCode if ($vk -ge 0x30 -and $vk -le 0x39) { return ($vk - 0x30) } if ($vk -ge 0x60 -and $vk -le 0x69) { return ($vk - 0x60) } return -1 } function Read-Choice { param([string]$Title, [string[]]$Options, [switch]$IsRoot) while ($true) { Show-Header Write-Host " $Title" Write-Host '' for ($i = 0; $i -lt $Options.Count; $i++) { Write-Host " [$($i + 1)] $($Options[$i])" } Write-Host '' if ($IsRoot) { Write-Host ' [Tab] Quick download [0] Exit' } else { Write-Host ' [0] Back' } Write-Host ' _______________________________________________________________' Write-Host '' Write-Host -NoNewline ' Select: ' $k = Read-Key if ($IsRoot -and $k.VirtualKeyCode -eq 9) { return 'TAB' } $n = Get-KeyNum $k if ($n -eq 0) { return $null } if ($n -ge 1 -and $n -le $Options.Count) { return ($n - 1) } [Console]::Beep(500, 150) } } function Read-PagedChoice { param([string]$Title, [array]$Items, [int]$PerPage = 9) $all = $Items; $page = 0; $filterText = '' while ($true) { $pages = [Math]::Max(1, [Math]::Ceiling($all.Count / $PerPage)) if ($page -ge $pages) { $page = $pages - 1 } $from = $page * $PerPage $to = [Math]::Min($from + $PerPage, $all.Count) Show-Header Write-Host " $Title" if ($filterText) { Write-Host " Filter: '$filterText' ($($all.Count) results)" } Write-Host " Page $($page + 1) of $pages" Write-Host '' for ($i = $from; $i -lt $to; $i++) { Write-Host " [$($i - $from + 1)] $($all[$i].Name)" } Write-Host '' $nav = @('[0] Back') if ($page -gt 0) { $nav += '[P]rev' } if ($page -lt $pages - 1) { $nav += '[N]ext' } $nav += '[/] Search' Write-Host " $($nav -join ' ')" Write-Host ' _______________________________________________________________' Write-Host '' Write-Host -NoNewline ' Select: ' $k = Read-Key $c = $k.Character $n = Get-KeyNum $k if ($n -eq 0) { return $null } if ($c -eq 'n' -or $c -eq 'N') { if ($page -lt $pages - 1) { $page++ } else { [Console]::Beep(500, 150) } continue } if ($c -eq 'p' -or $c -eq 'P') { if ($page -gt 0) { $page-- } else { [Console]::Beep(500, 150) } continue } if ($c -eq '/') { Write-Host '' Write-Host '' $q = Read-Host ' Search' if ($q) { $f = @($Items | Where-Object { $_.Name -like "*$q*" }) if ($f.Count -gt 0) { $all = $f; $filterText = $q } else { Write-Host ' No results.'; Start-Sleep 1 } } else { $all = $Items; $filterText = '' } $page = 0; continue } if ($n -ge 1 -and $n -le ($to - $from)) { return $all[$from + $n - 1] } [Console]::Beep(500, 150) } } # --- Shortcut functions --- function Resolve-Shortcut { param([string]$Text) $tokens = $Text.Trim() -split '\s+' if (-not $tokens -or -not $tokens[0]) { return $null } $browserSh = $tokens[0] $brow = $null foreach ($b in $Browsers) { if ($b.Shorthand -eq $browserSh) { $brow = $b; break } } if (-not $brow) { return $null } $wantLang = $null $wantArch = $null for ($i = 1; $i -lt $tokens.Count; $i++) { $t = $tokens[$i] $isArch = $false if ($ArchAliases.ContainsKey($t)) { $wantArch = $ArchAliases[$t] $isArch = $true } else { foreach ($a in $brow.Archs) { if ($a.Shorthand -eq $t) { $wantArch = $t; $isArch = $true; break } } } if (-not $isArch) { if ($LangAliases.ContainsKey($t)) { $wantLang = $LangAliases[$t] } else { $wantLang = $t } } } # Resolve architecture $arch = $null if ($wantArch) { foreach ($a in $brow.Archs) { if ($a.Shorthand -eq $wantArch) { $arch = $a; break } } if (-not $arch) { foreach ($a in $brow.Archs) { if ($a.Shorthand -like "$wantArch*") { $arch = $a; break } } } } if (-not $arch) { foreach ($a in $brow.Archs) { if ($a.Shorthand -eq 'x64') { $arch = $a; break } } if (-not $arch) { $arch = $brow.Archs[0] } } # Resolve language if (-not $arch.Langs -or $arch.Langs.Count -eq 0) { return $null } $lang = $null if ($arch.Langs.Count -eq 1) { $lang = $arch.Langs[0] } elseif ($wantLang) { foreach ($l in $arch.Langs) { if ($l.Code -and $l.Code -eq $wantLang) { $lang = $l; break } } if (-not $lang) { foreach ($l in $arch.Langs) { if ($l.Code -and $l.Code -like "$wantLang*") { $lang = $l; break } } } if (-not $lang) { return $null } } else { foreach ($l in $arch.Langs) { if ($l.Code -and $l.Code -eq 'en-us') { $lang = $l; break } } if (-not $lang) { foreach ($l in $arch.Langs) { if ($l.Code -and $l.Code -eq 'en') { $lang = $l; break } } } if (-not $lang) { $lang = $arch.Langs[0] } } return @{ Browser = $brow; Arch = $arch; Lang = $lang } } function Show-ShortcutScreen { Show-Header Write-Host ' Quick Download' Write-Host ' _______________________________________________________________' Write-Host '' Write-Host ' Available shorthands:' Write-Host '' $items = @($Browsers | Where-Object { $_.Shorthand } | ForEach-Object { @{ Sh = $_.Shorthand; Name = $_.Name } }) $half = [Math]::Ceiling($items.Count / 2) for ($i = 0; $i -lt $half; $i++) { $left = "$($items[$i].Sh.PadRight(6)) $($items[$i].Name)" $line = " $($left.PadRight(30))" if ($i + $half -lt $items.Count) { $right = "$($items[$i + $half].Sh.PadRight(6)) $($items[$i + $half].Name)" $line += $right } Write-Host $line } Write-Host '' Write-Host ' Type shorthand + Space ? for details Esc to cancel' Write-Host ' _______________________________________________________________' Write-Host '' } function Show-LangScreen { param($brow, [array]$langs, [int]$offset) $script:_langMaxVis = 15 Show-Header Write-Host " Quick Download - $($brow.Name)" Write-Host ' _______________________________________________________________' Write-Host '' Write-Host ' Available languages: Tab to complete' Write-Host '' $script:_langRemaining = 0 if ($offset + $script:_langMaxVis -ge $langs.Count) { $end = $langs.Count } else { $end = $offset + $script:_langMaxVis - 1 $script:_langRemaining = $langs.Count - $end } for ($i = $offset; $i -lt $end; $i++) { Write-Host " $($langs[$i].Code.PadRight(12)) $($langs[$i].Name)" } if ($script:_langRemaining -gt 0) { Write-Host " ...and $($script:_langRemaining) more (PgUp/PgDn)" } Write-Host '' $archList = ($brow.Archs | ForEach-Object { $_.Shorthand }) -join ', ' Write-Host " Architectures: $archList" Write-Host ' _______________________________________________________________' Write-Host '' } function Show-ArchScreen { param($brow, [string]$langInfo) Show-Header Write-Host " Quick Download - $($brow.Name)" Write-Host ' _______________________________________________________________' Write-Host '' Write-Host ' Available architectures: Tab to complete' Write-Host '' foreach ($a in $brow.Archs) { Write-Host " $($a.Shorthand.PadRight(12)) $($a.Name)" } if ($langInfo) { Write-Host '' Write-Host " Language: $langInfo" } Write-Host ' _______________________________________________________________' Write-Host '' } function Show-ShortcutHelp { param([string]$CurrentText) $tokens = $CurrentText.Trim() -split '\s+' $browserSh = if ($tokens[0]) { $tokens[0] } else { '' } $brow = $null if ($browserSh) { foreach ($b in $Browsers) { if ($b.Shorthand -eq $browserSh) { $brow = $b; break } } } if (-not $brow) { Show-Header Write-Host ' Type a browser shorthand first, then ? for details.' Write-Host '' Write-Host ' Press any key to go back...' $null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown') return } $langs = @() $seen = @{} foreach ($a in $brow.Archs) { foreach ($l in $a.Langs) { if ($l.Code -and -not $seen.ContainsKey($l.Code)) { $seen[$l.Code] = $true $langs += @{ Code = $l.Code; Name = $l.Name } } } } $offset = 0 $maxVis = 30 - 15 - $brow.Archs.Count if ($maxVis -lt 5) { $maxVis = 5 } while ($true) { Show-Header Write-Host " Options for $($brow.Name) ($($brow.Shorthand)):" Write-Host ' _______________________________________________________________' Write-Host '' Write-Host ' Architectures:' foreach ($a in $brow.Archs) { Write-Host " $($a.Shorthand.PadRight(10)) $($a.Name)" } $remaining = 0 if ($langs.Count -eq 0) { Write-Host '' Write-Host ' Single language (no choice needed)' } else { Write-Host '' Write-Host ' Languages:' if ($offset + $maxVis -ge $langs.Count) { $end = $langs.Count } else { $end = $offset + $maxVis - 1 $remaining = $langs.Count - $end } for ($i = $offset; $i -lt $end; $i++) { Write-Host " $($langs[$i].Code.PadRight(12)) $($langs[$i].Name)" } if ($remaining -gt 0) { Write-Host " ...and $remaining more" } } Write-Host '' $nav = @() if ($offset -gt 0) { $nav += '[PgUp]' } if ($remaining -gt 0) { $nav += '[PgDn]' } $nav += '[Esc] Back' Write-Host " $($nav -join ' ')" Write-Host ' _______________________________________________________________' $k = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown') if ($k.VirtualKeyCode -eq 34 -and $remaining -gt 0) { $offset += $maxVis - 1 continue } if ($k.VirtualKeyCode -eq 33 -and $offset -gt 0) { $offset -= $maxVis - 1 if ($offset -lt 0) { $offset = 0 } continue } return } } function Read-WithTab { $text = '' $browserShorthands = @($Browsers | Where-Object { $_.Shorthand } | ForEach-Object { $_.Shorthand } | Sort-Object -Unique) $tabMatches = @() $tabIdx = -1 $tabBase = '' $phase = 1 $currentBrowser = $null $currentLangs = @() $currentArchs = @() $langOffset = 0 $completions = $browserShorthands while ($true) { $k = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown') # Tab — complete the last token using phase-appropriate list if ($k.VirtualKeyCode -eq 9) { if ($text.EndsWith(' ')) { $pfx = $text; $lastTok = '' } else { $sp = $text.LastIndexOf(' ') if ($sp -ge 0) { $pfx = $text.Substring(0, $sp + 1) $lastTok = $text.Substring($sp + 1) } else { $pfx = ''; $lastTok = $text } } if ($tabIdx -eq -1) { $tabBase = $lastTok $tabMatches = @($completions | Where-Object { $_ -like "$tabBase*" }) if ($tabMatches.Count -eq 0) { [Console]::Beep(500, 150); continue } $tabIdx = 0 } else { $tabIdx = ($tabIdx + 1) % $tabMatches.Count } $text = $pfx + $tabMatches[$tabIdx] Write-Host -NoNewline "`r > $(' ' * 60)`r > $text" continue } $tabIdx = -1; $tabMatches = @(); $tabBase = '' if ($k.VirtualKeyCode -eq 27) { return $null } if ($k.VirtualKeyCode -eq 13) { Write-Host ''; return $text } # Backspace — revert phase if crossing a space boundary if ($k.VirtualKeyCode -eq 8) { if ($text.Length -gt 0) { $del = $text[$text.Length - 1] $text = $text.Substring(0, $text.Length - 1) if ($del -eq ' ') { $tc = if ($text.Trim()) { @($text.Trim() -split '\s+').Count } else { 0 } if ($tc -le 1 -and $phase -gt 1) { $phase = 1; $currentBrowser = $null $completions = $browserShorthands; $langOffset = 0 Show-ShortcutScreen } elseif ($tc -le 2 -and $phase -gt 2) { $phase = 2 $completions = @($currentLangs | ForEach-Object { $_.Code }) $langOffset = 0 Show-LangScreen $currentBrowser $currentLangs $langOffset } } Write-Host -NoNewline "`r > $(' ' * 60)`r > $text" } continue } # PgDn / PgUp — scroll language list in phase 2 if ($k.VirtualKeyCode -eq 34 -and $phase -eq 2 -and $script:_langRemaining -gt 0) { $langOffset += $script:_langMaxVis - 1 Show-LangScreen $currentBrowser $currentLangs $langOffset Write-Host -NoNewline " > $text" continue } if ($k.VirtualKeyCode -eq 33 -and $phase -eq 2 -and $langOffset -gt 0) { $langOffset -= $script:_langMaxVis - 1 if ($langOffset -lt 0) { $langOffset = 0 } Show-LangScreen $currentBrowser $currentLangs $langOffset Write-Host -NoNewline " > $text" continue } $ch = $k.Character # ? — show detailed help overlay, then redraw current phase if ($ch -eq '?') { Show-ShortcutHelp $text if ($phase -eq 1) { Show-ShortcutScreen } elseif ($phase -eq 2) { Show-LangScreen $currentBrowser $currentLangs $langOffset } elseif ($phase -eq 3) { $li = '' $toks = $text.Trim() -split '\s+' if ($toks.Count -ge 2) { foreach ($l in $currentLangs) { if ($l.Code -eq $toks[1]) { $li = $l.Name; break } } } Show-ArchScreen $currentBrowser $li } Write-Host -NoNewline " > $text" continue } # Space — advance phase when the current token is valid if ($ch -eq ' ') { $trimmed = $text.Trim() $toks = if ($trimmed) { @($trimmed -split '\s+') } else { @() } if ($phase -eq 1 -and $toks.Count -eq 1) { $sh = $toks[0] $brow = $null foreach ($b in $Browsers) { if ($b.Shorthand -eq $sh) { $brow = $b; break } } if ($brow) { $currentBrowser = $brow $text += ' ' $currentLangs = @() $seen = @{} foreach ($a in $brow.Archs) { foreach ($l in $a.Langs) { if ($l.Code -and -not $seen.ContainsKey($l.Code)) { $seen[$l.Code] = $true $currentLangs += @{ Code = $l.Code; Name = $l.Name } } } } $currentArchs = @($brow.Archs | ForEach-Object { $_.Shorthand }) if ($currentLangs.Count -gt 1) { $phase = 2 $completions = @($currentLangs | ForEach-Object { $_.Code }) $langOffset = 0 Show-LangScreen $currentBrowser $currentLangs $langOffset } elseif ($currentArchs.Count -gt 1) { $phase = 3 $completions = $currentArchs Show-ArchScreen $currentBrowser '' } Write-Host -NoNewline " > $text" continue } } if ($phase -eq 2 -and $toks.Count -ge 2) { $text += ' ' if ($currentBrowser.Archs.Count -gt 1) { $phase = 3 $completions = @($currentBrowser.Archs | ForEach-Object { $_.Shorthand }) $li = '' foreach ($l in $currentLangs) { if ($l.Code -eq $toks[-1]) { $li = $l.Name; break } } Show-ArchScreen $currentBrowser $li Write-Host -NoNewline " > $text" } else { Write-Host -NoNewline ' ' } continue } $text += ' ' Write-Host -NoNewline ' ' continue } if ($ch -and [int]$ch -ge 32) { $text += $ch Write-Host -NoNewline $ch } } } function Read-Shortcut { Show-ShortcutScreen Write-Host -NoNewline ' > ' $inp = Read-WithTab if (-not $inp) { return $null } $result = Resolve-Shortcut $inp if (-not $result) { Write-Host " Unknown shorthand: $inp" Start-Sleep 1 return $null } return $result } # --- Download --- function Start-Download { param($brow, $arch, $lang) Show-Header Write-Host ' Confirm Download' Write-Host ' _______________________________________________________________' Write-Host '' Write-Host " Browser: $($brow.Name)" Write-Host " Architecture: $($arch.Name)" if ($arch.Langs.Count -gt 1) { Write-Host " Language: $($lang.Name)" } Write-Host " Version: $($brow.Version)" Write-Host '' Write-Host ' This will download the browser from:' Write-Host " $($lang.Link)" Write-Host '' Write-Host '' Write-Host " Proceed? $e[32m[Y]es$e[0m / $e[31m[N]o$e[0m" Write-Host ' _______________________________________________________________' Write-Host '' Write-Host -NoNewline ' Select: ' $confirmed = $false while ($true) { $c = (Read-Key).Character if ($c -eq 'y' -or $c -eq 'Y') { $confirmed = $true; break } if ($c -eq 'n' -or $c -eq 'N') { break } [Console]::Beep(500, 150) } if (-not $confirmed) { return } $fileName = (($lang.Link -split '\?')[0]).Split('/')[-1] if (-not $fileName) { $fileName = "$($brow.Name -replace '\s+','_')_setup.exe" } $dest = Join-Path ([Environment]::GetFolderPath('UserProfile')) "Downloads\$fileName" Write-Host '' Write-Host '' Write-Host " Downloading to: $dest" Write-Host '' try { $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest -Uri $lang.Link -OutFile $dest -UseBasicParsing Write-Host " $e[32mDownload complete!$e[0m" } catch { Write-Host " $e[31mFailed: $($_.Exception.Message)$e[0m" Write-Host '' Write-Host ' Press any key to continue...' $null = Read-Key return } Write-Host '' Write-Host " Run installer? $e[32m[Y]es$e[0m / $e[31m[N]o$e[0m" Write-Host '' Write-Host -NoNewline ' Select: ' $rc = (Read-Key).Character if ($rc -eq 'y' -or $rc -eq 'Y') { Start-Process $dest } Write-Host '' Write-Host '' Write-Host ' Press any key to continue...' $null = Read-Key } # --- Main --- while ($true) { $ci = Read-Choice 'Select a category:' @($Categories | ForEach-Object { $_.Name }) -IsRoot if ($null -eq $ci) { break } if ($ci -eq 'TAB') { $result = Read-Shortcut if ($result) { Start-Download $result.Browser $result.Arch $result.Lang } continue } $cat = $Categories[$ci] $bi = Read-Choice 'Select a browser:' @($cat.Indices | ForEach-Object { $Browsers[$_].Name }) if ($null -eq $bi) { continue } $brow = $Browsers[$cat.Indices[$bi]] $ai = 0 if ($brow.Archs.Count -gt 1) { $ai = Read-Choice "Architecture for $($brow.Name):" @($brow.Archs | ForEach-Object { $_.Name }) if ($null -eq $ai) { continue } } $arch = $brow.Archs[$ai] $lang = $null if ($arch.Langs.Count -eq 1) { $lang = $arch.Langs[0] } elseif ($arch.Langs.Count -le 9) { $li = Read-Choice "Language for $($brow.Name):" @($arch.Langs | ForEach-Object { $_.Name }) if ($null -eq $li) { continue } $lang = $arch.Langs[$li] } else { $lang = Read-PagedChoice "Language for $($brow.Name) ($($arch.Name)):" $arch.Langs if ($null -eq $lang) { continue } } Start-Download $brow $arch $lang }