From 34ce53be84250ffd6c749f75b1c6848b217d2229 Mon Sep 17 00:00:00 2001 From: Marco Kamner Date: Thu, 1 Oct 2020 08:55:47 +0200 Subject: [PATCH 1/7] Improved German Translation --- .../webextension/_locales/de/messages.json | 70 +++++++++---------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/src/drivers/webextension/_locales/de/messages.json b/src/drivers/webextension/_locales/de/messages.json index ad12dcb5c..7a89c97bb 100644 --- a/src/drivers/webextension/_locales/de/messages.json +++ b/src/drivers/webextension/_locales/de/messages.json @@ -8,35 +8,35 @@ "optionUpgradeMessage": { "message": "Benachrichtige mich bei Upgrades" }, "optionDynamicIcon": { "message": "Applikations Icon anstatt des Wappalyzer Icons verwenden" }, "optionTracking": { "message": "Anonyme Statistiken an wappalyzer.com übermitteln" }, - "optionThemeMode": { "message": "Aktivieren dunklen Modus Kompatibilität." }, - "optionBadge": { "message": "Show the number of identified technologies on the icon" }, - "disableOnDomain": { "message": "Disable on this website" }, - "clearCache": { "message": "Clear cached detections" }, + "optionThemeMode": { "message": "Dunkel-Modus aktivieren" }, + "optionBadge": { "message": "Anzahl der identifizierten Optionen am Icon anzeigen" }, + "disableOnDomain": { "message": "Auf dieser Website deaktivieren" }, + "clearCache": { "message": "Cache leeren" }, "nothingToDo": { "message": "Nichts zu tun." }, - "noAppsDetected": { "message": "Keine Applikation entdeckt." }, - "categoryPin": { "message": "Immer Icon anzeigen" }, - "termsAccept": { "message": "Accept" }, - "termsContent": { "message": "This extension sends anonymous information about websites you visit, including domain name and identified technologies, to wappalyzer.com. This can be disabled in the settings." }, - "privacyPolicy": { "message": "Privacy policy" }, - "createAlert": { "message": "Create an alert for this website" }, + "noAppsDetected": { "message": "Keine Applikationen gefunden" }, + "categoryPin": { "message": "Icon immer anzeigen" }, + "termsAccept": { "message": "Akzeptieren" }, + "termsContent": { "message": "Diese Erweiterung sendet anonyme Informationen über Websites, die Sie besuchen, einschließlich der Domain und der identifizierten Technologien, an wappalyzer.com. Dies kann in den Einstellungen deaktiviert werden." }, + "privacyPolicy": { "message": "Datenschutzerklärung" }, + "createAlert": { "message": "Alarm für diese Website erstellen" }, "categoryName1": { "message": "CMS" }, "categoryName2": { "message": "Nachrichten Board" }, "categoryName3": { "message": "Datenbankverwaltung" }, "categoryName4": { "message": "Dokumentations Tool" }, "categoryName5": { "message": "Widget" }, - "categoryName6": { "message": "Ecommerce" }, + "categoryName6": { "message": "E-Commerce" }, "categoryName7": { "message": "Fotogalerien" }, "categoryName8": { "message": "Wikis" }, "categoryName9": { "message": "Hosting-Panels" }, "categoryName10": { "message": "Statistiken" }, "categoryName11": { "message": "Blog" }, - "categoryName12": { "message": "JavaScript Framework" }, - "categoryName13": { "message": "Fehlertracker" }, - "categoryName14": { "message": "Videospieler" }, + "categoryName12": { "message": "JavaScript Frameworks" }, + "categoryName13": { "message": "Ticketsysteme" }, + "categoryName14": { "message": "Videoplayer" }, "categoryName15": { "message": "Kommentarsystem" }, "categoryName16": { "message": "Security" }, "categoryName17": { "message": "Schrift Script" }, - "categoryName18": { "message": "Web Framework" }, + "categoryName18": { "message": "Web Frameworks" }, "categoryName19": { "message": "Sonstiges" }, "categoryName20": { "message": "Editor" }, "categoryName21": { "message": "LMS" }, @@ -46,48 +46,48 @@ "categoryName25": { "message": "JavaScript Graphics" }, "categoryName26": { "message": "Mobile Framework" }, "categoryName27": { "message": "Programmiersprache" }, - "categoryName28": { "message": "Betriebssystem" }, - "categoryName29": { "message": "Suchmaschine" }, + "categoryName28": { "message": "Betriebssysteme" }, + "categoryName29": { "message": "Suchmaschinen" }, "categoryName30": { "message": "Webmail" }, "categoryName31": { "message": "CDN" }, "categoryName32": { "message": "Marketing Automation" }, - "categoryName33": { "message": "Web Server Erweiterung" }, - "categoryName34": { "message": "Datenbank" }, - "categoryName35": { "message": "Map" }, - "categoryName36": { "message": "Werbenetzwerk" }, - "categoryName37": { "message": "Netzwerkdienst" }, + "categoryName33": { "message": "Web Server Erweiterungen" }, + "categoryName34": { "message": "Datenbanken" }, + "categoryName35": { "message": "Karten" }, + "categoryName36": { "message": "Werbenetzwerke" }, + "categoryName37": { "message": "Netzwerkdienste" }, "categoryName38": { "message": "Medienserver" }, - "categoryName39": { "message": "Webcam" }, + "categoryName39": { "message": "Web-Kameras" }, "categoryName40": { "message": "Drucker" }, "categoryName41": { "message": "Zahlungsverarbeiter" }, - "categoryName42": { "message": "Schlagwort Manager" }, + "categoryName42": { "message": "Tag Manager" }, "categoryName43": { "message": "Bezahlblockade" }, - "categoryName44": { "message": "Build/CI-System" }, + "categoryName44": { "message": "CI-Systeme" }, "categoryName45": { "message": "SCADA System" }, "categoryName46": { "message": "Fernzugriff" }, - "categoryName47": { "message": "Entwicklungswerkzeug" }, + "categoryName47": { "message": "Entwicklungswerkzeuge" }, "categoryName48": { "message": "Netzwerkspeicher" }, "categoryName49": { "message": "Feedleser" }, "categoryName50": { "message": "Dokumentmanagementsysteme" }, - "categoryName51": { "message": "Startseitenersteller" }, + "categoryName51": { "message": "Website Baukästen" }, "categoryName52": { "message": "Live-Chat" }, "categoryName53": { "message": "CRM" }, - "categoryName54": { "message": "SEO" }, + "categoryName54": { "message": "SEO" }, "categoryName55": { "message": "Buchhaltung" }, "categoryName56": { "message": "Cryptominer" }, "categoryName57": { "message": "Statischer Seitengenerator" }, - "categoryName58": { "message": "Benutzer-Einbindung" }, + "categoryName58": { "message": "Benutzer-Onboarding" }, "categoryName59": { "message": "JavaScript Bibliotheken" }, - "categoryName60": { "message": "Containers" }, + "categoryName60": { "message": "Container" }, "categoryName61": { "message": "SaaS" }, "categoryName62": { "message": "PaaS" }, "categoryName63": { "message": "IaaS" }, - "categoryName64": { "message": "Reverse Proxy" }, + "categoryName64": { "message": "Reverse Proxies" }, "categoryName65": { "message": "Load Balancer" }, "categoryName66": { "message": "UI Frameworks" }, - "categoryName67": { "message": "Cookie compliance" }, - "categoryName68": { "message": "Accessibility"}, - "categoryName69": { "message": "Social login"}, + "categoryName67": { "message": "Cookie Compliance" }, + "categoryName68": { "message": "Barrierefreiheit"}, + "categoryName69": { "message": "Social Login"}, "categoryName70": { "message": "SSL/TLS certificate authority"}, - "categoryName71": { "message": "Affiliate program"} + "categoryName71": { "message": "Partnerprogram"} } From db9f6f97a0785b0fc5f80101dcf35cc1ece14224 Mon Sep 17 00:00:00 2001 From: Honjes Date: Thu, 1 Oct 2020 11:52:37 +0200 Subject: [PATCH 2/7] Improving tailwindcss Detection Adding detection for css files: tailwindcss@version/dist/tailwind.min.css tailwindcss/version/base.css tailwindcss/version/components.css tailwindcss/version/utilities.css --- src/technologies.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/technologies.json b/src/technologies.json index 43073583c..22a8acd17 100644 --- a/src/technologies.json +++ b/src/technologies.json @@ -16417,7 +16417,8 @@ ], "description": "Tailwind is a utility-first CSS framework.", "html": [ - "]+?href=\"[^\"]+tailwindcss(?:\\.min)?\\.css" + "]+?href=\"[^\"]+tailwindcss[@|/][a-z]+/tailwind(?:.min)?.css", + "]+?href=\"[^\"]+tailwindcss[@|/]([0-9.]+)(?:/[a-z]+)?/[tailwind|base|components|utilities](?:.min)?.css\\;version:\\1" ], "icon": "tailwindcss.svg", "website": "https://tailwindcss.com/" From dec971029f1ac62073e3ead4a88dd30ba55132ff Mon Sep 17 00:00:00 2001 From: Honjes Date: Thu, 1 Oct 2020 11:54:04 +0200 Subject: [PATCH 3/7] Adding detection for diffrent script --- src/technologies.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/technologies.json b/src/technologies.json index 43073583c..e6392d1d8 100644 --- a/src/technologies.json +++ b/src/technologies.json @@ -5637,7 +5637,8 @@ "googletag": "" }, "scripts": [ - "googletagmanager\\.com/gtm\\.js" + "googletagmanager\\.com/gtm\\.js", + "googletagmanager\\.com/gtag/js" ], "website": "http://www.google.com/tagmanager" }, From 679cbaa53de78e0237bc3930a22616252edb93aa Mon Sep 17 00:00:00 2001 From: Honjes Date: Thu, 1 Oct 2020 14:27:18 +0200 Subject: [PATCH 4/7] Improving gmaps detection Examplesite: www.doordash.com/en-US Detection Script: maps.google.com/maps/api/js --- src/technologies.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/technologies.json b/src/technologies.json index 43073583c..8f545665d 100644 --- a/src/technologies.json +++ b/src/technologies.json @@ -5557,7 +5557,7 @@ "icon": "Google Maps.png", "scripts": [ "(?:maps\\.google\\.com/maps\\?file=api(?:&v=([\\d.]+))?|maps\\.google\\.com/maps/api/staticmap)\\;version:API v\\1", - "//maps\\.googleapis\\.com/maps/api/js" + "//maps\\.google(?:apis)?\\.com/maps/api/js" ], "description": "Google Maps is a web mapping service. It offers satellite imagery, aerial photography, street maps, 360° interactive panoramic views of streets, real-time traffic conditions, and route planning for traveling by foot, car, bicycle and air, or public transportation.", "website": "http://maps.google.com" From 38cd9a7cbf1c75e9d6a6c4ddd0bb7696bee4fadd Mon Sep 17 00:00:00 2001 From: Honjes Date: Thu, 1 Oct 2020 14:55:34 +0200 Subject: [PATCH 5/7] Add Detection + Icons --- .../webextension/images/icons/Engagio.png | Bin 0 -> 1150 bytes .../webextension/images/icons/Sift.png | Bin 0 -> 15086 bytes src/technologies.json | 21 ++++++++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 src/drivers/webextension/images/icons/Engagio.png create mode 100644 src/drivers/webextension/images/icons/Sift.png diff --git a/src/drivers/webextension/images/icons/Engagio.png b/src/drivers/webextension/images/icons/Engagio.png new file mode 100644 index 0000000000000000000000000000000000000000..caeb6cd94741a337ad57f4e60ca2c1564bf7feae GIT binary patch literal 1150 zcmZQzU<5(|0R|wcz>vYhz#zuJz@P!dKp~(AL>x#lH~{5@xgi+D2Z8oVhX2C>cT_R| zpWG(>zpaAd|CA27|813w|0lGF{qL&f0J0gt;>a|*pAYP+{r~&-&;M%{hy4Hh@9+PO zE93ru`}Xetg){U2UpPJQ|BoM^Ao%;I|GT#oVT9SNex3gZc2@uIZ4~_f?8({xliFqe zUplu0XkO6&ITQ5%Z&)4)#8F@xy6NmZ;>IazxiUSbdzq985%s$fG4|5Ah|7B44EeZZVXQILX4J)GmZ&(S$ zKzd4tJP~2S^#9veVEh5&?)<5_|G$6#0Kwlr0R2-)gnowq{mr6~^aJ$|%wHfH=FXu` JLrMYiNdP7pJ+lA+ literal 0 HcmV?d00001 diff --git a/src/drivers/webextension/images/icons/Sift.png b/src/drivers/webextension/images/icons/Sift.png new file mode 100644 index 0000000000000000000000000000000000000000..5bd072ba7ab5d915fa2f84bce57fe5c1b2e2b9b4 GIT binary patch literal 15086 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 Date: Fri, 2 Oct 2020 18:39:14 -0700 Subject: [PATCH 6/7] add commerce.js tech --- .../webextension/images/icons/commercejs.png | Bin 0 -> 596 bytes src/technologies.json | 16 ++++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 src/drivers/webextension/images/icons/commercejs.png diff --git a/src/drivers/webextension/images/icons/commercejs.png b/src/drivers/webextension/images/icons/commercejs.png new file mode 100644 index 0000000000000000000000000000000000000000..633768cdc0461b9181e84a34b088b64180aace56 GIT binary patch literal 596 zcmV-a0;~OrP)+hlqv}5osNzpgd1=Kk|S^fQqsW%h
G$;~{E0iJKwt6=&m_?`6jO15m5hKg$9`9i2IyX4BqY%soFj-a2)hM$?A$xK6_4 z;ns=MvqGGJg`-x-v6JIKI3f!t(jXY9v;hSHy#4-aCrtQzuM;l}Lx$$9 z6Cw{T#R2cpy%m7b3Rl(y7QJw?WEjwKvIR1!N?u-t?O+34DvDMn0PndSA6%|pvj0S& zdWop5POb^TulArQ5*3gx`SU6b{|u=sugFM&vfF`pqhvL@2-_%9lmSn_)n#mCcdHg@~EcI3fTRvs(W4#Z(H{>O=E@#eXW z1DmUYjtM-HKlhe9d-k1$c+QpB&wvkR Date: Mon, 5 Oct 2020 17:17:24 -0700 Subject: [PATCH 7/7] replace icon image --- .../webextension/images/icons/commercejs.png | Bin 596 -> 1534 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/drivers/webextension/images/icons/commercejs.png b/src/drivers/webextension/images/icons/commercejs.png index 633768cdc0461b9181e84a34b088b64180aace56..df463ee1ae9283317f2d9f53e0874bc24cf051ad 100644 GIT binary patch delta 1467 zcmV;s1w{JP1pW(qfzWQt)R4u3SyLt z0uMTUX`g(s53N2(E&9?zqK+K}JH;7nt#(?Raj=e^R;ONCs}rf?rL9(+Iy%SzTP+Yp zV9OY8$!7cSCZ?D!8ZY#p+1cH*|DNyrZ|9t!LyTgv*e!Y^TYmZ+h%LbPGIZHBG-=w!? zv4B^ubAgv-Fe0F2Z;I85*JjVdf$zS?>2r;kQ(S`AmzKbLs}nbxn;$l%ku&hk%w&E> zaYfdHG)oD*YF!ohAXIRf&;vY&VLcDigj8hCosUBY8gTZs2iaw%$So;`*!dUQn;+~6 znnq*^W`C=T9&8T+udJw2E$3uFqO2Lwg}{e(3`2SbV|p5<=jGve!(KFbPNI0pA`})D z;8sT`TCcZ^%|P*{$(*u9afc>&Az4n~j1*g1ucNMh2X5ZEg~^$jM1WyXxeN?`9gk!?Xu(3vV0{vZhPVJ z9EaYLjF)C+VTiyv9gx5UkSP0Mqw$>CbMWoH{W#P3GnUNHN9o)=c)Pr47TUC6jQm*O zRqt1Vurb0o)zW_7T{ZUhjA;-Dd};{dm;|#tf<(!WxRC%1g8@u`(M~1$i3+;9Vl4)H z`+wnHwH9Uh1zJ$JmxPfJWY5S(jk{V+vJrBv;_6|#+a^!OwX0We>(7SoiiSjC6~t^@aiR1l@JR z5~fUaU?&;UMPYl#y&gRS1CXP4e_0l|)bvU9;Q1A!#~o8L@KN1vinT>`wUYIWYA^u- z#0MqlBndTDn{fQ_5mi6K;lLLgt6_;tK#<^&EMc_w{M)Z3q3}=78h{AdK;Pr6? zOqD?-{6r!t#fqyf*U%rhx3;&ATMtbU@+q29o1uklhpTix9?Z8!bV%8#8fY6iY?tn zTdob4nwk)cq@~#~fv!KUjIGZkX_A*tMv=6%zTl{(l30WPN49r&w5r>2WPc%&bdp;s z3yinO>XFQS?=?a|6a^5)*K2`M8iEaB%!`Z&Yuf*_fzF z$EFF8iUw=)9!}=tiD3?&Ot$+6q_^(e5xiO-AKILTOVmw| zD-gRV-SQqL1#7*J+nh#As5Eh5%96d1*7ZzUxa=6!p3|5>n@tlXRU>8j!C2e#e*g(6 VEdBm&GhF}x002ovPDHLkV1m-;%s&7C delta 522 zcmV+l0`>j=3)BRVReu5LNkl`i4 zPynyQ1g;5R+XPksU&{nm1pl)M)WMNB7-_h=#|w_Ip+XZ_1Xl{^P$pBq^Rz>r>oOr! zWI`0d3Ftv4k$+%0x8;3Et7>QzuM;l}Lx$$96Cw{T#R2cpy%m7b3Rl(y7QJw?WEjwK zvIR1!N?u-t?O+34DvDMn0PndSA6%|pvj0S&dWop5POb^TulArQ5*3gx`SU6b{|u=s zugFM&vfF`pqhg?P@D*w26u zX5+_xa_HBQEXzb0xYk4lJkvnhgb6&?L=If5w&D41Q#oqY+Niz&Vz{w@uh~Zw00000 MNkvXXt^-0~f=)p2X#fBK