Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name TrTrTr
- // @namespace http://tampermonkey.net/
- // @version 0.1
- // @description try to take over the world!
- // @author You
- // @match https://ru.wikipedia.org/wiki/*
- // @match http://dobrochan.com/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- /*
- à á â ã ä å æ ā ă ą
- ç ć ĉ ċ č
- ð ď đ
- è é ê ë ē ė ę ě ə
- ĝ ğ ġ ģ
- ĥ ħ
- ì í î ï ī į i ı ij ĵ
- ķ
- ļ ł
- ñ ń ņ ň
- ò ó ô õ ö ø ő œ ơ
- ŕ ř ß ś ŝ ş ș š
- þ ţ ť
- ù ú û ü ū ŭ ů ű ų ư ŵ
- ý ŷ ÿ
- ź ż ž
- */
- const trMap = {
- 'бье': 'bje',
- 'вье': 'vje',
- 'гье': 'gje',
- 'дье': 'dje',
- 'зье': 'zje',
- 'кье': 'kje',
- 'лье': 'lje',
- 'мье': 'mje',
- 'нье': 'nje',
- 'пье': 'pje',
- 'рье': 'rje',
- 'сье': 'sje',
- 'тье': 'tje',
- 'фье': 'fje',
- 'жье': 'žje',
- 'хье': 'ħje',
- 'цье': 'ĉje',
- 'чье': 'čje',
- 'шье': 'šje',
- 'щье': 'ŝje',
- 'бья': 'bja',
- 'вья': 'vja',
- 'гья': 'gja',
- 'дья': 'dja',
- 'зья': 'zja',
- 'кья': 'kja',
- 'лья': 'lja',
- 'мья': 'mja',
- 'нья': 'nja',
- 'пья': 'pja',
- 'рья': 'rja',
- 'сья': 'sja',
- 'тья': 'tja',
- 'фья': 'fja',
- 'жья': 'žja',
- 'хья': 'ħja',
- 'цья': 'ĉja',
- 'чья': 'čja',
- 'шья': 'šja',
- 'щья': 'ŝja',
- 'бью': 'bju',
- 'вью': 'vju',
- 'гью': 'gju',
- 'дью': 'dju',
- 'зью': 'zju',
- 'кью': 'kju',
- 'лью': 'lju',
- 'мью': 'mju',
- 'нью': 'nju',
- 'пью': 'pju',
- 'рью': 'rju',
- 'сью': 'sju',
- 'тью': 'tju',
- 'фью': 'fju',
- 'жью': 'žju',
- 'хью': 'ħju',
- 'цью': 'ĉju',
- 'чью': 'čju',
- 'шью': 'šju',
- 'щью': 'ŝju',
- 'бьё': 'bjœ',
- 'вьё': 'vjœ',
- 'гьё': 'gjœ',
- 'дьё': 'djœ',
- 'зьё': 'zjœ',
- 'кьё': 'kjœ',
- 'льё': 'ljœ',
- 'мьё': 'mjœ',
- 'ньё': 'njœ',
- 'пьё': 'pjœ',
- 'рьё': 'rjœ',
- 'сьё': 'sjœ',
- 'тьё': 'tjœ',
- 'фьё': 'fjœ',
- 'жьё': 'žjœ',
- 'хьё': 'ħjœ',
- 'цьё': 'ĉjœ',
- 'чьё': 'čjœ',
- 'шьё': 'šjœ',
- 'щьё': 'ŝjœ',
- //
- 'бъе': 'bje',
- 'бъя': 'bja',
- 'съе': 'sje',
- 'съя': 'sja',
- 'съё': 'sjœ',
- 'нъю': 'nju',
- //
- 'ий': 'í',
- 'ый': 'ý',
- 'ые': 'ýe',
- 'ие': 'íe',
- 'ия': 'ía',
- 'ию': 'íu',
- 'иё': 'ío',
- 'бе': 'be',
- 'ве': 've',
- 'ге': 'ge',
- 'де': 'de',
- 'зе': 'ze',
- 'ке': 'ke',
- 'ле': 'le',
- 'ме': 'me',
- 'не': 'ne',
- 'пе': 'pe',
- 'ре': 're',
- 'се': 'se',
- 'те': 'te',
- 'фе': 'fe',
- 'же': 'že',
- 'хе': 'ħe',
- 'це': 'ĉe',
- 'че': 'če',
- 'ше': 'še',
- 'ще': 'ŝe',
- 'бя': 'bä',
- 'вя': 'vä',
- 'гя': 'gä',
- 'дя': 'dä',
- 'зя': 'zä',
- 'кя': 'kä',
- 'ля': 'lä',
- 'мя': 'mä',
- 'ня': 'nä',
- 'пя': 'pä',
- 'ря': 'rä',
- 'ся': 'sä',
- 'тя': 'tä',
- 'фя': 'fä',
- 'жя': 'žä',
- 'хя': 'ħä',
- 'ця': 'ĉä',
- 'чя': 'čä',
- 'шя': 'šä',
- 'щя': 'ŝä',
- 'бё': 'bœ',
- 'вё': 'vœ',
- 'гё': 'gœ',
- 'дё': 'dœ',
- 'зё': 'zœ',
- 'кё': 'kœ',
- 'лё': 'lœ',
- 'мё': 'mœ',
- 'нё': 'nœ',
- 'пё': 'pœ',
- 'рё': 'rœ',
- 'сё': 'sœ',
- 'тё': 'tœ',
- 'фё': 'fœ',
- 'жё': 'žœ',
- 'хё': 'ħœ',
- 'цё': 'ĉœ',
- 'чё': 'čœ',
- 'шё': 'šœ',
- 'щё': 'ŝœ',
- 'бю': 'bü',
- 'вю': 'vü',
- 'гю': 'gü',
- 'дю': 'dü',
- 'зю': 'zü',
- 'кю': 'kü',
- 'лю': 'lü',
- 'мю': 'mü',
- 'ню': 'nü',
- 'пю': 'pü',
- 'рю': 'rü',
- 'сю': 'sü',
- 'тю': 'tü',
- 'фю': 'fü',
- 'жю': 'žü',
- 'хю': 'ħü',
- 'цю': 'ĉü',
- 'чю': 'čü',
- 'шю': 'šü',
- 'щю': 'ŝü',
- //
- 'а': 'a',
- 'и': 'i',
- 'о': 'o',
- 'у': 'u',
- 'ы': 'y',
- 'э': 'è',
- 'е': 'je',
- 'ё': 'jœ',
- 'ю': 'ju',
- 'я': 'ja',
- 'й': 'j',
- 'б': 'b',
- 'в': 'v',
- 'г': 'g',
- 'д': 'd',
- 'з': 'z',
- 'к': 'k',
- 'л': 'l',
- 'м': 'm',
- 'н': 'n',
- 'п': 'p',
- 'р': 'r',
- 'с': 's',
- 'т': 't',
- 'ф': 'f',
- 'ж': 'ž',
- 'х': 'ħ',
- 'ц': 'ĉ',
- 'ч': 'č',
- 'ш': 'š',
- 'щ': 'ŝ',
- 'ъ': 'j',
- 'ь': 'j',
- };
- var d = new Date();
- console.log(d, d.getMilliseconds());
- const iterateTextNodes = function(el, f) {
- var walk = document.createTreeWalker(el, NodeFilter.SHOW_TEXT, null, false);
- var n;
- while (!!(n = walk.nextNode())) {
- f(n);
- }
- };
- const trRe = new RegExp(Object.keys(trMap).join("|"), "g");
- const translit = function(s0) {
- var cap = (s0 != s0.toLowerCase());
- var s1 = s0.toLowerCase();
- var s2 = s1.replace(trRe, function(m) {
- return (m in trMap) ? trMap[m] : m;
- });
- var s3 = cap ? s2.charAt(0).toUpperCase() + s2.slice(1) : s2;
- return s3;
- };
- const wordRe = new RegExp("([а-яё]+)", "gi");
- const tr = function(node) {
- node.nodeValue = node.nodeValue.replace(wordRe, function(match, offset, string){ return translit(match); });
- };
- try {
- iterateTextNodes(document, tr);
- } catch (e) {
- console.log(e);
- }
- d = new Date();
- console.log(d, d.getMilliseconds());
- })();
Advertisement
Add Comment
Please, Sign In to add comment