Автоматически заменяет загадочные коды стран на соответствующий флаг. Решение для пользователей Chromium под Windows!
// ==UserScript== // @name Country Flag Fixer // @namespace https://github.com/matthijs110/chromium-country-flags/ // @version 1.2.5 // @license MIT // @description Replaces mysterious country codes automatically with the corresponding flag. The solution for Chromium users on Windows! // @description:ar يستبدل رموز البلد الغامضة تلقائيًا بالعلم المقابل. الحل لمستخدمي Chromium على Windows! // @description:bg Заменя автоматично мистериозните кодове на страните със съответния флаг. Решението за потребителите на Chromium в Windows! // @description:cs Automaticky nahradí záhadné kódy zemí odpovídající vlajkou. Řešení pro uživatele Chromu v systému Windows! // @description:da Erstatter automatisk mystiske landekoder med det tilsvarende flag. Løsningen for Chromium-brugere på Windows! // @description:de Ersetzt mysteriöse Ländercodes automatisch durch die entsprechende Flagge. Die Lösung für Chromium-Nutzer unter Windows! // @description:el Αντικαθιστά αυτόματα τους μυστηριώδεις κωδικούς χωρών με την αντίστοιχη σημαία. Η λύση για τους χρήστες του Chromium στα Windows! // @description:en-GB Replaces mysterious country codes automatically with the corresponding flag. The solution for Chromium users on Windows! // @description:es Sustituye automáticamente los códigos de país misteriosos por la bandera correspondiente. ¡La solución para los usuarios de Chromium en Windows! // @description:et Asendab salapärased riigikoodid automaatselt vastava lipuga. Lahendus Chromiumi kasutajatele Windowsis! // @description:fi Korvaa salaperäiset maakoodit automaattisesti vastaavalla lipulla. Ratkaisu Chromiumin käyttäjille Windowsissa! // @description:fr Remplace automatiquement les codes pays mystérieux par le drapeau correspondant. La solution pour les utilisateurs de Chromium sur Windows! // @description:he מחליף אוטומטית את קודי המדינה המסתוריים בדגל המתאים. הפתרון למשתמשי Chromium ב-Windows! // @description:hi रहस्यमय देश कोड को स्वचालित रूप से संबंधित ध्वज के साथ बदल देता है। विंडोज़ पर क्रोमियम उपयोगकर्ताओं के लिए समाधान! // @description:hu A rejtélyes országkódokat automatikusan helyettesíti a megfelelő zászlóval. A megoldás a Chromium felhasználók számára Windowson! // @description:id Mengganti kode negara misterius secara otomatis dengan bendera yang s###ai. Solusi untuk pengguna Chromium di Windows! // @description:it Sostituisce automaticamente i codici paese misteriosi con la bandiera corrispondente. La soluzione per gli utenti di Chromium su Windows! // @description:ja 謎の国番号を対応する国旗に自動的に置き換える。WindowsのChromiumユーザーのためのソリューション! // @description:ko 신비한 국가 코드를 해당 플래그로 자동 교체합니다. Windows의 Chromium 사용자를 위한 솔루션! // @description:lv Paslaptingus šalių kodus automatiškai pakeičia atitinkama vėliava. Sprendimas \"Chromium\" naudotojams \"Windows\" sistemoje! // @description:nl Vervangt mysterieuze landcodes automatisch door de overeenkomstige vlag. De oplossing voor Chromium gebruikers op Windows! // @description:no Erstatter mystiske landskoder automatisk med det tilsvarende flagget. Løsningen for Chromium-brukere på Windows! // @description:pl Automatycznie zastępuje tajemnicze kody krajów odpowiednią flagą. Rozwiązanie dla użytkowników Chromium w systemie Windows! // @description:pt-BR Substitui automaticamente os códigos misteriosos dos países pela bandeira correspondente. A solução para usuários do Chromium no Windows! // @description:pt-PT Substitui automaticamente os misteriosos códigos de países pela bandeira correspondente. A solução para os utilizadores de Crómio no Windows! // @description:ro Înlocuiește automat codurile de țară misterioase cu steagul corespunzător. Soluția pentru utilizatorii Chromium pe Windows! // @description:ru Автоматически заменяет загадочные коды стран на соответствующий флаг. Решение для пользователей Chromium под Windows! // @description:sk Záhadné kódy krajín automaticky nahradí príslušnou vlajkou. Riešenie pre používateľov Chromium v systéme Windows! // @description:sl Skrivnostne kode držav samodejno zamenja z ustrezno zastavo. Rešitev za uporabnike programa Chromium v operacijskem sistemu Windows! // @description:sv Ersätter mystiska landkoder automatiskt med motsvarande flagga. Lösningen för Chromium-användare i Windows! // @description:tr Gizemli ülke kodlarını otomatik olarak ilgili bayrakla değiştirir. Windows'ta Chromium kullanıcıları için çözüm! // @description:uk Автоматично замінює загадкові коди країн на відповідний прапор. Рішення для користувачів Chromium у Windows! // @description:vi Tự động thay thế mã quốc gia bí ẩn bằng cờ tương ứng. Giải pháp cho người dùng Chromium trên Windows! // @description:zh-CN 将神秘的国家代码自动替换为相应的国旗。为Windows上的Chromium用户提供解决方案! // @description:zh-TW 將神秘的國家代碼自動替換為相應的國旗。為Windows上的Chromium使用者提供解決方案! // @author matthijs110 // @match *://*/* // @icon https://cdn.jsdelivr.net/gh/matthijs110/chromium-country-flags/src/assets/icons/icon48.png // @run-at document-start // ==/UserScript== (function() { 'use strict'; // Source: https://github.com/talkjs/country-flag-emoji-polyfill const replacementFontName = "Twemoji Country Flags"; // Some elements can be ignored. const ignoredElements = ["style", "script", "svg"]; /** * Update all children of the given node. */ const updateChildNodes = (startingPointNode) => { startingPointNode.querySelectorAll('*').forEach((childNode) => { const tagName = childNode.tagName.toLowerCase(); if (ignoredElements.includes(tagName)) return; // Match any emoji within the Unicode range const regex = /[\uD83C][\uDDE6-\uDDFF][\uD83C][\uDDE6-\uDDFF]|[\uD83C]\uDDEC[\uD83C][\uDDA7\uDDAC\uDDA9\uDDAF\uDDA8\uDDB3\uDDB4]|\u200D?\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDCA7?\uFE0F?/g; const matches = childNode.innerHTML.match(regex); if (matches) { // Get the original fonts to append later as fallback const originalFont = window.getComputedStyle(childNode, null).fontFamily; // Prevent any duplicated if (originalFont.toLowerCase().includes(replacementFontName.toLowerCase())) return; // Override the font childNode.style.fontFamily = `${replacementFontName}, ${originalFont}`; } }); } /** * Observe the document for updated elements (e.g. scroll loading). */ let observer = new MutationObserver(mutations => { for (let mutation of mutations) { for (let addedNode of mutation.addedNodes) { if (addedNode != null && addedNode.tagName != null) { // Prevent searching within the ignored elements like SVG const tagName = addedNode.tagName.toLowerCase(); if (ignoredElements.includes(tagName)) continue; updateChildNodes(addedNode); } } } }); // Observe the children of the document DOM-element and every newly added element (descendants) observer.observe(document, { childList: true, subtree: true }); //document-idle // Source: https://github.com/talkjs/country-flag-emoji-polyfill const fontName = "Twemoji Country Flags"; const fontUrl = "https://cdn.jsdelivr.net/gh/matthijs110/chromium-country-flags/src/assets/TwemojiCountryFlags.woff2"; /** * Register the custom font-face to load the emoji-font for certain unicodes */ const style = document.createElement("style"); style.setAttribute("type", "text/css"); style.setAttribute("id", "country-flag-fixer-ext"); // Unicode range generated by: https://wakamaifondue.com/beta/ style.textContent = ` @font-face { font-family: "${fontName}"; font-style: normal; src: url('${fontUrl}') format('woff2'); unicode-range: U+1F1E6-1F1FF, U+1F3F4, U+E0062-E0063, U+E0065, U+E0067, U+E006C, U+E006E, U+E0073-E0074, U+E0077, U+E007F; } @font-face { font-family: "${fontName}"; font-style: italic; /* Defined to prevent italic styled flags */ src: url('${fontUrl}') format('woff2'); unicode-range: U+1F1E6-1F1FF, U+1F3F4, U+E0062-E0063, U+E0065, U+E0067, U+E006C, U+E006E, U+E0073-E0074, U+E0077, U+E007F; } `; // Check for cases like SVG files that don't have a head element if (document.head != undefined) { document.head.appendChild(style); } })();