From f40691de5c83fae58ae4e52838803f648ffbfe6e Mon Sep 17 00:00:00 2001 From: Magic Date: Sat, 28 Jun 2025 11:02:18 -0700 Subject: [PATCH 1/3] Userscript v7.6.7 Signed-off-by: Magic --- CHANGELOG.user.md | 19 +- README.md | 2 +- UserJS.json | 2 +- dist/magic-userjs.meta.js | 2 +- dist/magic-userjs.user.js | 1330 ++++++++++++++++++------------------- src/UserJS/header.js | 2 +- 6 files changed, 676 insertions(+), 681 deletions(-) diff --git a/CHANGELOG.user.md b/CHANGELOG.user.md index 586265d..4f89b64 100644 --- a/CHANGELOG.user.md +++ b/CHANGELOG.user.md @@ -5,6 +5,13 @@ * SVG elements don't load on every webpage: * _can be blocked by host, external scripts, web extensions, etc._ +## v7.6.7 + +* Bug fixes: + * Fixed https://github.com/magicoflolis/Userscript-Plus/issues/69 + +--- + ## v7.6.6 * Config changes: @@ -75,11 +82,6 @@ * i18n additions (still not localized): * new keys: `code`, `metadata`, `preview_metadata`, `recommend_author`, `recommend_other`, `default_sort` -**Known Issues:** - -* SVG elements don't load on every webpage: - * _can be blocked by host, external scripts, web extensions, etc._ - **TODO:** * Finish translations. @@ -116,7 +118,6 @@ * Enabling a engine requires the page to be reloaded, while disabling a engine does not. * This is caused by the cache system. -* SVG elements don't load on every webpage, _can be blocked by the page, external scripts, or web extensions._ * If an item changes after the list is sorted, the sorting won't be updated **TODO:** @@ -136,7 +137,6 @@ * Enabling a engine requires the page to be reloaded, while disabling a engine does not. * This is caused by the cache system. * "Filter out other languages" may not filter _every_ userscript that is not in your language. -* SVG elements don't load on every webpage, _can be blocked by the page, external script, or extensions._ **TODO:** @@ -164,7 +164,6 @@ * Enabling a engine requires the page to be reloaded, while disabling a engine does not. * This is caused by the cache system. * "Filter out other languages" may not filter _every_ userscript that is not in your language. -* SVG elements don't load on every webpage, _can be blocked by the page, external script, or extensions._ **TODO:** @@ -187,7 +186,6 @@ **Known Issues:** * "Filter out other languages" may not filter _every_ userscript that is not in your language. -* SVG elements don't load on every webpage, _can be blocked by the page, external script, or extensions._ **TODO:** @@ -215,7 +213,6 @@ **Known Issues:** * "Filter out other languages" may not filter _every_ userscript that is not in your language. -* SVG elements don't load on every webpage, _can be blocked by the page._ **TODO:** @@ -242,7 +239,6 @@ **Known Issues:** * "Filter out other languages" may not filter _every_ userscript that is not in your language. -* SVG elements don't load on every webpage, _can be blocked by the page._ **TODO:** @@ -274,7 +270,6 @@ **Known Issues:** * "Filter out other languages" may not filter _every_ userscript that is not in your language. -* SVG elements don't load on every webpage, _can be blocked by the page._ **TODO:** diff --git a/README.md b/README.md index 429d657..80923b7 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Finds available UserScripts and UserStyles for the current webpage, the power of Save this URL as a bookmark, clicking it will cause the **UserScript version** to inject itself into the current webpage. -```JS +```js filename="src/UserJS/main.js" javascript:(function(){['https://cdn.jsdelivr.net/gh/magicoflolis/Userscript-Plus@master/userscript/dist/magic-userjs.user.js'].map(s=>document.body.appendChild(document.createElement('script')).src=s)})(); ``` diff --git a/UserJS.json b/UserJS.json index e82d52f..da5b098 100644 --- a/UserJS.json +++ b/UserJS.json @@ -1,5 +1,5 @@ { - "version": "7.6.6", + "version": "7.6.7", "name": "Magic Userscript+ : Show Site All UserJS", "description": "Finds available userscripts for the current webpage.", "author": "Magic ", diff --git a/dist/magic-userjs.meta.js b/dist/magic-userjs.meta.js index 2a04f00..7166bc2 100644 --- a/dist/magic-userjs.meta.js +++ b/dist/magic-userjs.meta.js @@ -1,5 +1,5 @@ // ==UserScript== -// @version 7.6.6 +// @version 7.6.7 // @name Magic Userscript+ : Show Site All UserJS // @name:ar Magic Userscript+: عرض جميع ملفات UserJS // @name:de Magic Userscript+ : Website anzeigen Alle UserJS diff --git a/dist/magic-userjs.user.js b/dist/magic-userjs.user.js index 264b1e9..b97e2b7 100644 --- a/dist/magic-userjs.user.js +++ b/dist/magic-userjs.user.js @@ -1,5 +1,5 @@ // ==UserScript== -// @version 7.6.6 +// @version 7.6.7 // @name Magic Userscript+ : Show Site All UserJS // @name:ar Magic Userscript+: عرض جميع ملفات UserJS // @name:de Magic Userscript+ : Website anzeigen Alle UserJS @@ -93,684 +93,684 @@ if (!(typeof userjs === 'object' && userjs.UserJS)) { return; } /** Native implementation exists */ -if (window.trustedTypes && window.trustedTypes.createPolicy) window.trustedTypes.createPolicy('default', { createHTML: (string) => string }); +if (window.trustedTypes && window.trustedTypes.createPolicy) window.trustedTypes.createPolicy('default', { createHTML: (string) => string, createScript: (string) => string, createScriptURL: (string) => string }); /** [i18n directory](https://github.com/magicoflolis/Userscript-Plus/tree/master/src/_locales) */ const translations = { - "ar": { - "createdby": "انشأ من قبل", - "name": "اسم", - "daily_installs": "التثبيت اليومي", - "close": "يغلق", - "filterA": "منقي", - "max": "تحقيق أقصى قدر", - "min": "تصغير", - "search": "يبحث", - "search_placeholder": "بحث في البرامج النصية", - "install": "تثبيت", - "issue": "إصدار جديد", - "version_number": "الإصدار", - "updated": "آخر تحديث", - "total_installs": "إجمالي التثبيت", - "ratings": "التقييمات", - "good": "جيد", - "ok": "جيد", - "bad": "سيء", - "created_date": "تم إنشاؤه", - "redirect": "شوكة دهنية للكبار", - "filter": "تصفية اللغات الأخرى", - "dtime": "عرض المهلة", - "save": "حفظ", - "reset": "إعادة تعيين", - "preview_code": "كود المعاينة", - "saveFile": "احفظ الملف", - "newTab": "علامة تبويب جديدة", - "applies_to": "ينطبق على", - "license": "الترخيص", - "no_license": "لا يوجد", - "antifeatures": "إعلانات", - "userjs_fullscreen": "ملء الشاشة الكاملة التلقائي", - "listing_none": "(لا يوجد)", - "export_config": "تهيئة التصدير", - "export_theme": "تصدير السمة", - "import_config": "استيراد تهيئة الاستيراد", - "import_theme": "استيراد النسق", - "code_size": "حجم الرمز", - "prmpt_css": "التثبيت كأسلوب المستخدم؟", - "userjs_inject": "حقن Userscript+", - "userjs_close": "إغلاق Userscript+", - "userjs_sync": "Sync", - "userjs_autoinject": "Inject on load", - "auto_fetch": "Fetch on load", - "code": "Code", - "metadata": "Metadata", - "preview_metadata": "Preview Metadata", - "recommend_author": "Recommend Author", - "recommend_other": "Recommend Others", - "default_sort": "Default Sort" + 'ar': { + 'createdby': 'انشأ من قبل', + 'name': 'اسم', + 'daily_installs': 'التثبيت اليومي', + 'close': 'يغلق', + 'filterA': 'منقي', + 'max': 'تحقيق أقصى قدر', + 'min': 'تصغير', + 'search': 'يبحث', + 'search_placeholder': 'بحث في البرامج النصية', + 'install': 'تثبيت', + 'issue': 'إصدار جديد', + 'version_number': 'الإصدار', + 'updated': 'آخر تحديث', + 'total_installs': 'إجمالي التثبيت', + 'ratings': 'التقييمات', + 'good': 'جيد', + 'ok': 'جيد', + 'bad': 'سيء', + 'created_date': 'تم إنشاؤه', + 'redirect': 'شوكة دهنية للكبار', + 'filter': 'تصفية اللغات الأخرى', + 'dtime': 'عرض المهلة', + 'save': 'حفظ', + 'reset': 'إعادة تعيين', + 'preview_code': 'كود المعاينة', + 'saveFile': 'احفظ الملف', + 'newTab': 'علامة تبويب جديدة', + 'applies_to': 'ينطبق على', + 'license': 'الترخيص', + 'no_license': 'لا يوجد', + 'antifeatures': 'إعلانات', + 'userjs_fullscreen': 'ملء الشاشة الكاملة التلقائي', + 'listing_none': '(لا يوجد)', + 'export_config': 'تهيئة التصدير', + 'export_theme': 'تصدير السمة', + 'import_config': 'استيراد تهيئة الاستيراد', + 'import_theme': 'استيراد النسق', + 'code_size': 'حجم الرمز', + 'prmpt_css': 'التثبيت كأسلوب المستخدم؟', + 'userjs_inject': 'حقن Userscript+', + 'userjs_close': 'إغلاق Userscript+', + 'userjs_sync': 'Sync', + 'userjs_autoinject': 'Inject on load', + 'auto_fetch': 'Fetch on load', + 'code': 'Code', + 'metadata': 'Metadata', + 'preview_metadata': 'Preview Metadata', + 'recommend_author': 'Recommend Author', + 'recommend_other': 'Recommend Others', + 'default_sort': 'Default Sort' }, - "de": { - "createdby": "Erstellt von", - "name": "Name", - "daily_installs": "Tägliche Installationen", - "close": "Schließen Sie", - "filterA": "Filter", - "max": "Maximieren Sie", - "min": "minimieren", - "search": "Suche", - "search_placeholder": "Suche nach Userscripts", - "install": "Installieren Sie", - "issue": "Neue Ausgabe", - "version_number": "Version", - "updated": "Zuletzt aktualisiert", - "total_installs": "Installationen insgesamt", - "ratings": "Bewertungen", - "good": "Gut", - "ok": "Okay", - "bad": "Schlecht", - "created_date": "Erstellt", - "redirect": "Greasy Fork für Erwachsene", - "filter": "Andere Sprachen herausfiltern", - "dtime": "Zeitüberschreitung anzeigen", - "save": "Speichern Sie", - "reset": "Zurücksetzen", - "preview_code": "Vorschau Code", - "saveFile": "Datei speichern", - "newTab": "Neue Registerkarte", - "applies_to": "Gilt für", - "license": "Lizenz", - "no_license": "N/A", - "antifeatures": "Antifeatures", - "userjs_fullscreen": "Automatischer Vollbildmodus", - "listing_none": "(Keine)", - "export_config": "Konfig exportieren", - "export_theme": "Thema exportieren", - "import_config": "Konfig importieren", - "import_theme": "Thema importieren", - "code_size": "Code Größe", - "prmpt_css": "Als UserStyle installieren?", - "userjs_inject": "Userscript+ einfügen", - "userjs_close": "Userscript+ schließen", - "userjs_sync": "Sync", - "userjs_autoinject": "Inject on load", - "auto_fetch": "Fetch on load", - "code": "Quelltext", - "metadata": "Metadata", - "preview_metadata": "Preview Metadata", - "recommend_author": "Recommend Author", - "recommend_other": "Recommend Others", - "default_sort": "Default Sort" + 'de': { + 'createdby': 'Erstellt von', + 'name': 'Name', + 'daily_installs': 'Tägliche Installationen', + 'close': 'Schließen Sie', + 'filterA': 'Filter', + 'max': 'Maximieren Sie', + 'min': 'minimieren', + 'search': 'Suche', + 'search_placeholder': 'Suche nach Userscripts', + 'install': 'Installieren Sie', + 'issue': 'Neue Ausgabe', + 'version_number': 'Version', + 'updated': 'Zuletzt aktualisiert', + 'total_installs': 'Installationen insgesamt', + 'ratings': 'Bewertungen', + 'good': 'Gut', + 'ok': 'Okay', + 'bad': 'Schlecht', + 'created_date': 'Erstellt', + 'redirect': 'Greasy Fork für Erwachsene', + 'filter': 'Andere Sprachen herausfiltern', + 'dtime': 'Zeitüberschreitung anzeigen', + 'save': 'Speichern Sie', + 'reset': 'Zurücksetzen', + 'preview_code': 'Vorschau Code', + 'saveFile': 'Datei speichern', + 'newTab': 'Neue Registerkarte', + 'applies_to': 'Gilt für', + 'license': 'Lizenz', + 'no_license': 'N/A', + 'antifeatures': 'Antifeatures', + 'userjs_fullscreen': 'Automatischer Vollbildmodus', + 'listing_none': '(Keine)', + 'export_config': 'Konfig exportieren', + 'export_theme': 'Thema exportieren', + 'import_config': 'Konfig importieren', + 'import_theme': 'Thema importieren', + 'code_size': 'Code Größe', + 'prmpt_css': 'Als UserStyle installieren?', + 'userjs_inject': 'Userscript+ einfügen', + 'userjs_close': 'Userscript+ schließen', + 'userjs_sync': 'Sync', + 'userjs_autoinject': 'Inject on load', + 'auto_fetch': 'Fetch on load', + 'code': 'Quelltext', + 'metadata': 'Metadata', + 'preview_metadata': 'Preview Metadata', + 'recommend_author': 'Recommend Author', + 'recommend_other': 'Recommend Others', + 'default_sort': 'Default Sort' }, - "en": { - "createdby": "Created by", - "name": "Name", - "daily_installs": "Daily Installs", - "close": "Close", - "filterA": "Filter", - "max": "Maximize", - "min": "Minimize", - "search": "Search", - "search_placeholder": "Search for userscripts", - "install": "Install", - "issue": "New Issue", - "version_number": "Version", - "updated": "Last Updated", - "total_installs": "Total Installs", - "ratings": "Ratings", - "good": "Good", - "ok": "Okay", - "bad": "Bad", - "created_date": "Created", - "redirect": "Greasy Fork for adults", - "filter": "Filter out other languages", - "dtime": "Display Timeout", - "save": "Save", - "reset": "Reset", - "preview_code": "Preview Code", - "saveFile": "Download", - "newTab": "New Tab", - "applies_to": "Applies to", - "license": "License", - "no_license": "N/A", - "antifeatures": "Antifeatures", - "userjs_fullscreen": "Automatic Fullscreen", - "listing_none": "(None)", - "export_config": "Export Config", - "export_theme": "Export Theme", - "import_config": "Import Config", - "import_theme": "Import Theme", - "code_size": "Code Size", - "prmpt_css": "Install as UserStyle?", - "userjs_inject": "Inject Userscript+", - "userjs_close": "Close Userscript+", - "userjs_sync": "Sync", - "userjs_autoinject": "Inject on load", - "auto_fetch": "Fetch on load", - "code": "Code", - "metadata": "Metadata", - "preview_metadata": "Preview Metadata", - "recommend_author": "Recommend Author", - "recommend_other": "Recommend Others", - "default_sort": "Default Sort" + 'en': { + 'createdby': 'Created by', + 'name': 'Name', + 'daily_installs': 'Daily Installs', + 'close': 'Close', + 'filterA': 'Filter', + 'max': 'Maximize', + 'min': 'Minimize', + 'search': 'Search', + 'search_placeholder': 'Search for userscripts', + 'install': 'Install', + 'issue': 'New Issue', + 'version_number': 'Version', + 'updated': 'Last Updated', + 'total_installs': 'Total Installs', + 'ratings': 'Ratings', + 'good': 'Good', + 'ok': 'Okay', + 'bad': 'Bad', + 'created_date': 'Created', + 'redirect': 'Greasy Fork for adults', + 'filter': 'Filter out other languages', + 'dtime': 'Display Timeout', + 'save': 'Save', + 'reset': 'Reset', + 'preview_code': 'Preview Code', + 'saveFile': 'Download', + 'newTab': 'New Tab', + 'applies_to': 'Applies to', + 'license': 'License', + 'no_license': 'N/A', + 'antifeatures': 'Antifeatures', + 'userjs_fullscreen': 'Automatic Fullscreen', + 'listing_none': '(None)', + 'export_config': 'Export Config', + 'export_theme': 'Export Theme', + 'import_config': 'Import Config', + 'import_theme': 'Import Theme', + 'code_size': 'Code Size', + 'prmpt_css': 'Install as UserStyle?', + 'userjs_inject': 'Inject Userscript+', + 'userjs_close': 'Close Userscript+', + 'userjs_sync': 'Sync', + 'userjs_autoinject': 'Inject on load', + 'auto_fetch': 'Fetch on load', + 'code': 'Code', + 'metadata': 'Metadata', + 'preview_metadata': 'Preview Metadata', + 'recommend_author': 'Recommend Author', + 'recommend_other': 'Recommend Others', + 'default_sort': 'Default Sort' }, - "en_GB": { - "createdby": "Created by", - "name": "Name", - "daily_installs": "Daily Installs", - "close": "Close", - "filterA": "Filter", - "max": "Maximize", - "min": "Minimize", - "search": "Search", - "search_placeholder": "Search for userscripts", - "install": "Install", - "issue": "New Issue", - "version_number": "Version", - "updated": "Last Updated", - "total_installs": "Total Installs", - "ratings": "Ratings", - "good": "Good", - "ok": "Okay", - "bad": "Bad", - "created_date": "Created", - "redirect": "Greasy Fork for adults", - "filter": "Filter out other languages", - "dtime": "Display Timeout", - "save": "Save", - "reset": "Reset", - "preview_code": "Preview Code", - "saveFile": "Download", - "newTab": "New Tab", - "applies_to": "Applies to", - "license": "License", - "no_license": "N/A", - "antifeatures": "Antifeatures", - "userjs_fullscreen": "Automatic Fullscreen", - "listing_none": "(None)", - "export_config": "Export Config", - "export_theme": "Export Theme", - "import_config": "Import Config", - "import_theme": "Import Theme", - "code_size": "Code Size", - "prmpt_css": "Install as UserStyle?", - "userjs_inject": "Inject Userscript+", - "userjs_close": "Close Userscript+", - "userjs_sync": "Sync", - "userjs_autoinject": "Inject on load", - "auto_fetch": "Fetch on load", - "code": "Code", - "metadata": "Metadata", - "preview_metadata": "Preview Metadata", - "recommend_author": "Recommend Author", - "recommend_other": "Recommend Others", - "default_sort": "Default Sort" + 'en_GB': { + 'createdby': 'Created by', + 'name': 'Name', + 'daily_installs': 'Daily Installs', + 'close': 'Close', + 'filterA': 'Filter', + 'max': 'Maximize', + 'min': 'Minimize', + 'search': 'Search', + 'search_placeholder': 'Search for userscripts', + 'install': 'Install', + 'issue': 'New Issue', + 'version_number': 'Version', + 'updated': 'Last Updated', + 'total_installs': 'Total Installs', + 'ratings': 'Ratings', + 'good': 'Good', + 'ok': 'Okay', + 'bad': 'Bad', + 'created_date': 'Created', + 'redirect': 'Greasy Fork for adults', + 'filter': 'Filter out other languages', + 'dtime': 'Display Timeout', + 'save': 'Save', + 'reset': 'Reset', + 'preview_code': 'Preview Code', + 'saveFile': 'Download', + 'newTab': 'New Tab', + 'applies_to': 'Applies to', + 'license': 'License', + 'no_license': 'N/A', + 'antifeatures': 'Antifeatures', + 'userjs_fullscreen': 'Automatic Fullscreen', + 'listing_none': '(None)', + 'export_config': 'Export Config', + 'export_theme': 'Export Theme', + 'import_config': 'Import Config', + 'import_theme': 'Import Theme', + 'code_size': 'Code Size', + 'prmpt_css': 'Install as UserStyle?', + 'userjs_inject': 'Inject Userscript+', + 'userjs_close': 'Close Userscript+', + 'userjs_sync': 'Sync', + 'userjs_autoinject': 'Inject on load', + 'auto_fetch': 'Fetch on load', + 'code': 'Code', + 'metadata': 'Metadata', + 'preview_metadata': 'Preview Metadata', + 'recommend_author': 'Recommend Author', + 'recommend_other': 'Recommend Others', + 'default_sort': 'Default Sort' }, - "es": { - "createdby": "Creado por", - "name": "Nombre", - "daily_installs": "Instalaciones diarias", - "close": "Ya no se muestra", - "filterA": "Filtro", - "max": "Maximizar", - "min": "Minimizar", - "search": "Busque en", - "search_placeholder": "Buscar userscripts", - "install": "Instalar", - "issue": "Nueva edición", - "version_number": "Versión", - "updated": "Última actualización", - "total_installs": "Total de instalaciones", - "ratings": "Clasificaciones", - "good": "Bueno", - "ok": "Ok", - "bad": "Malo", - "created_date": "Creado", - "redirect": "Greasy Fork para adultos", - "filter": "Filtrar otros idiomas", - "dtime": "Mostrar el tiempo de espera", - "save": "Guardar", - "reset": "Reiniciar", - "preview_code": "Vista previa del código", - "saveFile": "Guardar archivo", - "newTab": "Guardar archivo", - "applies_to": "Se aplica a", - "license": "Licencia", - "no_license": "Desconocida", - "antifeatures": "Características indeseables", - "userjs_fullscreen": "Pantalla completa automática", - "listing_none": "(Ninguno)", - "export_config": "Exportar configuración", - "export_theme": "Exportar tema", - "import_config": "Importar configuración", - "import_theme": "Importar tema", - "code_size": "Código Tamaño", - "prmpt_css": "¿Instalar como UserStyle?", - "userjs_inject": "Inyectar Userscript+", - "userjs_close": "Cerrar Userscript+", - "userjs_sync": "Sync", - "userjs_autoinject": "Inject on load", - "auto_fetch": "Fetch on load", - "code": "Código", - "metadata": "Metadata", - "preview_metadata": "Preview Metadata", - "recommend_author": "Recommend Author", - "recommend_other": "Recommend Others", - "default_sort": "Default Sort" + 'es': { + 'createdby': 'Creado por', + 'name': 'Nombre', + 'daily_installs': 'Instalaciones diarias', + 'close': 'Ya no se muestra', + 'filterA': 'Filtro', + 'max': 'Maximizar', + 'min': 'Minimizar', + 'search': 'Busque en', + 'search_placeholder': 'Buscar userscripts', + 'install': 'Instalar', + 'issue': 'Nueva edición', + 'version_number': 'Versión', + 'updated': 'Última actualización', + 'total_installs': 'Total de instalaciones', + 'ratings': 'Clasificaciones', + 'good': 'Bueno', + 'ok': 'Ok', + 'bad': 'Malo', + 'created_date': 'Creado', + 'redirect': 'Greasy Fork para adultos', + 'filter': 'Filtrar otros idiomas', + 'dtime': 'Mostrar el tiempo de espera', + 'save': 'Guardar', + 'reset': 'Reiniciar', + 'preview_code': 'Vista previa del código', + 'saveFile': 'Guardar archivo', + 'newTab': 'Guardar archivo', + 'applies_to': 'Se aplica a', + 'license': 'Licencia', + 'no_license': 'Desconocida', + 'antifeatures': 'Características indeseables', + 'userjs_fullscreen': 'Pantalla completa automática', + 'listing_none': '(Ninguno)', + 'export_config': 'Exportar configuración', + 'export_theme': 'Exportar tema', + 'import_config': 'Importar configuración', + 'import_theme': 'Importar tema', + 'code_size': 'Código Tamaño', + 'prmpt_css': '¿Instalar como UserStyle?', + 'userjs_inject': 'Inyectar Userscript+', + 'userjs_close': 'Cerrar Userscript+', + 'userjs_sync': 'Sync', + 'userjs_autoinject': 'Inject on load', + 'auto_fetch': 'Fetch on load', + 'code': 'Código', + 'metadata': 'Metadata', + 'preview_metadata': 'Preview Metadata', + 'recommend_author': 'Recommend Author', + 'recommend_other': 'Recommend Others', + 'default_sort': 'Default Sort' }, - "fr": { - "createdby": "Créé par", - "name": "Nom", - "daily_installs": "Installations quotidiennes", - "close": "Ne plus montrer", - "filterA": "Filtre", - "max": "Maximiser", - "min": "Minimiser", - "search": "Recherche", - "search_placeholder": "Rechercher des userscripts", - "install": "Installer", - "issue": "Nouveau numéro", - "version_number": "Version", - "updated": "Dernière mise à jour", - "total_installs": "Total des installations", - "ratings": "Notations", - "good": "Bon", - "ok": "Ok", - "bad": "Mauvais", - "created_date": "Créé", - "redirect": "Greasy Fork pour les adultes", - "filter": "Filtrer les autres langues", - "dtime": "Délai d'affichage", - "save": "Sauvez", - "reset": "Réinitialiser", - "preview_code": "Prévisualiser le code", - "saveFile": "Enregistrer le fichier", - "newTab": "Nouvel onglet", - "applies_to": "S'applique à", - "license": "Licence", - "no_license": "N/A", - "antifeatures": "Antifeatures", - "userjs_fullscreen": "Plein écran automatique", - "listing_none": "(Aucun)", - "export_config": "Export Config", - "export_theme": "Exporter le thème", - "import_config": "Importer la configuration", - "import_theme": "Importer le thème", - "code_size": "Code Taille", - "prmpt_css": "Installer comme UserStyle ?", - "userjs_inject": "Injecter Userscript+", - "userjs_close": "Fermer Userscript+", - "userjs_sync": "Sync", - "userjs_autoinject": "Inject on load", - "auto_fetch": "Fetch on load", - "code": "Code", - "metadata": "Metadata", - "preview_metadata": "Preview Metadata", - "recommend_author": "Recommend Author", - "recommend_other": "Recommend Others", - "default_sort": "Default Sort" + 'fr': { + 'createdby': 'Créé par', + 'name': 'Nom', + 'daily_installs': 'Installations quotidiennes', + 'close': 'Ne plus montrer', + 'filterA': 'Filtre', + 'max': 'Maximiser', + 'min': 'Minimiser', + 'search': 'Recherche', + 'search_placeholder': 'Rechercher des userscripts', + 'install': 'Installer', + 'issue': 'Nouveau numéro', + 'version_number': 'Version', + 'updated': 'Dernière mise à jour', + 'total_installs': 'Total des installations', + 'ratings': 'Notations', + 'good': 'Bon', + 'ok': 'Ok', + 'bad': 'Mauvais', + 'created_date': 'Créé', + 'redirect': 'Greasy Fork pour les adultes', + 'filter': 'Filtrer les autres langues', + 'dtime': "Délai d'affichage", + 'save': 'Sauvez', + 'reset': 'Réinitialiser', + 'preview_code': 'Prévisualiser le code', + 'saveFile': 'Enregistrer le fichier', + 'newTab': 'Nouvel onglet', + 'applies_to': "S'applique à", + 'license': 'Licence', + 'no_license': 'N/A', + 'antifeatures': 'Antifeatures', + 'userjs_fullscreen': 'Plein écran automatique', + 'listing_none': '(Aucun)', + 'export_config': 'Export Config', + 'export_theme': 'Exporter le thème', + 'import_config': 'Importer la configuration', + 'import_theme': 'Importer le thème', + 'code_size': 'Code Taille', + 'prmpt_css': 'Installer comme UserStyle ?', + 'userjs_inject': 'Injecter Userscript+', + 'userjs_close': 'Fermer Userscript+', + 'userjs_sync': 'Sync', + 'userjs_autoinject': 'Inject on load', + 'auto_fetch': 'Fetch on load', + 'code': 'Code', + 'metadata': 'Metadata', + 'preview_metadata': 'Preview Metadata', + 'recommend_author': 'Recommend Author', + 'recommend_other': 'Recommend Others', + 'default_sort': 'Default Sort' }, - "ja": { - "createdby": "によって作成された", - "name": "名前", - "daily_installs": "デイリーインストール", - "close": "表示されなくなりました", - "filterA": "フィルター", - "max": "最大化", - "min": "ミニマム", - "search": "検索", - "search_placeholder": "ユーザースクリプトの検索", - "install": "インストール", - "issue": "新刊のご案内", - "version_number": "バージョン", - "updated": "最終更新日", - "total_installs": "総インストール数", - "ratings": "レーティング", - "good": "グッド", - "ok": "良い", - "bad": "悪い", - "created_date": "作成", - "redirect": "大人のGreasyfork", - "filter": "他の言語をフィルタリングする", - "dtime": "表示タイムアウト", - "save": "拯救", - "reset": "リセット", - "preview_code": "コードのプレビュー", - "saveFile": "ファイルを保存", - "newTab": "新しいタブ", - "applies_to": "適用対象", - "license": "ライセンス", - "no_license": "不明", - "antifeatures": "アンチ機能", - "userjs_fullscreen": "自動フルスクリーン", - "listing_none": "(なし)", - "export_config": "エクスポート設定", - "export_theme": "テーマのエクスポート", - "import_config": "設定のインポート", - "import_theme": "テーマのインポート", - "code_size": "コード・サイズ", - "prmpt_css": "UserStyleとしてインストールしますか?", - "userjs_inject": "Userscript+ を挿入", - "userjs_close": "Userscript+ を閉じる", - "userjs_sync": "Sync", - "userjs_autoinject": "Inject on load", - "auto_fetch": "Fetch on load", - "code": "コード", - "metadata": "Metadata", - "preview_metadata": "Preview Metadata", - "recommend_author": "Recommend Author", - "recommend_other": "Recommend Others", - "default_sort": "Default Sort" + 'ja': { + 'createdby': 'によって作成された', + 'name': '名前', + 'daily_installs': 'デイリーインストール', + 'close': '表示されなくなりました', + 'filterA': 'フィルター', + 'max': '最大化', + 'min': 'ミニマム', + 'search': '検索', + 'search_placeholder': 'ユーザースクリプトの検索', + 'install': 'インストール', + 'issue': '新刊のご案内', + 'version_number': 'バージョン', + 'updated': '最終更新日', + 'total_installs': '総インストール数', + 'ratings': 'レーティング', + 'good': 'グッド', + 'ok': '良い', + 'bad': '悪い', + 'created_date': '作成', + 'redirect': '大人のGreasyfork', + 'filter': '他の言語をフィルタリングする', + 'dtime': '表示タイムアウト', + 'save': '拯救', + 'reset': 'リセット', + 'preview_code': 'コードのプレビュー', + 'saveFile': 'ファイルを保存', + 'newTab': '新しいタブ', + 'applies_to': '適用対象', + 'license': 'ライセンス', + 'no_license': '不明', + 'antifeatures': 'アンチ機能', + 'userjs_fullscreen': '自動フルスクリーン', + 'listing_none': '(なし)', + 'export_config': 'エクスポート設定', + 'export_theme': 'テーマのエクスポート', + 'import_config': '設定のインポート', + 'import_theme': 'テーマのインポート', + 'code_size': 'コード・サイズ', + 'prmpt_css': 'UserStyleとしてインストールしますか?', + 'userjs_inject': 'Userscript+ を挿入', + 'userjs_close': 'Userscript+ を閉じる', + 'userjs_sync': 'Sync', + 'userjs_autoinject': 'Inject on load', + 'auto_fetch': 'Fetch on load', + 'code': 'コード', + 'metadata': 'Metadata', + 'preview_metadata': 'Preview Metadata', + 'recommend_author': 'Recommend Author', + 'recommend_other': 'Recommend Others', + 'default_sort': 'Default Sort' }, - "nl": { - "createdby": "Gemaakt door", - "name": "Naam", - "daily_installs": "Dagelijkse Installaties", - "close": "Sluit", - "filterA": "Filter", - "max": "Maximaliseer", - "min": "Minimaliseer", - "search": "Zoek", - "search_placeholder": "Zoeken naar gebruikersscripts", - "install": "Installeer", - "issue": "Nieuw Issue", - "version_number": "Versie", - "updated": "Laatste Update", - "total_installs": "Totale Installaties", - "ratings": "Beoordeling", - "good": "Goed", - "ok": "Ok", - "bad": "Slecht", - "created_date": "Aangemaakt", - "redirect": "Greasy Fork voor volwassenen", - "filter": "Filter andere talen", - "dtime": "Weergave timeout", - "save": "Opslaan", - "reset": "Opnieuw instellen", - "preview_code": "Voorbeeldcode", - "saveFile": "Bestand opslaan", - "newTab": "Nieuw tabblad", - "applies_to": "Geldt voor", - "license": "Licentie", - "no_license": "N.v.t.", - "antifeatures": "Functies voor eigen gewin", - "userjs_fullscreen": "Automatisch volledig scherm", - "listing_none": "(Geen)", - "export_config": "Configuratie exporteren", - "export_theme": "Thema exporteren", - "import_config": "Configuratie importeren", - "import_theme": "Thema importeren", - "code_size": "Code Grootte", - "prmpt_css": "Installeren als UserStyle?", - "userjs_inject": "Injecteer Userscript+", - "userjs_close": "Sluit Userscript+", - "userjs_sync": "Sync", - "userjs_autoinject": "Inject on load", - "auto_fetch": "Fetch on load", - "code": "Code", - "metadata": "Metadata", - "preview_metadata": "Preview Metadata", - "recommend_author": "Recommend Author", - "recommend_other": "Recommend Others", - "default_sort": "Default Sort" + 'nl': { + 'createdby': 'Gemaakt door', + 'name': 'Naam', + 'daily_installs': 'Dagelijkse Installaties', + 'close': 'Sluit', + 'filterA': 'Filter', + 'max': 'Maximaliseer', + 'min': 'Minimaliseer', + 'search': 'Zoek', + 'search_placeholder': 'Zoeken naar gebruikersscripts', + 'install': 'Installeer', + 'issue': 'Nieuw Issue', + 'version_number': 'Versie', + 'updated': 'Laatste Update', + 'total_installs': 'Totale Installaties', + 'ratings': 'Beoordeling', + 'good': 'Goed', + 'ok': 'Ok', + 'bad': 'Slecht', + 'created_date': 'Aangemaakt', + 'redirect': 'Greasy Fork voor volwassenen', + 'filter': 'Filter andere talen', + 'dtime': 'Weergave timeout', + 'save': 'Opslaan', + 'reset': 'Opnieuw instellen', + 'preview_code': 'Voorbeeldcode', + 'saveFile': 'Bestand opslaan', + 'newTab': 'Nieuw tabblad', + 'applies_to': 'Geldt voor', + 'license': 'Licentie', + 'no_license': 'N.v.t.', + 'antifeatures': 'Functies voor eigen gewin', + 'userjs_fullscreen': 'Automatisch volledig scherm', + 'listing_none': '(Geen)', + 'export_config': 'Configuratie exporteren', + 'export_theme': 'Thema exporteren', + 'import_config': 'Configuratie importeren', + 'import_theme': 'Thema importeren', + 'code_size': 'Code Grootte', + 'prmpt_css': 'Installeren als UserStyle?', + 'userjs_inject': 'Injecteer Userscript+', + 'userjs_close': 'Sluit Userscript+', + 'userjs_sync': 'Sync', + 'userjs_autoinject': 'Inject on load', + 'auto_fetch': 'Fetch on load', + 'code': 'Code', + 'metadata': 'Metadata', + 'preview_metadata': 'Preview Metadata', + 'recommend_author': 'Recommend Author', + 'recommend_other': 'Recommend Others', + 'default_sort': 'Default Sort' }, - "pl": { - "createdby": "Stworzony przez", - "name": "Nazwa", - "daily_installs": "Codzienne instalacje", - "close": "Zamknij", - "filterA": "Filtr", - "max": "Maksymalizuj", - "min": "Minimalizuj", - "search": "Wyszukiwanie", - "search_placeholder": "Wyszukiwanie skryptów użytkownika", - "install": "Instalacja", - "issue": "Nowy numer", - "version_number": "Wersja", - "updated": "Ostatnia aktualizacja", - "total_installs": "Łączna liczba instalacji", - "ratings": "Oceny", - "good": "Dobry", - "ok": "Ok", - "bad": "Zły", - "created_date": "Utworzony", - "redirect": "Greasy Fork dla dorosłych", - "filter": "Odfiltruj inne języki", - "dtime": "Limit czasu wyświetlania", - "save": "Zapisz", - "reset": "Reset", - "preview_code": "Kod podglądu", - "saveFile": "Zapisz plik", - "newTab": "Nowa karta", - "applies_to": "Dotyczy", - "license": "Licencja", - "no_license": "N/A", - "antifeatures": "Antywzorce", - "userjs_fullscreen": "Automatyczny pełny ekran", - "listing_none": "(Brak)", - "export_config": "Konfiguracja eksportu", - "export_theme": "Motyw eksportu", - "import_config": "Importuj konfigurację", - "import_theme": "Importuj motyw", - "code_size": "Kod Rozmiar", - "prmpt_css": "Zainstalować jako UserStyle?", - "userjs_inject": "Wstrzyknij Userscript+", - "userjs_close": "Zamknij Userscript+", - "userjs_sync": "Sync", - "userjs_autoinject": "Inject on load", - "auto_fetch": "Fetch on load", - "code": "Kod", - "metadata": "Metadata", - "preview_metadata": "Preview Metadata", - "recommend_author": "Recommend Author", - "recommend_other": "Recommend Others", - "default_sort": "Default Sort" + 'pl': { + 'createdby': 'Stworzony przez', + 'name': 'Nazwa', + 'daily_installs': 'Codzienne instalacje', + 'close': 'Zamknij', + 'filterA': 'Filtr', + 'max': 'Maksymalizuj', + 'min': 'Minimalizuj', + 'search': 'Wyszukiwanie', + 'search_placeholder': 'Wyszukiwanie skryptów użytkownika', + 'install': 'Instalacja', + 'issue': 'Nowy numer', + 'version_number': 'Wersja', + 'updated': 'Ostatnia aktualizacja', + 'total_installs': 'Łączna liczba instalacji', + 'ratings': 'Oceny', + 'good': 'Dobry', + 'ok': 'Ok', + 'bad': 'Zły', + 'created_date': 'Utworzony', + 'redirect': 'Greasy Fork dla dorosłych', + 'filter': 'Odfiltruj inne języki', + 'dtime': 'Limit czasu wyświetlania', + 'save': 'Zapisz', + 'reset': 'Reset', + 'preview_code': 'Kod podglądu', + 'saveFile': 'Zapisz plik', + 'newTab': 'Nowa karta', + 'applies_to': 'Dotyczy', + 'license': 'Licencja', + 'no_license': 'N/A', + 'antifeatures': 'Antywzorce', + 'userjs_fullscreen': 'Automatyczny pełny ekran', + 'listing_none': '(Brak)', + 'export_config': 'Konfiguracja eksportu', + 'export_theme': 'Motyw eksportu', + 'import_config': 'Importuj konfigurację', + 'import_theme': 'Importuj motyw', + 'code_size': 'Kod Rozmiar', + 'prmpt_css': 'Zainstalować jako UserStyle?', + 'userjs_inject': 'Wstrzyknij Userscript+', + 'userjs_close': 'Zamknij Userscript+', + 'userjs_sync': 'Sync', + 'userjs_autoinject': 'Inject on load', + 'auto_fetch': 'Fetch on load', + 'code': 'Kod', + 'metadata': 'Metadata', + 'preview_metadata': 'Preview Metadata', + 'recommend_author': 'Recommend Author', + 'recommend_other': 'Recommend Others', + 'default_sort': 'Default Sort' }, - "ru": { - "createdby": "Сделано", - "name": "Имя", - "daily_installs": "Ежедневные установки", - "close": "Больше не показывать", - "filterA": "Фильтр", - "max": "Максимизировать", - "min": "Минимизировать", - "search": "Поиск", - "search_placeholder": "Поиск юзерскриптов", - "install": "Установите", - "issue": "Новый выпуск", - "version_number": "Версия", - "updated": "Последнее обновление", - "total_installs": "Всего установок", - "ratings": "Рейтинги", - "good": "Хорошо", - "ok": "Хорошо", - "bad": "Плохо", - "created_date": "Создано", - "redirect": "Greasy Fork для взрослых", - "filter": "Отфильтровать другие языки", - "dtime": "Тайм-аут отображения", - "save": "Сохранить", - "reset": "Перезагрузить", - "preview_code": "Предварительный просмотр кода", - "saveFile": "Сохранить файл", - "newTab": "Новая вкладка", - "applies_to": "Применяется к", - "license": "Лицензия", - "no_license": "Недоступно", - "antifeatures": "Нежелательная функциональность", - "userjs_fullscreen": "Автоматический полноэкранный режим", - "listing_none": "(нет)", - "export_config": "Экспорт конфигурации", - "export_theme": "Экспорт темы", - "import_config": "Импорт конфигурации", - "import_theme": "Импортировать тему", - "code_size": "Код Размер", - "prmpt_css": "Установить как UserStyle?", - "userjs_inject": "Вставить Userscript+", - "userjs_close": "Закрыть Userscript+", - "userjs_sync": "Sync", - "userjs_autoinject": "Inject on load", - "auto_fetch": "Fetch on load", - "code": "Исходный код", - "metadata": "Metadata", - "preview_metadata": "Preview Metadata", - "recommend_author": "Recommend Author", - "recommend_other": "Recommend Others", - "default_sort": "Default Sort" + 'ru': { + 'createdby': 'Сделано', + 'name': 'Имя', + 'daily_installs': 'Ежедневные установки', + 'close': 'Больше не показывать', + 'filterA': 'Фильтр', + 'max': 'Максимизировать', + 'min': 'Минимизировать', + 'search': 'Поиск', + 'search_placeholder': 'Поиск юзерскриптов', + 'install': 'Установите', + 'issue': 'Новый выпуск', + 'version_number': 'Версия', + 'updated': 'Последнее обновление', + 'total_installs': 'Всего установок', + 'ratings': 'Рейтинги', + 'good': 'Хорошо', + 'ok': 'Хорошо', + 'bad': 'Плохо', + 'created_date': 'Создано', + 'redirect': 'Greasy Fork для взрослых', + 'filter': 'Отфильтровать другие языки', + 'dtime': 'Тайм-аут отображения', + 'save': 'Сохранить', + 'reset': 'Перезагрузить', + 'preview_code': 'Предварительный просмотр кода', + 'saveFile': 'Сохранить файл', + 'newTab': 'Новая вкладка', + 'applies_to': 'Применяется к', + 'license': 'Лицензия', + 'no_license': 'Недоступно', + 'antifeatures': 'Нежелательная функциональность', + 'userjs_fullscreen': 'Автоматический полноэкранный режим', + 'listing_none': '(нет)', + 'export_config': 'Экспорт конфигурации', + 'export_theme': 'Экспорт темы', + 'import_config': 'Импорт конфигурации', + 'import_theme': 'Импортировать тему', + 'code_size': 'Код Размер', + 'prmpt_css': 'Установить как UserStyle?', + 'userjs_inject': 'Вставить Userscript+', + 'userjs_close': 'Закрыть Userscript+', + 'userjs_sync': 'Sync', + 'userjs_autoinject': 'Inject on load', + 'auto_fetch': 'Fetch on load', + 'code': 'Исходный код', + 'metadata': 'Metadata', + 'preview_metadata': 'Preview Metadata', + 'recommend_author': 'Recommend Author', + 'recommend_other': 'Recommend Others', + 'default_sort': 'Default Sort' }, - "zh": { - "createdby": "由...制作", - "name": "姓名", - "daily_installs": "日常安装", - "close": "不再显示", - "filterA": "过滤器", - "max": "最大化", - "min": "最小化", - "search": "搜索", - "search_placeholder": "搜索用户脚本", - "install": "安装", - "issue": "新问题", - "version_number": "版本", - "updated": "最后更新", - "total_installs": "总安装量", - "ratings": "评级", - "good": "好的", - "ok": "好的", - "bad": "不好", - "created_date": "创建", - "redirect": "大人的Greasyfork", - "filter": "过滤掉其他语言", - "dtime": "显示超时", - "save": "拯救", - "reset": "重置", - "preview_code": "预览代码", - "saveFile": "保存存档", - "newTab": "新标签", - "applies_to": "适用于", - "license": "许可证", - "no_license": "暂无", - "antifeatures": "可能不受欢迎的功能", - "userjs_fullscreen": "自动全屏", - "listing_none": "(无)", - "export_config": "导出配置", - "export_theme": "导出主题", - "import_config": "导入配置", - "import_theme": "导入主题", - "code_size": "代码 尺寸", - "prmpt_css": "安装为用户风格?", - "userjs_inject": "注入 Userscript+", - "userjs_close": "关闭 Userscript+", - "userjs_sync": "Sync", - "userjs_autoinject": "Inject on load", - "auto_fetch": "Fetch on load", - "code": "代码", - "metadata": "Metadata", - "preview_metadata": "Preview Metadata", - "recommend_author": "Recommend Author", - "recommend_other": "Recommend Others", - "default_sort": "Default Sort" + 'zh': { + 'createdby': '由...制作', + 'name': '姓名', + 'daily_installs': '日常安装', + 'close': '不再显示', + 'filterA': '过滤器', + 'max': '最大化', + 'min': '最小化', + 'search': '搜索', + 'search_placeholder': '搜索用户脚本', + 'install': '安装', + 'issue': '新问题', + 'version_number': '版本', + 'updated': '最后更新', + 'total_installs': '总安装量', + 'ratings': '评级', + 'good': '好的', + 'ok': '好的', + 'bad': '不好', + 'created_date': '创建', + 'redirect': '大人的Greasyfork', + 'filter': '过滤掉其他语言', + 'dtime': '显示超时', + 'save': '拯救', + 'reset': '重置', + 'preview_code': '预览代码', + 'saveFile': '保存存档', + 'newTab': '新标签', + 'applies_to': '适用于', + 'license': '许可证', + 'no_license': '暂无', + 'antifeatures': '可能不受欢迎的功能', + 'userjs_fullscreen': '自动全屏', + 'listing_none': '(无)', + 'export_config': '导出配置', + 'export_theme': '导出主题', + 'import_config': '导入配置', + 'import_theme': '导入主题', + 'code_size': '代码 尺寸', + 'prmpt_css': '安装为用户风格?', + 'userjs_inject': '注入 Userscript+', + 'userjs_close': '关闭 Userscript+', + 'userjs_sync': 'Sync', + 'userjs_autoinject': 'Inject on load', + 'auto_fetch': 'Fetch on load', + 'code': '代码', + 'metadata': 'Metadata', + 'preview_metadata': 'Preview Metadata', + 'recommend_author': 'Recommend Author', + 'recommend_other': 'Recommend Others', + 'default_sort': 'Default Sort' }, - "zh_CN": { - "createdby": "由...制作", - "name": "姓名", - "daily_installs": "日常安装", - "close": "不再显示", - "filterA": "过滤器", - "max": "最大化", - "min": "最小化", - "search": "搜索", - "search_placeholder": "搜索用户脚本", - "install": "安装", - "issue": "新问题", - "version_number": "版本", - "updated": "最后更新", - "total_installs": "总安装量", - "ratings": "评级", - "good": "好的", - "ok": "好的", - "bad": "不好", - "created_date": "创建", - "redirect": "大人的Greasyfork", - "filter": "过滤掉其他语言", - "dtime": "显示超时", - "save": "拯救", - "reset": "重置", - "preview_code": "预览代码", - "saveFile": "保存存档", - "newTab": "新标签", - "applies_to": "适用于", - "license": "许可证", - "no_license": "暂无", - "antifeatures": "可能不受欢迎的功能", - "userjs_fullscreen": "自动全屏", - "listing_none": "(无)", - "export_config": "导出配置", - "export_theme": "导出主题", - "import_config": "导入配置", - "import_theme": "导入主题", - "code_size": "代码 尺寸", - "prmpt_css": "安装为用户风格?", - "userjs_inject": "注入 Userscript+", - "userjs_close": "关闭 Userscript+", - "userjs_sync": "Sync", - "userjs_autoinject": "Inject on load", - "auto_fetch": "Fetch on load", - "code": "代码", - "metadata": "Metadata", - "preview_metadata": "Preview Metadata", - "recommend_author": "Recommend Author", - "recommend_other": "Recommend Others", - "default_sort": "Default Sort" + 'zh_CN': { + 'createdby': '由...制作', + 'name': '姓名', + 'daily_installs': '日常安装', + 'close': '不再显示', + 'filterA': '过滤器', + 'max': '最大化', + 'min': '最小化', + 'search': '搜索', + 'search_placeholder': '搜索用户脚本', + 'install': '安装', + 'issue': '新问题', + 'version_number': '版本', + 'updated': '最后更新', + 'total_installs': '总安装量', + 'ratings': '评级', + 'good': '好的', + 'ok': '好的', + 'bad': '不好', + 'created_date': '创建', + 'redirect': '大人的Greasyfork', + 'filter': '过滤掉其他语言', + 'dtime': '显示超时', + 'save': '拯救', + 'reset': '重置', + 'preview_code': '预览代码', + 'saveFile': '保存存档', + 'newTab': '新标签', + 'applies_to': '适用于', + 'license': '许可证', + 'no_license': '暂无', + 'antifeatures': '可能不受欢迎的功能', + 'userjs_fullscreen': '自动全屏', + 'listing_none': '(无)', + 'export_config': '导出配置', + 'export_theme': '导出主题', + 'import_config': '导入配置', + 'import_theme': '导入主题', + 'code_size': '代码 尺寸', + 'prmpt_css': '安装为用户风格?', + 'userjs_inject': '注入 Userscript+', + 'userjs_close': '关闭 Userscript+', + 'userjs_sync': 'Sync', + 'userjs_autoinject': 'Inject on load', + 'auto_fetch': 'Fetch on load', + 'code': '代码', + 'metadata': 'Metadata', + 'preview_metadata': 'Preview Metadata', + 'recommend_author': 'Recommend Author', + 'recommend_other': 'Recommend Others', + 'default_sort': 'Default Sort' }, - "zh_TW": { - "createdby": "由...制作", - "name": "姓名", - "daily_installs": "日常安装", - "close": "不再显示", - "filterA": "过滤器", - "max": "最大化", - "min": "最小化", - "search": "搜索", - "search_placeholder": "搜索用户脚本", - "install": "安装", - "issue": "新问题", - "version_number": "版本", - "updated": "最后更新", - "total_installs": "总安装量", - "ratings": "评级", - "good": "好的", - "ok": "好的", - "bad": "不好", - "created_date": "创建", - "redirect": "大人的Greasyfork", - "filter": "过滤掉其他语言", - "dtime": "显示超时", - "save": "拯救", - "reset": "重置", - "preview_code": "预览代码", - "saveFile": "保存存档", - "newTab": "新标签", - "applies_to": "适用于", - "license": "许可证", - "no_license": "暂无", - "antifeatures": "可能不受欢迎的功能", - "userjs_fullscreen": "自动全屏", - "listing_none": "(无)", - "export_config": "导出配置", - "export_theme": "导出主题", - "import_config": "导入配置", - "import_theme": "导入主题", - "code_size": "代码 尺寸", - "prmpt_css": "作為使用者樣式安裝?", - "userjs_inject": "注入用戶腳本+", - "userjs_close": "關閉用戶腳本+", - "userjs_sync": "Sync", - "userjs_autoinject": "Inject on load", - "auto_fetch": "Fetch on load", - "code": "代碼", - "metadata": "Metadata", - "preview_metadata": "Preview Metadata", - "recommend_author": "Recommend Author", - "recommend_other": "Recommend Others", - "default_sort": "Default Sort" + 'zh_TW': { + 'createdby': '由...制作', + 'name': '姓名', + 'daily_installs': '日常安装', + 'close': '不再显示', + 'filterA': '过滤器', + 'max': '最大化', + 'min': '最小化', + 'search': '搜索', + 'search_placeholder': '搜索用户脚本', + 'install': '安装', + 'issue': '新问题', + 'version_number': '版本', + 'updated': '最后更新', + 'total_installs': '总安装量', + 'ratings': '评级', + 'good': '好的', + 'ok': '好的', + 'bad': '不好', + 'created_date': '创建', + 'redirect': '大人的Greasyfork', + 'filter': '过滤掉其他语言', + 'dtime': '显示超时', + 'save': '拯救', + 'reset': '重置', + 'preview_code': '预览代码', + 'saveFile': '保存存档', + 'newTab': '新标签', + 'applies_to': '适用于', + 'license': '许可证', + 'no_license': '暂无', + 'antifeatures': '可能不受欢迎的功能', + 'userjs_fullscreen': '自动全屏', + 'listing_none': '(无)', + 'export_config': '导出配置', + 'export_theme': '导出主题', + 'import_config': '导入配置', + 'import_theme': '导入主题', + 'code_size': '代码 尺寸', + 'prmpt_css': '作為使用者樣式安裝?', + 'userjs_inject': '注入用戶腳本+', + 'userjs_close': '關閉用戶腳本+', + 'userjs_sync': 'Sync', + 'userjs_autoinject': 'Inject on load', + 'auto_fetch': 'Fetch on load', + 'code': '代碼', + 'metadata': 'Metadata', + 'preview_metadata': 'Preview Metadata', + 'recommend_author': 'Recommend Author', + 'recommend_other': 'Recommend Others', + 'default_sort': 'Default Sort' } }; /** [source code](https://github.com/magicoflolis/Userscript-Plus/blob/master/src/sass/_main.scss) */ diff --git a/src/UserJS/header.js b/src/UserJS/header.js index 109fd04..54d3bb0 100644 --- a/src/UserJS/header.js +++ b/src/UserJS/header.js @@ -32,7 +32,7 @@ if (!(typeof userjs === 'object' && userjs.UserJS)) { return; } /** Native implementation exists */ -if (window.trustedTypes && window.trustedTypes.createPolicy) window.trustedTypes.createPolicy('default', { createHTML: (string) => string }); +if (window.trustedTypes && window.trustedTypes.createPolicy) window.trustedTypes.createPolicy('default', { createHTML: (string) => string, createScript: (string) => string, createScriptURL: (string) => string }); /** [i18n directory](https://github.com/magicoflolis/Userscript-Plus/tree/master/src/_locales) */ const translations = [[languageList]]; /** [source code](https://github.com/magicoflolis/Userscript-Plus/blob/master/src/sass/_main.scss) */ From 7145c8c997b900a2bffab16a3ff486ea5b7e86f2 Mon Sep 17 00:00:00 2001 From: Magic Date: Fri, 4 Jul 2025 09:15:36 -0700 Subject: [PATCH 2/3] v7.6.8 Signed-off-by: Magic --- CHANGELOG.user.md | 16 +++++++++++++++- UserJS.json | 2 +- dist/magic-userjs.meta.js | 2 +- dist/magic-userjs.user.js | 22 ++++++++++++---------- src/UserJS/header.js | 18 ++++++++++-------- 5 files changed, 39 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.user.md b/CHANGELOG.user.md index 4f89b64..4fd169f 100644 --- a/CHANGELOG.user.md +++ b/CHANGELOG.user.md @@ -5,10 +5,24 @@ * SVG elements don't load on every webpage: * _can be blocked by host, external scripts, web extensions, etc._ +**TODO:** + +* Finish translations. +* Finish blacklist section. +* GitHub engine - filter out UserScript and UserStyles that don't match the host +* Rework TrustedTypePolicy code + +## v7.6.8 + +* Bug fixes: + * Fixed [#70](https://github.com/magicoflolis/Userscript-Plus/issues/70) + +--- + ## v7.6.7 * Bug fixes: - * Fixed https://github.com/magicoflolis/Userscript-Plus/issues/69 + * Fixed [#69](https://github.com/magicoflolis/Userscript-Plus/issues/69) --- diff --git a/UserJS.json b/UserJS.json index da5b098..a814551 100644 --- a/UserJS.json +++ b/UserJS.json @@ -1,5 +1,5 @@ { - "version": "7.6.7", + "version": "7.6.8", "name": "Magic Userscript+ : Show Site All UserJS", "description": "Finds available userscripts for the current webpage.", "author": "Magic ", diff --git a/dist/magic-userjs.meta.js b/dist/magic-userjs.meta.js index 7166bc2..5924b2f 100644 --- a/dist/magic-userjs.meta.js +++ b/dist/magic-userjs.meta.js @@ -1,5 +1,5 @@ // ==UserScript== -// @version 7.6.7 +// @version 7.6.8 // @name Magic Userscript+ : Show Site All UserJS // @name:ar Magic Userscript+: عرض جميع ملفات UserJS // @name:de Magic Userscript+ : Website anzeigen Alle UserJS diff --git a/dist/magic-userjs.user.js b/dist/magic-userjs.user.js index b97e2b7..ba6c1a6 100644 --- a/dist/magic-userjs.user.js +++ b/dist/magic-userjs.user.js @@ -1,5 +1,5 @@ // ==UserScript== -// @version 7.6.7 +// @version 7.6.8 // @name Magic Userscript+ : Show Site All UserJS // @name:ar Magic Userscript+: عرض جميع ملفات UserJS // @name:de Magic Userscript+ : Website anzeigen Alle UserJS @@ -66,13 +66,11 @@ const inIframe = (() => { try { return window.self !== window.top; - } catch (e) { + } catch { return true; } })(); -if (inIframe) { - return; -} +if (inIframe) return; let userjs = self.userjs; /** * Skip text/plain documents, based on uBlock Origin `vapi.js` file @@ -89,11 +87,15 @@ if ( } else { console.error('[%cMagic Userscript+%c] %cERROR','color: rgb(29, 155, 240);','','color: rgb(249, 24, 128);', `MIME type is not a document, got "${document.contentType || ''}"`); } -if (!(typeof userjs === 'object' && userjs.UserJS)) { - return; +if (!(typeof userjs === 'object' && userjs.UserJS)) return; +{ + /** Native implementation exists */ + const excludePolicy = [ + 'outlook.office.com' + ]; + const hostname = location?.hostname || ''; + if (window.trustedTypes && window.trustedTypes.createPolicy && !hostname.includes(excludePolicy)) window.trustedTypes.createPolicy('default', { createHTML: (string) => string, createScript: (string) => string, createScriptURL: (string) => string }); } -/** Native implementation exists */ -if (window.trustedTypes && window.trustedTypes.createPolicy) window.trustedTypes.createPolicy('default', { createHTML: (string) => string, createScript: (string) => string, createScriptURL: (string) => string }); /** [i18n directory](https://github.com/magicoflolis/Userscript-Plus/tree/master/src/_locales) */ const translations = { 'ar': { @@ -5200,7 +5202,7 @@ function primaryFN() { lb.append(divDesc); sec.append(lb); container.cfgpage.append(sec); - !cfgSec.has(sec) && cfgSec.add(sec); + if(!cfgSec.has(sec)) cfgSec.add(sec); return sec; }; const sections = { diff --git a/src/UserJS/header.js b/src/UserJS/header.js index 54d3bb0..076c916 100644 --- a/src/UserJS/header.js +++ b/src/UserJS/header.js @@ -5,13 +5,11 @@ const inIframe = (() => { try { return window.self !== window.top; - } catch (e) { + } catch { return true; } })(); -if (inIframe) { - return; -} +if (inIframe) return; let userjs = self.userjs; /** * Skip text/plain documents, based on uBlock Origin `vapi.js` file @@ -28,11 +26,15 @@ if ( } else { console.error('[%cMagic Userscript+%c] %cERROR','color: rgb(29, 155, 240);','','color: rgb(249, 24, 128);', `MIME type is not a document, got "${document.contentType || ''}"`); } -if (!(typeof userjs === 'object' && userjs.UserJS)) { - return; +if (!(typeof userjs === 'object' && userjs.UserJS)) return; +{ + /** Native implementation exists */ + const excludePolicy = [ + 'outlook.office.com' + ]; + const hostname = location?.hostname || ''; + if (window.trustedTypes && window.trustedTypes.createPolicy && !hostname.includes(excludePolicy)) window.trustedTypes.createPolicy('default', { createHTML: (string) => string, createScript: (string) => string, createScriptURL: (string) => string }); } -/** Native implementation exists */ -if (window.trustedTypes && window.trustedTypes.createPolicy) window.trustedTypes.createPolicy('default', { createHTML: (string) => string, createScript: (string) => string, createScriptURL: (string) => string }); /** [i18n directory](https://github.com/magicoflolis/Userscript-Plus/tree/master/src/_locales) */ const translations = [[languageList]]; /** [source code](https://github.com/magicoflolis/Userscript-Plus/blob/master/src/sass/_main.scss) */ From 411a335f27218cbcdfcb3fdeac10a5aef6531933 Mon Sep 17 00:00:00 2001 From: Magic Date: Wed, 9 Jul 2025 08:29:14 -0700 Subject: [PATCH 3/3] Updated CHANGELOG.user.md Signed-off-by: Magic --- CHANGELOG.user.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.user.md b/CHANGELOG.user.md index 4fd169f..c67f69b 100644 --- a/CHANGELOG.user.md +++ b/CHANGELOG.user.md @@ -4,6 +4,9 @@ * SVG elements don't load on every webpage: * _can be blocked by host, external scripts, web extensions, etc._ +* Outlook Website Loading Problem [#70](https://github.com/magicoflolis/Userscript-Plus/issues/70) + * Recommend excluding this userscript on `*.office.com` domains within your userscript manager or switch to the webextension version as it does not injected itself into the page. + * Caused by `Duplicated Default Trusted Types policy`. **TODO:** @@ -15,7 +18,7 @@ ## v7.6.8 * Bug fixes: - * Fixed [#70](https://github.com/magicoflolis/Userscript-Plus/issues/70) + * ~~Fixed [#70](https://github.com/magicoflolis/Userscript-Plus/issues/70)~~ --- @@ -194,7 +197,7 @@ * Added [GreasyFork Bullshit Filter](https://greasyfork.org/scripts/12179) into list. * You can enable it under "List Filters" in the config. * You can also do `filter:` in the search bar to quickly filter the list. - * Full list [here](https://github.com/magicoflolis/Userscript-Plus/tree/master/wiki/README.md) + * Full list here: [Wiki Page](https://github.com/magicoflolis/Userscript-Plus/tree/master/wiki/README.md) * Example: `filter:ascii` => filters out non-ASCII scripts **Known Issues:**