Difference between revisions of "MediaWiki:Edittools.js"

From Learning Languages Through Video Games
Jump to navigationJump to search
m (whoops)
 
(22 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
function runFixer(fixer) {
 
function runFixer(fixer) {
     var textarea = document.getElementById('wpTextbox1');
+
     const textarea = document.getElementById('wpTextbox1');
 
     if(textarea.selectionStart === undefined) {
 
     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.");
 
         alert("Looks like the fixers won't work in this browser.\nIf you're running Internet Explorer, well, that's why.");
 
         return;
 
         return;
 
     }
 
     }
     var sel_start = textarea.selectionStart;
+
     const sel_start = textarea.selectionStart;
     var sel_end = textarea.selectionEnd;
+
     const sel_end = textarea.selectionEnd;
     var selected_text = textarea.value.substring(sel_start, sel_end);
+
     const selected_text = textarea.value.substring(sel_start, sel_end);
 
     if(!selected_text) {
 
     if(!selected_text) {
 
         alert("No text was selected!");
 
         alert("No text was selected!");
Line 15: Line 15:
 
}
 
}
  
function fixJp(text) {
+
function fixJa(text) {
     var substitutions = {
+
     let substitutions = {};
         /か゛/g, 'が',
+
    if(document.getElementById('ja-merge-dakuten').value) {
        /き゛/g, 'ぎ',
+
         substitutions = {
        /く゛/g, 'ぐ',
+
            'か゛': 'が',
        /け゛/g, 'げ',
+
            'き゛': 'ぎ',
        /こ゛/g, 'ご',
+
            'く゛': 'ぐ',
        /さ゛/g, 'ざ',
+
            'け゛': 'げ',
        /し゛/g, 'じ',
+
            'こ゛': 'ご',
        /す゛/g, 'ず',
+
            'さ゛': 'ざ',
        /せ゛/g, 'ぜ',
+
            'し゛': 'じ',
        /そ゛/g, 'ぞ',
+
            'す゛': 'ず',
        /た゛/g, 'だ',
+
            'せ゛': 'ぜ',
        /ち゛/g, 'ぢ',
+
            'そ゛': 'ぞ',
        /つ゛/g, 'づ',
+
            'た゛': 'だ',
        /て゛/g, 'で',
+
            'ち゛': 'ぢ',
        /と゛/g, 'ど',
+
            'つ゛': 'づ',
        /は゛/g, 'ば',
+
            'て゛': 'で',
        /ひ゛/g, 'び',
+
            'と゛': 'ど',
        /ふ゛/g, 'ぶ',
+
            'は゛': 'ば',
        /へ゛/g, 'べ',
+
            'ひ゛': 'び',
        /ほ゛/g, 'ぼ',
+
            'ふ゛': 'ぶ',
        /は゜/g, 'ぱ',
+
            'へ゛': 'べ',
        /ひ゜/g, 'ぴ',
+
            'ほ゛': 'ぼ',
        /ふ゜/g, 'ぷ',
+
            'は゜': 'ぱ',
        /へ゜/g, 'ぺ',
+
            'ひ゜': 'ぴ',
        /ほ゜/g, 'ぽ',
+
            'ふ゜': 'ぷ',
        /カ゛/g, 'ガ',
+
            'へ゜': 'ぺ',
        /キ゛/g, 'ギ',
+
            'ほ゜': 'ぽ',
        /ク゛/g, 'グ',
+
            'カ゛': 'ガ',
        /ケ゛/g, 'ゲ',
+
            'キ゛': 'ギ',
        /コ゛/g, 'ゴ',
+
            'ク゛': 'グ',
        /サ゛/g, 'ザ',
+
            'ケ゛': 'ゲ',
        /シ゛/g, 'ジ',
+
            'コ゛': 'ゴ',
        /ス゛/g, 'ズ',
+
            'サ゛': 'ザ',
        /セ゛/g, 'ゼ',
+
            'シ゛': 'ジ',
        /ソ゛/g, 'ゾ',
+
            'ス゛': 'ズ',
        /タ゛/g, 'ダ',
+
            'セ゛': 'ゼ',
        /チ゛/g, 'ヂ',
+
            'ソ゛': 'ゾ',
        /ツ゛/g, 'ヅ',
+
            'タ゛': 'ダ',
        /テ゛/g, 'デ',
+
            'チ゛': 'ヂ',
        /ト゛/g, 'ド',
+
            'ツ゛': 'ヅ',
        /ハ゛/g, 'バ',
+
            'テ゛': 'デ',
        /ヒ゛/g, 'ビ',
+
            'ト゛': 'ド',
        /フ゛/g, 'ブ',
+
            'ハ゛': 'バ',
        /ヘ゛/g, 'ベ',
+
            'ヒ゛': 'ビ',
        /ホ゛/g, 'ボ',
+
            'フ゛': 'ブ',
        /ハ゜/g, 'パ',
+
            'ヘ゛': 'ベ',
        /ヒ゜/g, 'ピ',
+
            'ホ゛': 'ボ',
        /フ゜/g, 'プ',
+
            'ハ゜': 'パ',
        /ヘ゜/g, 'ペ',
+
            'ヒ゜': 'ピ',
        /ホ゜/g, 'ポ',
+
            'フ゜': 'プ',
        /ウ゛/g, 'ヴ'
+
            'ヘ゜': 'ペ',
    };
+
            'ホ゜': 'ポ',
    for(x in substitutions) {
+
            'ウ゛': 'ヴ'
        text = string.replace(substitutions[x], text)
+
        };
 
     }
 
     }
 +
    if(document.getElementById('ja-periods').value) {
 +
        substitutions['\\.'] = '。';
 +
        substitutions[','] = '、';
 +
    }
 +
    if(document.getElementById('ja-hyphens').value) {
 +
        substitutions['-'] = 'ー';
 +
    }
 +
    if(document.getElementById('ja-spaces').value) {
 +
        substitutions[' '] = '\u3000';
 +
    }
 +
    if(document.getElementById('ja-exclam').value) {
 +
        substitutions['\\!'] = '!';
 +
        substitutions['\\?'] = '?';
 +
    }
 +
    for(const x of substitutions) {
 +
        const 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;
 
     return text;
 
}
 
}
  
 
addOnloadHook(function() {
 
addOnloadHook(function() {
     $j('#fixer-jp').append("<input type='button' onclick='runFixer(fixJp)' value='Tempt Fate' />");
+
     document.getElementById('fixer-ja').insertAdjacentHTML('beforeend',
 +
        "<input id='ja-merge-dakuten' type='checkbox' checked='checked' /> Merge dakuten and handakuten (か゛ &rarr; が)<br />" +
 +
        "<input id='ja-periods' type='checkbox' /> Replace periods and Western commas with maru and Japanese commas<br />" +
 +
        "<input id='ja-hyphens' type='checkbox' /> Replace hyphens w/ long vowel marks<br />" +
 +
        "<input id='ja-spaces' type='checkbox' /> Replace half-width spaces with full-width spaces<br />" +
 +
        "<input id='ja-exclam' type='checkbox' /> Replace half-width punctuation with full-width punctuation<br />" +
 +
        "<br />" +
 +
        "<input type='button' onclick='runFixer(fixJa)' value='Run Japanese fixer' />"
 +
    );
 +
    /*document.getElementById('kanafier').insertAdjacentHTML('beforeend', "<input type='button' onclick='runFixer(kanafy)' value='Run kanafier (NOT WORKING YET)' /");*/
 
});
 
});

Latest revision as of 01:17, 13 May 2022

function runFixer(fixer) {
    const 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;
    }
    const sel_start = textarea.selectionStart;
    const sel_end = textarea.selectionEnd;
    const 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) {
    let substitutions = {};
    if(document.getElementById('ja-merge-dakuten').value) {
        substitutions = {
            'か゛': 'が',
            'き゛': 'ぎ',
            'く゛': 'ぐ',
            'け゛': 'げ',
            'こ゛': 'ご',
            'さ゛': 'ざ',
            'し゛': 'じ',
            'す゛': 'ず',
            'せ゛': 'ぜ',
            'そ゛': 'ぞ',
            'た゛': 'だ',
            'ち゛': 'ぢ',
            'つ゛': 'づ',
            'て゛': 'で',
            'と゛': 'ど',
            'は゛': 'ば',
            'ひ゛': 'び',
            'ふ゛': 'ぶ',
            'へ゛': 'べ',
            'ほ゛': 'ぼ',
            'は゜': 'ぱ',
            'ひ゜': 'ぴ',
            'ふ゜': 'ぷ',
            'へ゜': 'ぺ',
            'ほ゜': 'ぽ',
            'カ゛': 'ガ',
            'キ゛': 'ギ',
            'ク゛': 'グ',
            'ケ゛': 'ゲ',
            'コ゛': 'ゴ',
            'サ゛': 'ザ',
            'シ゛': 'ジ',
            'ス゛': 'ズ',
            'セ゛': 'ゼ',
            'ソ゛': 'ゾ',
            'タ゛': 'ダ',
            'チ゛': 'ヂ',
            'ツ゛': 'ヅ',
            'テ゛': 'デ',
            'ト゛': 'ド',
            'ハ゛': 'バ',
            'ヒ゛': 'ビ',
            'フ゛': 'ブ',
            'ヘ゛': 'ベ',
            'ホ゛': 'ボ',
            'ハ゜': 'パ',
            'ヒ゜': 'ピ',
            'フ゜': 'プ',
            'ヘ゜': 'ペ',
            'ホ゜': 'ポ',
            'ウ゛': 'ヴ'
        };
    }
    if(document.getElementById('ja-periods').value) {
        substitutions['\\.'] = '。';
        substitutions[','] = '、';
    }
    if(document.getElementById('ja-hyphens').value) {
        substitutions['-'] = 'ー';
    }
    if(document.getElementById('ja-spaces').value) {
        substitutions[' '] = '\u3000';
    }
    if(document.getElementById('ja-exclam').value) {
        substitutions['\\!'] = '!';
        substitutions['\\?'] = '?';
    }
    for(const x of substitutions) {
        const 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() {
    document.getElementById('fixer-ja').insertAdjacentHTML('beforeend',
        "<input id='ja-merge-dakuten' type='checkbox' checked='checked' /> Merge dakuten and handakuten (か゛ &rarr; が)<br />" +
        "<input id='ja-periods' type='checkbox' /> Replace periods and Western commas with maru and Japanese commas<br />" +
        "<input id='ja-hyphens' type='checkbox' /> Replace hyphens w/ long vowel marks<br />" +
        "<input id='ja-spaces' type='checkbox' /> Replace half-width spaces with full-width spaces<br />" +
        "<input id='ja-exclam' type='checkbox' /> Replace half-width punctuation with full-width punctuation<br />" +
        "<br />" +
        "<input type='button' onclick='runFixer(fixJa)' value='Run Japanese fixer' />"
    );
    /*document.getElementById('kanafier').insertAdjacentHTML('beforeend', "<input type='button' onclick='runFixer(kanafy)' value='Run kanafier (NOT WORKING YET)' /");*/
});