User:Takagu/global.js

From Meta, a Wikimedia project coordination wiki

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)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
// ==UserScript==
// @name 半角仮名を全角片仮名に
// @namespace http://localhost/
// @include *
// @description 半角仮名を全角片仮名にして表示する。
// ==/UserScript==

javascript:(function() {
  var keylst_kana = new Array("・", "ヺ", "ヲ", "ァ", "ィ", "ゥ", "ェ", "ォ", "ャ", "ュ", "ョ", "ッ", "ー", "ア", "イ", "ヴ", "ウ", "エ", "オ", "ガ", "カ", "ギ", "キ", "グ", "ク", "ゲ", "ケ", "ゴ", "コ", "ザ", "サ", "ジ", "シ", "ズ", "ス", "ゼ", "セ", "ゾ", "ソ", "ダ", "タ", "ヂ", "チ", "ヅ", "ツ", "デ", "テ", "ド", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "バ", "パ", "ハ", "ビ", "ピ", "ヒ", "ブ", "プ", "フ", "ベ", "ペ", "ヘ", "ボ", "ポ", "ホ", "マ", "ミ", "ム", "メ", "モ", "ヤ", "ユ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ヷ", "ワ", "ン", "゛", "゜");
  var replst_kana = new Array("・",  "ヺ", "ヲ", "ァ", "ィ", "ゥ", "ェ", "ォ", "ャ", "ュ", "ョ", "ッ", "ー", "ア", "イ", "ヴ", "ウ", "エ", "オ", "ガ", "カ", "ギ", "キ", "グ", "ク", "ゲ", "ケ", "ゴ", "コ", "ザ", "サ", "ジ", "シ", "ズ", "ス", "ゼ", "セ", "ゾ", "ソ", "ダ", "タ", "ヂ", "チ", "ヅ", "ツ", "デ", "テ", "ド", "ト", "ナ", "ニ", "ヌ", "ネ", "ノ", "バ", "パ", "ハ", "ビ", "ピ", "ヒ", "ブ", "プ", "フ", "ベ", "ペ", "ヘ", "ボ", "ポ", "ホ", "マ", "ミ", "ム", "メ", "モ", "ヤ", "ユ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ヷ", "ワ", "ン", "゙", "゚");
  var keylst_num = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
  var replst_num = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
  var keylst_symb = new Array(" ","(", ")","”","#", "$", "%", "&", "’", "+", ".",  "=",  "@", "[", "¥", "]", "^", "_", "`", "{", "|", "}");
  var replst_symb = new Array(" ","(", ")","\"","#", "$", "%", "&", "'", "+", ".",  "=",  "@", "[", "\\", "]", "^", "_", "`", "{", "|", "}");
  var keylst_std = new Array('唖', '鯵', '欝', '鴬', '蛎', '鈎',  '竃', '潅', '諌','頚','叱','靭','賎','曽','壷', '顛','砺', '梼', '涛','涜', '迩', '祢', '蝿', '剥',  '桧', '頬', '侭', '麺', '薮', '篭', '蝋', '凛', '妍',  '煕', '臈');
  var replst_std = new Array('啞', '鰺', '鬱', '鶯', '蠣', '鉤',  '竈', '灌', '諫','頸','𠮟','靱','賤','曾', '壺', '塡','礪', '檮', '濤','瀆', '邇', '禰', '蠅', '剝','檜', '頰', '儘', '麵', '藪','籠', '蠟', '凜', '姸',  '熙', '﨟');
  var keylst_kyuji = new Array('亞', '惡', '壓', '圍', '爲', '醫', '壹', '逸', '稻', '隱', '營', '榮', '衞', '驛', '謁', '圓', '緣', '鹽', '奧', '應', '橫', '歐', '毆', '黃', '溫', '穩', '假', '價', '禍', '畫', '會', '壞', '悔', '懷', '海', '繪', '慨', '槪', '擴', '殼', '覺', '學', '嶽', '樂', '喝', '渴', '褐', '勸', '卷', '寬', '歡', '漢', '罐', '觀', '關', '陷', '器', '既', '歸', '氣', '祈', '僞', '戲', '犧', '舊', '據', '擧', '虛', '峽', '挾', '狹', '鄕', '響', '曉', '勤', '謹', '區', '驅', '勳', '薰', '徑', '惠', '揭', '溪', '經', '繼', '莖', '螢', '輕', '鷄', '藝', '擊', '缺', '儉', '劍', '圈', '檢', '權', '獻', '硏', '縣', '險', '顯', '驗', '嚴', '效', '廣', '恆', '鑛', '號', '國', '穀', '黑', '濟', '碎', '齋', '劑', '櫻', '殺', '雜', '參', '慘', '棧', '蠶', '贊', '殘', '祉', '絲', '視', '齒', '兒', '辭', '濕', '實', '寫', '煮', '社', '者', '釋', '壽', '收', '臭', '從', '澁', '獸', '縱', '祝', '肅', '處', '暑', '緖', '署', '諸', '敍', '奬', '將', '涉', '燒', '祥', '稱', '證', '乘', '剩', '壤', '孃', '條', '淨', '狀', '疊', '讓', '釀', '囑', '觸', '寢', '愼', '眞', '神', '盡', '圖', '粹', '醉', '隨', '髓', '數', '樞', '瀨', '聲', '靜', '齊', '攝', '竊', '節', '專', '戰', '淺', '潛', '纖', '踐', '錢', '禪', '祖', '僧', '雙', '壯', '層', '搜', '插', '巢', '爭', '總', '莊', '裝', '騷', '增', '憎', '臟', '藏', '贈', '卽', '屬', '續', '墮', '體', '對', '帶', '滯', '臺','擇', '澤', '單', '嘆', '擔', '膽', '團', '彈', '斷', '癡', '遲', '晝', '蟲', '鑄', '著', '廳', '徵', '懲', '聽', '敕', '鎭', '塚', '遞', '鐵', '轉', '點', '傳', '都', '黨', '盜', '當', '鬪', '德', '獨', '讀', '突', '屆', '繩', '難', '貳', '惱', '腦', '霸', '廢', '拜', '梅', '賣', '麥', '發', '髮', '拔', '繁', '晚', '蠻', '卑', '碑', '祕', '濱', '賓', '頻', '敏', '甁', '侮', '福', '拂', '佛', '倂', '塀', '竝', '變', '邊', '勉', '辨', '瓣', '辯', '步', '穗', '寶', '襃', '豐', '墨', '飜', '每', '萬', '滿', '免', '默', '戾', '藥', '譯', '豫', '餘', '與', '譽', '搖', '樣', '謠', '來', '賴', '亂', '欄', '覽', '隆', '虜', '兩', '獵', '綠', '壘', '淚', '類', '勵', '禮', '靈', '齡', '曆', '歷', '戀', '練', '鍊', '爐', '勞', '廊', '朗', '樓', '郞', '錄', '灣', '', '巖', '渚', '穰', '琢', '猪', '禎', '彌', '祐', '祿', '', '堯', '槇', '遙',);
  var replst_kyuji = new Array('亜', '悪', '圧', '囲', '為', '医', '壱', '逸', '稲', '隠', '営', '栄', '衛', '駅', '謁', '円', '縁', '塩', '奥', '応', '横', '欧', '殴', '黄', '温', '穏', '仮', '価', '禍', '画', '会', '壊', '悔', '懐', '海', '絵', '慨', '概', '拡', '殻', '覚', '学', '岳', '楽', '喝', '渇', '褐', '勧', '巻', '寛', '歓', '漢', '缶', '観', '関', '陥', '器', '既', '帰', '気', '祈', '偽', '戯', '犠', '旧', '拠', '挙', '虚', '峡', '挟', '狭', '郷', '響', '暁', '勤', '謹', '区', '駆', '勲', '薫', '径', '恵', '掲', '渓', '経', '継', '茎', '蛍', '軽', '鶏', '芸', '撃', '欠', '倹', '剣', '圏', '検', '権', '献', '研', '県', '険', '顕', '験', '厳', '効', '広', '恒', '鉱', '号', '国', '穀', '黒', '済', '砕', '斎', '剤', '桜', '殺', '雑', '参', '惨', '桟', '蚕', '賛', '残', '祉', '糸', '視', '歯', '児', '辞', '湿', '実', '写', '煮', '社', '者', '釈', '寿', '収', '臭', '従', '渋', '獣', '縦', '祝', '粛', '処', '暑', '緒', '署', '諸', '叙', '奨', '将', '渉', '焼', '祥', '称', '証', '乗', '剰', '壌', '嬢', '条', '浄', '状', '畳', '譲', '醸', '嘱', '触', '寝', '慎', '真', '神', '尽', '図', '粋', '酔', '随', '髄', '数', '枢', '瀬', '声', '静', '斉', '摂', '窃', '節', '専', '戦', '浅', '潜', '繊', '践', '銭', '禅', '祖', '僧', '双', '壮', '層', '捜', '挿', '巣', '争', '総', '荘', '装', '騒', '増', '憎', '臓', '蔵', '贈', '即', '属', '続', '堕', '体', '対', '帯', '滞', '台','択', '沢', '単', '嘆', '担', '胆', '団', '弾', '断', '痴', '遅', '昼', '虫', '鋳', '著', '庁', '徴', '懲', '聴', '勅', '鎮', '塚', '逓', '鉄', '転', '点', '伝', '都', '党', '盗',  '当', '闘', '徳', '独', '読', '突', '届', '縄', '難', '弐', '悩', '脳', '覇', '廃', '拝', '梅', '売', '麦', '発', '髪', '抜', '繁', '晩', '蛮', '卑', '碑', '秘', '浜', '賓', '頻', '敏', '瓶', '侮', '福', '払', '仏', '併', '塀', '並', '変', '辺', '勉', '弁', '弁', '弁', '歩', '穂', '宝', '褒', '豊', '墨', '翻', '毎', '万', '満', '免', '黙', '戻', '薬', '訳', '予', '余', '与', '誉', '揺', '様', '謡', '来', '頼', '乱', '欄', '覧', '隆', '虜', '両', '猟', '緑', '塁', '涙', '類', '励', '礼', '霊', '齢', '暦', '歴', '恋', '練', '錬', '炉', '労', '廊', '朗', '楼', '郎', '録', '湾', '', '巌', '渚', '穣', '琢', '猪', '禎', '弥', '祐', '禄', '', '尭', '槙', '遥',);

  var re = new RegExp('(' + keylst.join("|") + ')', 'g');

  function convertchar(c) {
    for (var i = 0; i < keylst.length; i++) {
      if (keylst[i] == c) {
        return replst[i];
      }
    }
    return c;
  }

  var nodes = document.evaluate('//descendant::text()', document, null,
                                XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
  var len = nodes.snapshotLength;
  var node, tmp;
  for (var i = 0; i < len; i++) {
    node = nodes.snapshotItem(i);
    node.nodeValue = node.nodeValue.replace(re, convertchar);
  }
})();