Skip to content

Commit fdc2851

Browse files
committed
Unify Linux toggle UI and fix Linux spoofing functionality\n\n- Refactor popup and options UI for consistent Linux/Windows spoofing controls\n- Improve localization and i18n for new spoofing features\n- Update CSS for unified styling and dark/light mode\n- Enhance event handling and state refresh for toggles\n- Improve error messages and validation
1 parent 069962e commit fdc2851

22 files changed

+569
-496
lines changed

Changelog.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
# Changelog - Chrome Mask for Opera
22

3+
## 1.5.1 (Linux Toggle & UI Unification) - July 2025
4+
🐧 Linux Toggle & UI Unification
5+
- Unified and improved the Linux toggle functionality in both the popup and options UI.
6+
- Refactored popup and options pages for better localization and consistent UI.
7+
- Added per-site Linux/Windows spoofing controls to the popup and options page.
8+
- Improved i18n/localization for new Linux spoofing features across all languages.
9+
- Updated CSS for unified styling and better dark/light mode support.
10+
- Enhanced event handling and state refresh for toggles (no more full page reloads).
11+
- Improved error messages and validation for site management.
12+
13+
🔧 Technical Improvements
14+
- Unified Linux/Windows spoofing controls in popup and options page
15+
- Improved localization for new spoofing features in all supported languages
16+
- Updated UI styling for consistency and better dark/light mode support
17+
- Enhanced toggle event handling and state refresh (no more full reloads)
18+
- Improved error messages and input validation for site management
19+
320
## 1.5.0 (Per-Site Linux Platform Control) - July 2025
421

522
**🚀 Major Feature: Per-Site Linux Platform Spoofing**

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "chrome-mask-for-opera",
3-
"version": "1.5.0",
3+
"version": "1.5.1",
44
"description": "Makes Opera wear a Chrome mask for better website compatibility.",
55
"author": "mr-september",
66
"license": "MIT",

src/_locales/de/messages.json

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
},
5151

5252
"mainToggleDescription": {
53-
"message": "Nach dem Aktivieren die Seite hart aktualisieren (Strg+F5), um Änderungen anzuwenden und den Cache zu leeren."
53+
"message": "Möglicherweise ist ein Hard-Refresh (Strg+F5) erforderlich, um den Cache zu leeren und Änderungen anzuwenden."
5454
},
5555

5656
"manageSitesButton": {
@@ -80,32 +80,38 @@
8080
"addSiteErrorAlreadyActive": {
8181
"message": "Die Chrome Mask for Opera ist auf dieser Seite bereits aktiv!"
8282
},
83+
"linuxSpoofOptionNote": {
84+
"message": "Dies betrifft alle Seiten, auf denen Chrome-Maskierung aktiviert ist. Du kannst diese Einstellung jederzeit ändern."
85+
},
86+
"managePlatformLinkText": {
87+
"message": "Plattformeinstellungen pro Seite verwalten",
88+
"description": "Linktext im Popup, um die Optionsseite für Linux-spezifische Einstellungen zu öffnen."
89+
},
8390

8491
"maskedSitesTitle": {
8592
"message": "Gerade maskierte Seiten"
8693
},
87-
8894
"siteListRemoveButton": {
8995
"message": "Entfernen"
9096
},
91-
9297
"siteListEmpty": {
9398
"message": "Die Chrome Mask for Opera ist noch auf keiner Seite aktiv!"
9499
},
95-
96100
"linuxSpoofToggle": {
97101
"message": "Als Windows statt Linux ausgeben"
98102
},
99-
100103
"linuxSpoofToggleDescription": {
101104
"message": "Manche Seiten blockieren Linux-Browser. Aktiviere dies, um als Windows Chrome statt Linux Chrome zu erscheinen."
102105
},
103-
104106
"linuxPlatformTitle": {
105107
"message": "Linux-Plattform-Einstellungen"
106108
},
107-
108-
"linuxSpoofOptionNote": {
109-
"message": "Dies betrifft alle Seiten, auf denen Chrome-Maskierung aktiviert ist. Du kannst diese Einstellung jederzeit ändern."
109+
"optionsLinuxSpoofEmpty": {
110+
"message": "Es sind keine Seiten für Windows-Spoofing konfiguriert.",
111+
"description": "Meldung, wenn die Linux-Spoofing-Liste leer ist."
112+
},
113+
"optionsSpoofingAsWindows": {
114+
"message": "(Spoofing als Windows)",
115+
"description": "Kleiner Text neben einem Hostnamen, der anzeigt, dass als Windows gespooft wird."
110116
}
111117
}

src/_locales/en/messages.json

Lines changed: 47 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,111 +1,74 @@
11
{
22
"extensionName": {
3-
"message": "Chrome Mask for Opera"
3+
"message": "Chrome Mask for Opera",
4+
"description": "The name of the extension."
45
},
5-
66
"extensionDescription": {
7-
"message": "Makes Opera wear a mask to look like Chrome to websites that otherwise won't work."
8-
},
9-
10-
"supportMessage": {
11-
"message": "If this add-on has helped you, please consider $SUPPORT_LINK$ ☕",
12-
"placeholders": {
13-
"SUPPORT_LINK": {
14-
"content": "$1"
15-
}
16-
}
17-
},
18-
19-
"breakageWarning": {
20-
"message": "While Chrome Mask for Opera may help if you see a \"Browser unsupported\" message, it could cause unexpected breakage on some sites."
21-
},
22-
23-
"reportBrokenSite": {
24-
"message": "If you find a site which works better with Chrome Mask for Opera enabled, please report it $WEBCOMPAT$. Thank you! ♥",
25-
"placeholders": {
26-
"WEBCOMPAT": {
27-
"content": "$1"
28-
}
29-
}
30-
},
31-
32-
"inProductReporterLinkText": {
33-
"message": "through Opera Help & Support"
7+
"message": "Makes Opera wear a mask to look like Chrome to websites that otherwise won't work.",
8+
"description": "The description of the extension shown in the add-on store."
349
},
3510

36-
"webcompatLinkText": {
37-
"message": "on WebCompat.com"
11+
"optionsPageTitle": {
12+
"message": "Extension Options",
13+
"description": "The title of the options HTML page."
3814
},
3915

40-
"maskStatusOn": {
41-
"message": "The mask is on! I pretend to be Chrome on this site."
16+
"optionsMainTitle": {
17+
"message": "Chrome Masking for Opera",
18+
"description": "The main H2 title on the options page."
4219
},
43-
44-
"maskStatusOff": {
45-
"message": "The mask is off. I look like Opera to this site."
46-
},
47-
48-
"maskStatusUnsupported": {
49-
"message": "The mask cannot work on this site."
50-
},
51-
52-
"mainToggleDescription": {
53-
"message": "After enabling, hard refresh the page (Ctrl+F5) to apply changes and clear cached content."
54-
},
55-
56-
"manageSitesButton": {
57-
"message": "Add or remove sites"
58-
},
59-
60-
"manageSitesFallback": {
61-
"message": "To add or remove sites, please open the Extension Manager, select Chrome Mask for Opera, and hit Settings."
20+
"optionsMainDescription": {
21+
"message": "For sites that don't work correctly in Opera, add them here to make them identify as Chrome.",
22+
"description": "The primary paragraph explaining the main feature."
6223
},
63-
64-
"addSiteTitle": {
65-
"message": "Add Site"
24+
"optionsInputPlaceholder": {
25+
"message": "e.g., www.example.com",
26+
"description": "Placeholder text for the hostname input fields."
6627
},
67-
6828
"addSiteButton": {
69-
"message": "Add Site"
29+
"message": "Add Site",
30+
"description": "Text for buttons that add a site to a list."
7031
},
71-
72-
"addSiteHostnameExplanation": {
73-
"message": "Note: Enter the domain name (e.g., example.com). The extension will work on all pages and subdomains of that site."
32+
"siteListRemoveButton": {
33+
"message": "Remove",
34+
"description": "Text for buttons that remove a site from a list."
7435
},
7536

37+
"siteListEmpty": {
38+
"message": "No sites are currently being masked.",
39+
"description": "Message shown when the main list of masked sites is empty."
40+
},
7641
"addSiteErrorInvalid": {
77-
"message": "Please enter a valid domain!"
42+
"message": "Invalid hostname. Please enter a valid domain like 'example.com'",
43+
"description": "Error message for an invalid domain."
7844
},
79-
8045
"addSiteErrorAlreadyActive": {
81-
"message": "Chrome Mask for Opera is already enabled for this domain!"
82-
},
83-
84-
"maskedSitesTitle": {
85-
"message": "Currently Masked Sites"
46+
"message": "This site is already in the masking list.",
47+
"description": "Error message when trying to add a site that is already masked."
8648
},
8749

88-
"siteListRemoveButton": {
89-
"message": "Remove"
50+
"linuxPlatformTitle": {
51+
"message": "Linux Platform Settings",
52+
"description": "The H2 title for the Linux-specific section."
9053
},
91-
92-
"siteListEmpty": {
93-
"message": "You did not enable Chrome Mask for Opera on any site yet!"
54+
"optionsLinuxSpoofTitle": {
55+
"message": "Windows Spoofing on Linux",
56+
"description": "The H3 sub-heading for the Linux spoofing feature."
9457
},
95-
96-
"linuxSpoofToggle": {
97-
"message": "Spoof as Windows instead of Linux"
58+
"optionsLinuxSpoofDescription": {
59+
"message": "For any masked site, you can enable Windows spoofing to solve issues specific to Linux users (e.g., with video streaming services).",
60+
"description": "The paragraph explaining the Linux spoofing feature."
9861
},
99-
100-
"linuxSpoofToggleDescription": {
101-
"message": "Some sites block Linux browsers. Enable this to appear as Windows Chrome instead of Linux Chrome."
62+
"addSiteErrorAlreadySpoofing": {
63+
"message": "This site is already in the Windows spoofing list.",
64+
"description": "Error when trying to add a site that is already in the spoof list."
10265
},
103-
104-
"linuxPlatformTitle": {
105-
"message": "Linux Platform Settings"
66+
"optionsLinuxSpoofEmpty": {
67+
"message": "No sites are configured for Windows spoofing.",
68+
"description": "Message shown when the Linux spoof list is empty."
10669
},
107-
108-
"linuxSpoofOptionNote": {
109-
"message": "This affects all sites where Chrome masking is enabled. You can change this setting at any time."
70+
"optionsSpoofingAsWindows": {
71+
"message": "(Spoofing as Windows)",
72+
"description": "Small text detail next to a hostname indicating it's spoofing as Windows."
11073
}
11174
}

src/_locales/fr/messages.json

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
},
5151

5252
"mainToggleDescription": {
53-
"message": "Après activation, actualisez la page en dur (Ctrl+F5) pour appliquer les changements et vider le cache."
53+
"message": "Un rafraîchissement complet (Ctrl+F5) peut être nécessaire pour vider le cache et appliquer les modifications."
5454
},
5555

5656
"manageSitesButton": {
@@ -104,8 +104,31 @@
104104
"linuxPlatformTitle": {
105105
"message": "Paramètres de la plateforme Linux"
106106
},
107-
107+
"optionsLinuxSpoofTitle": {
108+
"message": "Usurpation Windows sur Linux",
109+
"description": "Le sous-titre H3 pour la fonctionnalité d'usurpation Windows sur Linux."
110+
},
111+
"optionsLinuxSpoofDescription": {
112+
"message": "Pour tout site masqué, vous pouvez activer l'usurpation Windows pour résoudre des problèmes spécifiques aux utilisateurs Linux (ex : services de streaming vidéo).",
113+
"description": "Le paragraphe expliquant la fonctionnalité d'usurpation Windows sur Linux."
114+
},
115+
"addSiteErrorAlreadySpoofing": {
116+
"message": "Ce site est déjà dans la liste d'usurpation Windows.",
117+
"description": "Erreur lors de l'ajout d'un site déjà dans la liste d'usurpation."
118+
},
119+
"optionsLinuxSpoofEmpty": {
120+
"message": "Aucun site n'est configuré pour l'usurpation Windows.",
121+
"description": "Message affiché lorsque la liste d'usurpation Linux est vide."
122+
},
123+
"optionsSpoofingAsWindows": {
124+
"message": "(Usurpation Windows)",
125+
"description": "Petit texte à côté d'un nom d'hôte indiquant qu'il est usurpé en tant que Windows."
126+
},
108127
"linuxSpoofOptionNote": {
109128
"message": "Ceci affecte tous les sites où le masquage Chrome est activé. Vous pouvez modifier ce paramètre à tout moment."
129+
},
130+
"managePlatformLinkText": {
131+
"message": "Gérer les paramètres de plateforme par site",
132+
"description": "Texte du lien dans le popup pour ouvrir la page d'options des paramètres spécifiques à Linux."
110133
}
111134
}

src/_locales/hi/messages.json

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
},
5151

5252
"mainToggleDescription": {
53-
"message": "सक्षम करने के बाद, बदलाव लागू करने और कैश की गई सामग्री को साफ़ करने के लिए पेज को हार्ड रीफ्रेश (Ctrl+F5) करें"
53+
"message": "परिवर्तन लागू करने के लिए हार्ड रिफ्रेश (Ctrl+F5) से कैश्ड सामग्री साफ़ करनी पड़ सकती है"
5454
},
5555

5656
"manageSitesButton": {
@@ -104,8 +104,31 @@
104104
"linuxPlatformTitle": {
105105
"message": "Linux प्लेटफॉर्म सेटिंग्स"
106106
},
107-
107+
"optionsLinuxSpoofTitle": {
108+
"message": "Linux पर Windows स्पूफिंग",
109+
"description": "Linux स्पूफिंग फीचर के लिए H3 उप-शीर्षक।"
110+
},
111+
"optionsLinuxSpoofDescription": {
112+
"message": "किसी भी मास्क की गई साइट के लिए, आप Linux उपयोगकर्ताओं के लिए विशिष्ट समस्याओं को हल करने के लिए Windows स्पूफिंग सक्षम कर सकते हैं (जैसे वीडियो स्ट्रीमिंग सेवाओं के साथ)।",
113+
"description": "Linux स्पूफिंग फीचर को समझाने वाला पैराग्राफ।"
114+
},
115+
"addSiteErrorAlreadySpoofing": {
116+
"message": "यह साइट पहले से ही Windows स्पूफिंग सूची में है।",
117+
"description": "स्पूफ सूची में पहले से मौजूद साइट जोड़ने पर त्रुटि।"
118+
},
119+
"optionsLinuxSpoofEmpty": {
120+
"message": "Windows स्पूफिंग के लिए कोई साइट कॉन्फ़िगर नहीं है।",
121+
"description": "Linux स्पूफ सूची खाली होने पर दिखाया जाने वाला संदेश।"
122+
},
123+
"optionsSpoofingAsWindows": {
124+
"message": "(Windows के रूप में स्पूफिंग)",
125+
"description": "होस्टनाम के पास छोटा विवरण, जो दर्शाता है कि Windows के रूप में स्पूफिंग हो रही है।"
126+
},
108127
"linuxSpoofOptionNote": {
109128
"message": "यह उन सभी साइटों को प्रभावित करता है जहां Chrome मास्किंग सक्षम है। आप इस सेटिंग को कभी भी बदल सकते हैं।"
129+
},
130+
"managePlatformLinkText": {
131+
"message": "प्रति साइट प्लेटफ़ॉर्म सेटिंग्स प्रबंधित करें",
132+
"description": "लिनक्स-विशिष्ट सेटिंग्स के लिए विकल्प पृष्ठ खोलने के लिए पॉपअप में लिंक टेक्स्ट।"
110133
}
111134
}

src/_locales/it/messages.json

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
},
5151

5252
"mainToggleDescription": {
53-
"message": "Dopo l'attivazione, aggiorna forzatamente la pagina (Ctrl+F5) per applicare le modifiche e cancellare il contenuto memorizzato nella cache."
53+
"message": "Potrebbe essere necessario un aggiornamento forzato (Ctrl+F5) per cancellare la cache e applicare le modifiche."
5454
},
5555

5656
"manageSitesButton": {
@@ -104,8 +104,31 @@
104104
"linuxPlatformTitle": {
105105
"message": "Impostazioni Piattaforma Linux"
106106
},
107-
107+
"optionsLinuxSpoofTitle": {
108+
"message": "Spoofing Windows su Linux",
109+
"description": "Il sottotitolo H3 per la funzione di spoofing Windows su Linux."
110+
},
111+
"optionsLinuxSpoofDescription": {
112+
"message": "Per qualsiasi sito mascherato, puoi abilitare lo spoofing Windows per risolvere problemi specifici degli utenti Linux (ad esempio con servizi di streaming video).",
113+
"description": "Il paragrafo che spiega la funzione di spoofing Windows su Linux."
114+
},
115+
"addSiteErrorAlreadySpoofing": {
116+
"message": "Questo sito è già nella lista di spoofing Windows.",
117+
"description": "Errore quando si tenta di aggiungere un sito già presente nella lista di spoofing."
118+
},
119+
"optionsLinuxSpoofEmpty": {
120+
"message": "Nessun sito è configurato per lo spoofing Windows.",
121+
"description": "Messaggio mostrato quando la lista di spoofing Linux è vuota."
122+
},
123+
"optionsSpoofingAsWindows": {
124+
"message": "(Spoofing come Windows)",
125+
"description": "Testo piccolo accanto a un hostname che indica che viene effettuato lo spoofing come Windows."
126+
},
108127
"linuxSpoofOptionNote": {
109128
"message": "Questo influisce su tutti i siti dove è abilitata la mascheratura Chrome. Puoi cambiare questa impostazione in qualsiasi momento."
129+
},
130+
"managePlatformLinkText": {
131+
"message": "Gestisci le impostazioni della piattaforma per sito",
132+
"description": "Testo del link nel popup per aprire la pagina delle opzioni per le impostazioni specifiche di Linux."
110133
}
111134
}

0 commit comments

Comments
 (0)