MediaWiki:Edittools.js

From Learning Languages Through Video Games
Revision as of 03:47, 12 September 2011 by Furrykef (talk | contribs)
Jump to navigationJump to search

Note: After saving, 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: Go to Menu → Settings (Opera → Preferences on a Mac) and then to Privacy & security → Clear browsing data → Cached images and files.
function runFixer(fixer) {
    var textarea = document.getElementById('wpTextbox1');
    if(textarea.selectionStart === undefined) {
        alert("Looks like the fixers won't work in this browser.\nIf you're running Internet Explorer, well, that's why.");
        return;
    }
    var sel_start = textarea.selectionStart;
    var sel_end = textarea.selectionEnd;
    var selected_text = textarea.value.substring(sel_start, sel_end);
    if(!selected_text) {
        alert("No text was selected!");
        return;
    }
    textarea.value = textarea.value.slice(0, sel_start) + fixer(selected_text) + textarea.value.slice(sel_end, -1);
}

function fixJa(text) {
    var substitutions = {};
    if($j('#ja-merge-dakuten').checked) {
        substitutions = {
            'か゛': 'が',
            'き゛': 'ぎ',
            'く゛': 'ぐ',
            'け゛': 'げ',
            'こ゛': 'ご',
            'さ゛': 'ざ',
            'し゛': 'じ',
            'す゛': 'ず',
            'せ゛': 'ぜ',
            'そ゛': 'ぞ',
            'た゛': 'だ',
            'ち゛': 'ぢ',
            'つ゛': 'づ',
            'て゛': 'で',
            'と゛': 'ど',
            'は゛': 'ば',
            'ひ゛': 'び',
            'ふ゛': 'ぶ',
            'へ゛': 'べ',
            'ほ゛': 'ぼ',
            'は゜': 'ぱ',
            'ひ゜': 'ぴ',
            'ふ゜': 'ぷ',
            'へ゜': 'ぺ',
            'ほ゜': 'ぽ',
            'カ゛': 'ガ',
            'キ゛': 'ギ',
            'ク゛': 'グ',
            'ケ゛': 'ゲ',
            'コ゛': 'ゴ',
            'サ゛': 'ザ',
            'シ゛': 'ジ',
            'ス゛': 'ズ',
            'セ゛': 'ゼ',
            'ソ゛': 'ゾ',
            'タ゛': 'ダ',
            'チ゛': 'ヂ',
            'ツ゛': 'ヅ',
            'テ゛': 'デ',
            'ト゛': 'ド',
            'ハ゛': 'バ',
            'ヒ゛': 'ビ',
            'フ゛': 'ブ',
            'ヘ゛': 'ベ',
            'ホ゛': 'ボ',
            'ハ゜': 'パ',
            'ヒ゜': 'ピ',
            'フ゜': 'プ',
            'ヘ゜': 'ペ',
            'ホ゜': 'ポ',
            'ウ゛': 'ヴ'
        };
    }
    if($j('#ja-periods').checked) {
        substitutions['.'] = '。';
    }
    if($j('#ja-hyphens').checked) {
        substitutions['-'] = 'ー';
    }
    if($j('#ja-spaces').checked) {
        substitutions[' '] = '\u3000';
    }
    for(x in substitutions) {
        var regexp = new RegExp(x, 'g');
        text = text.replace(regexp, substitutions[x])
    }
    return text;
}

function kanafy(text) {
    /* TODO */
    alert("Hey, what's your problem? I said this is not working yet!");
    return text;
}

addOnloadHook(function() {
    $j('#fixer-ja').append(
        "<input id='ja-merge-dakuten' type='checkbox' checked='checked' /> Merge dakuten and handakuten<br />" +
        "<input id='ja-periods' type='checkbox' /> Replace periods with maru<br />" +
        "<input id='ja-hyphens' type='checkbox' /> Replace hypens w/ long vowel marks<br />" +
        "<input id='ja-spaces' type='checkbox' /> Replace half-width spaces with full-width spaces<br />" +
        "<input type='button' onclick='runFixer(fixJa)' value='Run Japanese fixer' />"
    );
    /*$j('#kanafier').append("<input type='button' onclick='runFixer(kanafy)' value='Run kanafier (NOT WORKING YET)' /")*/
});