您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Arch Linux Firefox doesn't set lang="ja" as Japanese
- // ==UserScript==
- // @name Add lang hyphen, if not exists for HTML tags
- // @namespace https://github.com/patarapolw/wanikani-userscript
- // @version 0.1.4
- // @description Arch Linux Firefox doesn't set lang="ja" as Japanese
- // @author polv
- // @license MIT
- // @match *://*/*
- // @exclude https://www.wanikani.com/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=eastasiastudent.net
- // @grant none
- // ==/UserScript==
- (() => {
- // src/fix-lang-hyphen.ts
- var FIX_LANG_HYPHEN = {
- ja: "",
- ko: "",
- zh: "",
- vi: ""
- };
- getLang(document.documentElement);
- fixLangObserver();
- function fixLangObserver(el = document.body) {
- new MutationObserver((muts) => {
- for (const mut of muts) {
- mut.addedNodes.forEach((n) => {
- if (n instanceof HTMLElement) {
- findAndFixLang(n);
- }
- });
- }
- }).observe(el, {
- childList: true,
- subtree: true
- });
- findAndFixLang(el);
- }
- function findAndFixLang(el) {
- el.querySelectorAll("*").forEach((it) => getLang(it));
- }
- function getLang(it, fix = true) {
- let aLang = it.getAttribute("lang");
- if (aLang && typeof FIX_LANG_HYPHEN[aLang] === "string") {
- aLang += "-" + FIX_LANG_HYPHEN[aLang];
- if (fix) {
- it.setAttribute("lang", aLang);
- }
- return aLang;
- }
- return null;
- }
- })();