にせねこメモ

はてなダイアリーがUTF-8じゃないので移ってきました。

モンゴル文字簡易翻字ブックマークレット

nixeneko.hatenablog.com
これ、色々応用できるのでは、ということで、Unicodeモンゴル文字ラテン文字に1:1で変換して表示するというものを作ってみた。
ブラウザのブックマークレットとして動くJavascriptプログラムです。文字の対応に変なところがあったら教えてください。

Firefox だとTwitterとか一部のサイト(Content Security Policyが設定されたサイト)でブックマークレットを実行するには設定を変える必要があるそうです。

コード

alert 版

(function(){
m={0x9:"[TAB]",0x20:" ",0x1802:",",0x1803:".",0x1804:":",0x180A:"-",
0x180B:"[FVS1]",0x180C:"[FVS2]",0x180D:"[FVS3]",0x180E:"[MVS]",
0x200C:"[ZWNJ]",0x200D:"[ZWJ]",0x202F:"[NNBSP]",
0x1810:"0",0x1811:"1",0x1812:"2",0x1813:"3",0x1814:"4",
0x1815:"5",0x1816:"6",0x1817:"7",0x1818:"8",0x1819:"9",
0x1820:"a",0x1821:"e",0x1827:"ē",0x1822:"i",0x1823:"o",
0x1824:"u",0x1825:"ö",0x1826:"ü",
0x1828:"n",0x1829:"ŋ",0x182A:"b",0x182B:"p",0x182C:"q",
0x182D:"γ",0x182E:"m",0x182F:"l",0x1830:"s",0x1831:"š",
0x1832:"t",0x1833:"d",0x1834:"č",0x1835:"ǰ",0x1836:"y",
0x1837:"r",0x1838:"v",0x1839:"f",0x183A:"k",0x183B:"ķ",
0x183C:"c",0x183D:"z",0x183E:"h",0x183F:"ř",0x1840:"lh",
0x1841:"zh",0x1842:"ch"};

s="";
[...document.getSelection().toString()].forEach(function(v,i,a){
    c = v.codePointAt(0);
    if(c in m){
        s += m[c];
    }else{
        t = v.codePointAt(0).toString(16).toUpperCase();
        s += "U+" + Array( Math.max(0,4-t.length)+1 ).join("0") + t + ";";
    }
});
alert(s);
})();

ブックマークレット用リンク: MongolianInspector(Alert)

console.log 版

(function(){
m={0x9:"[TAB]",0x20:" ",0x1802:",",0x1803:".",0x1804:":",0x180A:"-",
0x180B:"[FVS1]",0x180C:"[FVS2]",0x180D:"[FVS3]",0x180E:"[MVS]",
0x200C:"[ZWNJ]",0x200D:"[ZWJ]",0x202F:"[NNBSP]",
0x1810:"0",0x1811:"1",0x1812:"2",0x1813:"3",0x1814:"4",
0x1815:"5",0x1816:"6",0x1817:"7",0x1818:"8",0x1819:"9",
0x1820:"a",0x1821:"e",0x1827:"ē",0x1822:"i",0x1823:"o",
0x1824:"u",0x1825:"ö",0x1826:"ü",
0x1828:"n",0x1829:"ŋ",0x182A:"b",0x182B:"p",0x182C:"q",
0x182D:"γ",0x182E:"m",0x182F:"l",0x1830:"s",0x1831:"š",
0x1832:"t",0x1833:"d",0x1834:"č",0x1835:"ǰ",0x1836:"y",
0x1837:"r",0x1838:"v",0x1839:"f",0x183A:"k",0x183B:"ķ",
0x183C:"c",0x183D:"z",0x183E:"h",0x183F:"ř",0x1840:"lh",
0x1841:"zh",0x1842:"ch"};

s="";
[...document.getSelection().toString()].forEach(function(v,i,a){
    c = v.codePointAt(0);
    if(c in m){
        s += m[c];
    }else{
        t = v.codePointAt(0).toString(16).toUpperCase();
        s += "U+" + Array( Math.max(0,4-t.length)+1 ).join("0") + t + ";";
    }
});
console.log(s);
})();

ブックマークレット用リンク: MongolianInspector(Console)