User:榎/monobook.js
< User:榎
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: 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>