User:Leque/monobook.js
From Wikimedia Incubator
Note - After saving, you may have to bypass your browser's cache to see the changes. Mozilla / Firefox / Safari: hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (Command-R on a Macintosh); Konqueror: click Reload or press F5; Opera: clear the cache in Tools → Preferences; Internet Explorer: hold Ctrl while clicking Refresh, or press Ctrl-F5.
// <pre> // 表記法変換スクリプト // User:<ユーザ名>/monobook.js にこの内容を追加すると discussion 等のタブの右横に変換用のタブが追加されます // 新字体: 漢字の字体を新字体に統一する // 舊字體: 漢字の字体を旧字体(康煕字典体)に統一する // 舊表記: 漢字を旧字体に変換し、捨て仮名を大書きにする(例:「しゃ」→「しや」) // 古典風表記: 舊表記に変換し、さらに句読点を適当な空白文字に置き換える // // ただし、新字体のうち複数の康煕字典体に対応するもの(例: 弁→辯、辨、瓣、辧、辮、弁)は変換しません。詳しくは下のコード参照。 var conversionTables = { "archaic_style": new Object(), "old_style": new Object(), "sinzi2kyuuzi": new Object(), "enlarge_small_kana": { "ぁ": "あ" , "ぃ": "い" , "ぅ": "う" , "ぇ": "え" , "ぉ": "お", "ゃ": "や" , "ゅ": "ゆ" , "ょ": "よ", "っ": "つ", "ゎ": "わ" }, "remove_kutouten": { "、": " " , "。": "\u2003" // em space }, "remove_dakuten_handakuten": { "が": "か", "ぎ": "き", "ぐ": "く", "げ": "け", "ご": "こ", "ざ": "さ", "じ": "し", "ず": "す", "ぜ": "せ", "ぞ": "そ", "だ": "た", "ぢ": "ち", "づ": "つ", "で": "て", "ど": "と", "ば": "は", "び": "ひ", "ぶ": "ふ", "べ": "へ", "ぼ": "ほ", "ぱ": "は", "ぴ": "ひ", "ぷ": "ふ", "ぺ": "へ", "ぽ": "ほ" }, "kyuuzi2sinzi": { "亞": "亜", "惡": "悪", "壓": "圧", "圍": "囲", "爲": "為", "医": "医", // うつぼ "醫": "医", // 醫者 "壹": "壱", "稻": "稲", "飮": "飲", "隱": "隠", "營": "営", "榮": "栄", "衞": "衛", "驛": "駅", "圓": "円", "艷": "艶", "鹽": "塩", "奧": "奥", "應": "応", "歐": "欧", "毆": "殴", "穩": "穏", "假": "仮", "價": "価", "畫": "画", "會": "会", "壞": "壊", "懷": "懐", "繪": "絵", "擴": "拡", "殼": "殻", "覺": "覚", "學": "学", "岳": "岳", // 「嶽」の略字。[形]尊敬すべきもの。岳父 "嶽": "岳", // 高い山 "樂": "楽", "勸": "勧", "卷": "巻", "歡": "歓", "缶": "缶", // ほとぎ "罐": "缶", // 水を汲むうつは "觀": "観", "關": "関", "陷": "陥", "巖": "巌", "顏": "顔", "歸": "帰", "氣": "気", "龜": "亀", "僞": "偽", "戲": "戯", "犧": "犠", "舊": "旧", "據": "拠", "擧": "挙", "峽": "峡", "挾": "挟", "狹": "狭", "曉": "暁", "區": "区", "驅": "駆", "勳": "勲", "徑": "径", "惠": "恵", "溪": "渓", "經": "経", "繼": "継", "莖": "茎", "螢": "蛍", "輕": "軽", "鷄": "鶏", "芸": "芸", // ヘンルーダ "藝": "芸", // わざ "欠": "欠", // あくびをする。からだがまがる。 "缺": "欠", // かける。ゑぐる。 "儉": "倹", "劍": "剣", "圈": "圏", "檢": "検", "權": "権", "獻": "献", "県": "県", // 首をさかさにつりさげる。 "縣": "県", // あがた "險": "険", "顯": "顕", "驗": "験", "嚴": "厳", "效": "効", "廣": "広", "恆": "恒", "鑛": "鉱", "號": "号", "國": "国", "濟": "済", "碎": "砕", "齋": "斎", "劑": "剤", "櫻": "桜", "册": "冊", "雜": "雑", "參": "参", "慘": "惨", "棧": "桟", "蚕": "蚕", // みみづ "蠶": "蚕", // かひこ "贊": "賛", "殘": "残", "糸": "糸", // いとすぢ。原糸 "絲": "糸", // 「糸」をよりあはせたもの。 "齒": "歯", "兒": "児", "辭": "辞", "濕": "湿", "實": "実", "舍": "舎", "寫": "写", "釋": "釈", "壽": "寿", "收": "収", "從": "従", "澁": "渋", "獸": "獣", "縱": "縦", "肅": "粛", "處": "処", "敍": "叙", "奬": "奨", "將": "将", "燒": "焼", "稱": "称", "証": "証", // しゃう。いさめてあやまりをただす。 "證": "証", // しょう。あかす。 "乘": "乗", "剩": "剰", "壤": "壌", "孃": "嬢", "條": "条", "淨": "浄", "疊": "畳", "穰": "穣", "讓": "譲", "釀": "醸", "囑": "嘱", "觸": "触", "寢": "寝", "愼": "慎", "晉": "晋", "眞": "真", "盡": "尽", "圖": "図", "粹": "粋", "醉": "酔", "隨": "随", "髓": "髄", "數": "数", "樞": "枢", "聲": "声", "靜": "静", "齊": "斉", "攝": "摂", "竊": "窃", "專": "専", "戰": "戦", "淺": "浅", "潛": "潜", "纖": "繊", "踐": "践", "錢": "銭", "禪": "禅", "雙": "双", "壯": "壮", "搜": "捜", "插": "挿", "爭": "争", "總": "総", "聰": "聡", "莊": "荘", "裝": "装", "騷": "騒", "臟": "臓", "藏": "蔵", "屬": "属", "續": "続", "墮": "堕", "体": "体", // 「體」の略字。おとる。あらい。 "體": "体", // からだ。 "對": "対", "帶": "帯", "滯": "滞", "台": "台", // 一人称代名詞。 "臺": "台", // うてな "瀧": "滝", "擇": "択", "澤": "沢", "單": "単", "擔": "担", "膽": "胆", "團": "団", "彈": "弾", "斷": "断", "癡": "痴", "遲": "遅", "晝": "昼", "虫": "虫", // まむし。爬虫類。 "蟲": "虫", // むし。昆虫。 "鑄": "鋳", "廳": "庁", "聽": "聴", "鎭": "鎮", "遞": "逓", "鉄": "鉄", // 「鐵」の略字。ぬふ。 "鐵": "鉄", // くろがね。 "轉": "転", "點": "点", "傳": "伝", "党": "党", // 姓・民族名 "黨": "党", // なかま。やから。 "盜": "盗", "灯": "灯", // はげしい火。 "燈": "灯", // ともしび。 "當": "当", "鬪": "闘", "獨": "独", "讀": "読", "屆": "届", "繩": "縄", "貳": "弐", "惱": "悩", "腦": "脳", "廢": "廃", "拜": "拝", "賣": "売", "麥": "麦", "發": "発", "髮": "髪", "拔": "抜", "蠻": "蛮", "祕": "秘", "浜": "浜", // 小さな水路。クリーク。 "濱": "浜", // はま。 "拂": "払", "佛": "仏", "竝": "並", "變": "変", "邊": "辺", "弁": "弁", // かんむり。 "辨": "弁", // よりわける。 "辧": "弁", // 「辨」の異體字。 "辯": "弁", // うまくものを言ふ。 "瓣": "弁", // はなびら。 "舖": "舗", "穗": "穂", "寶": "宝", "豐": "豊", "沒": "没", "萬": "万", "滿": "満", "默": "黙", "彌": "弥", "藥": "薬", "譯": "訳", "藪": "薮", "予": "予", // あたへる。われ=余。 "豫": "予", // あらかじめ。 "余": "余", // われ=予。 "餘": "余", // あまる。 "與": "与", "譽": "誉", "搖": "揺", "樣": "様", "謠": "謡", "來": "来", "亂": "乱", "覽": "覧", "龍": "竜", "兩": "両", "獵": "猟", "壘": "塁", "勵": "励", "禮": "礼", "隸": "隷", "靈": "霊", "齡": "齢", "戀": "恋", "爐": "炉", "勞": "労", "樓": "楼", "祿": "禄", "灣": "湾" } }; var menu_items = { "古典風表記": "archaic_style", "舊表記": "old_style", "舊字體": "sinzi2kyuuzi", "新字体": "kyuuzi2sinzi" } function copyPropsInto(targetObj) { var i, prop, fromObj; for (i = 1; i < arguments.length; i++) { fromObj = arguments[i]; for (prop in fromObj) { targetObj[prop] = fromObj[prop]; } } } function getParameter(search, param) { var r; if (r = search.match("[?&;]" + param + "=([-._~a-zA-Z0-9]*)")) { return r[1]; } else { return null; } } function convertZitai(kind) { var table = conversionTables[kind]; var elems = document.getElementsByTagName("*"); var i, j; for (i = 0; i < elems.length; i++) { var elem = elems.item(i); var nodes = elem.childNodes; for (j = 0; j < nodes.length; j++) { if (nodes.item(j).nodeType == 3) { var text_node = nodes.item(j); text_node.nodeValue = text_node.nodeValue.replace(/./g, function(str) { return table.hasOwnProperty(str) ? table[str] : str; }); } } } } function initZitaiConverter() { var seizi, ryakuzi, kana; var anchor, li; for (kyuuzi in conversionTables.kyuuzi2sinzi) { sinzi = conversionTables.kyuuzi2sinzi[kyuuzi]; if (!conversionTables.sinzi2kyuuzi[sinzi]) { conversionTables.sinzi2kyuuzi[sinzi] = kyuuzi; } else { conversionTables.sinzi2kyuuzi[sinzi] = sinzi; } } copyPropsInto(conversionTables.old_style, conversionTables.sinzi2kyuuzi, conversionTables.enlarge_small_kana) copyPropsInto(conversionTables.archaic_style, conversionTables.old_style, conversionTables.remove_dakuten_handakuten, conversionTables.remove_kutouten); var menu = document.getElementById("ca-edit").parentNode; for (var label in menu_items) { var v = menu_items[label]; anchor = document.createElement("a"); anchor.appendChild(document.createTextNode(label)); anchor.href = document.location.pathname + "?variant=" + v; li = document.createElement("li"); li.id = "char-trans:" + v; li.appendChild(anchor); menu.appendChild(li); } var variant = getParameter(document.location.search, "variant"); if (variant) convertZitai(variant); } if (window.addEventListener) { window.addEventListener("load", initZitaiConverter, false); } else if (window.attachEvent) { window.attachEvent("onload", initZitaiConverter); } // 表記法スクリプト - ここまで //</pre>