SHARE
TWEET

Untitled

a guest Oct 27th, 2017 63 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         TrTrTr
  3. // @namespace    http://tampermonkey.net/
  4. // @version      0.1
  5. // @description  try to take over the world!
  6. // @author       You
  7. // @match        https://ru.wikipedia.org/wiki/*
  8. // @match        http://dobrochan.com/*
  9. // @grant        none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13.     'use strict';
  14.  
  15.     /*
  16.     à  á  â  ã  ä  å  æ  ā  ă  ą
  17.     ç  ć  ĉ  ċ  č
  18.     ð  ď  đ
  19.     è  é  ê  ë  ē  ė  ę  ě  ə
  20.     ĝ  ğ  ġ  ģ
  21.     ĥ  ħ
  22.     ì  í  î  ï  ī  į  i   ı  ij  ĵ
  23.     ķ
  24.     ļ  ł
  25.     ñ  ń  ņ  ň
  26.     ò  ó  ô  õ  ö  ø  ő  œ  ơ
  27.     ŕ  ř  ß  ś  ŝ  ş  ș  š
  28.     þ  ţ  ť
  29.     ù  ú  û  ü  ū  ŭ  ů  ű  ų  ư  ŵ
  30.     ý  ŷ  ÿ
  31.     ź  ż  ž
  32.     */
  33.  
  34.     const trMap = {
  35.         'бье': 'bje',
  36.         'вье': 'vje',
  37.         'гье': 'gje',
  38.         'дье': 'dje',
  39.         'зье': 'zje',
  40.         'кье': 'kje',
  41.         'лье': 'lje',
  42.         'мье': 'mje',
  43.         'нье': 'nje',
  44.         'пье': 'pje',
  45.         'рье': 'rje',
  46.         'сье': 'sje',
  47.         'тье': 'tje',
  48.         'фье': 'fje',
  49.         'жье': 'žje',
  50.         'хье': 'ħje',
  51.         'цье': 'ĉje',
  52.         'чье': 'čje',
  53.         'шье': 'šje',
  54.         'щье': 'ŝje',
  55.  
  56.         'бья': 'bja',
  57.         'вья': 'vja',
  58.         'гья': 'gja',
  59.         'дья': 'dja',
  60.         'зья': 'zja',
  61.         'кья': 'kja',
  62.         'лья': 'lja',
  63.         'мья': 'mja',
  64.         'нья': 'nja',
  65.         'пья': 'pja',
  66.         'рья': 'rja',
  67.         'сья': 'sja',
  68.         'тья': 'tja',
  69.         'фья': 'fja',
  70.         'жья': 'žja',
  71.         'хья': 'ħja',
  72.         'цья': 'ĉja',
  73.         'чья': 'čja',
  74.         'шья': 'šja',
  75.         'щья': 'ŝja',
  76.  
  77.         'бью': 'bju',
  78.         'вью': 'vju',
  79.         'гью': 'gju',
  80.         'дью': 'dju',
  81.         'зью': 'zju',
  82.         'кью': 'kju',
  83.         'лью': 'lju',
  84.         'мью': 'mju',
  85.         'нью': 'nju',
  86.         'пью': 'pju',
  87.         'рью': 'rju',
  88.         'сью': 'sju',
  89.         'тью': 'tju',
  90.         'фью': 'fju',
  91.         'жью': 'žju',
  92.         'хью': 'ħju',
  93.         'цью': 'ĉju',
  94.         'чью': 'čju',
  95.         'шью': 'šju',
  96.         'щью': 'ŝju',
  97.  
  98.         'бьё': 'bjœ',
  99.         'вьё': 'vjœ',
  100.         'гьё': 'gjœ',
  101.         'дьё': 'djœ',
  102.         'зьё': 'zjœ',
  103.         'кьё': 'kjœ',
  104.         'льё': 'ljœ',
  105.         'мьё': 'mjœ',
  106.         'ньё': 'njœ',
  107.         'пьё': 'pjœ',
  108.         'рьё': 'rjœ',
  109.         'сьё': 'sjœ',
  110.         'тьё': 'tjœ',
  111.         'фьё': 'fjœ',
  112.         'жьё': 'žjœ',
  113.         'хьё': 'ħjœ',
  114.         'цьё': 'ĉjœ',
  115.         'чьё': 'čjœ',
  116.         'шьё': 'šjœ',
  117.         'щьё': 'ŝjœ',
  118.  
  119.         //
  120.  
  121.         'бъе': 'bje',
  122.         'бъя': 'bja',
  123.         'съе': 'sje',
  124.         'съя': 'sja',
  125.         'съё': 'sjœ',
  126.         'нъю': 'nju',
  127.  
  128.         //
  129.  
  130.         'ий': 'í',
  131.         'ый': 'ý',
  132.         'ые': 'ýe',
  133.         'ие': 'íe',
  134.         'ия': 'ía',
  135.         'ию': 'íu',
  136.         'иё': 'ío',
  137.  
  138.         'бе': 'be',
  139.         'ве': 've',
  140.         'ге': 'ge',
  141.         'де': 'de',
  142.         'зе': 'ze',
  143.         'ке': 'ke',
  144.         'ле': 'le',
  145.         'ме': 'me',
  146.         'не': 'ne',
  147.         'пе': 'pe',
  148.         'ре': 're',
  149.         'се': 'se',
  150.         'те': 'te',
  151.         'фе': 'fe',
  152.         'же': 'že',
  153.         'хе': 'ħe',
  154.         'це': 'ĉe',
  155.         'че': 'če',
  156.         'ше': 'še',
  157.         'ще': 'ŝe',
  158.  
  159.         'бя': 'bä',
  160.         'вя': 'vä',
  161.         'гя': 'gä',
  162.         'дя': 'dä',
  163.         'зя': 'zä',
  164.         'кя': 'kä',
  165.         'ля': 'lä',
  166.         'мя': 'mä',
  167.         'ня': 'nä',
  168.         'пя': 'pä',
  169.         'ря': 'rä',
  170.         'ся': 'sä',
  171.         'тя': 'tä',
  172.         'фя': 'fä',
  173.         'жя': 'žä',
  174.         'хя': 'ħä',
  175.         'ця': 'ĉä',
  176.         'чя': 'čä',
  177.         'шя': 'šä',
  178.         'щя': 'ŝä',
  179.  
  180.         'бё': 'bœ',
  181.         'вё': 'vœ',
  182.         'гё': 'gœ',
  183.         'дё': 'dœ',
  184.         'зё': 'zœ',
  185.         'кё': 'kœ',
  186.         'лё': 'lœ',
  187.         'мё': 'mœ',
  188.         'нё': 'nœ',
  189.         'пё': 'pœ',
  190.         'рё': 'rœ',
  191.         'сё': 'sœ',
  192.         'тё': 'tœ',
  193.         'фё': 'fœ',
  194.         'жё': 'žœ',
  195.         'хё': 'ħœ',
  196.         'цё': 'ĉœ',
  197.         'чё': 'čœ',
  198.         'шё': 'šœ',
  199.         'щё': 'ŝœ',
  200.  
  201.         'бю': 'bü',
  202.         'вю': 'vü',
  203.         'гю': 'gü',
  204.         'дю': 'dü',
  205.         'зю': 'zü',
  206.         'кю': 'kü',
  207.         'лю': 'lü',
  208.         'мю': 'mü',
  209.         'ню': 'nü',
  210.         'пю': 'pü',
  211.         'рю': 'rü',
  212.         'сю': 'sü',
  213.         'тю': 'tü',
  214.         'фю': 'fü',
  215.         'жю': 'žü',
  216.         'хю': 'ħü',
  217.         'цю': 'ĉü',
  218.         'чю': 'čü',
  219.         'шю': 'šü',
  220.         'щю': 'ŝü',
  221.  
  222.         //
  223.  
  224.         'а': 'a',
  225.         'и': 'i',
  226.         'о': 'o',
  227.         'у': 'u',
  228.         'ы': 'y',
  229.         'э': 'è',
  230.         'е': 'je',
  231.         'ё': 'jœ',
  232.         'ю': 'ju',
  233.         'я': 'ja',
  234.  
  235.         'й': 'j',
  236.  
  237.         'б': 'b',
  238.         'в': 'v',
  239.         'г': 'g',
  240.         'д': 'd',
  241.         'з': 'z',
  242.         'к': 'k',
  243.         'л': 'l',
  244.         'м': 'm',
  245.         'н': 'n',
  246.         'п': 'p',
  247.         'р': 'r',
  248.         'с': 's',
  249.         'т': 't',
  250.         'ф': 'f',
  251.         'ж': 'ž',
  252.         'х': 'ħ',
  253.         'ц': 'ĉ',
  254.         'ч': 'č',
  255.         'ш': 'š',
  256.         'щ': 'ŝ',
  257.  
  258.         'ъ': 'j',
  259.         'ь': 'j',
  260.     };
  261.  
  262.     var d = new Date();
  263.     console.log(d, d.getMilliseconds());
  264.  
  265.     const iterateTextNodes = function(el, f) {
  266.         var walk = document.createTreeWalker(el, NodeFilter.SHOW_TEXT, null, false);
  267.         var n;
  268.         while (!!(n = walk.nextNode())) {
  269.             f(n);
  270.         }
  271.     };
  272.  
  273.     const trRe = new RegExp(Object.keys(trMap).join("|"), "g");
  274.  
  275.     const translit = function(s0) {
  276.         var cap = (s0 != s0.toLowerCase());
  277.         var s1 = s0.toLowerCase();
  278.         var s2 = s1.replace(trRe, function(m) {
  279.             return (m in trMap) ? trMap[m] : m;
  280.         });
  281.         var s3 = cap ? s2.charAt(0).toUpperCase() + s2.slice(1) : s2;
  282.  
  283.         return s3;
  284.     };
  285.  
  286.     const wordRe = new RegExp("([а-яё]+)", "gi");
  287.  
  288.     const tr = function(node) {
  289.         node.nodeValue = node.nodeValue.replace(wordRe, function(match, offset, string){ return translit(match); });
  290.     };
  291.  
  292.     try {
  293.         iterateTextNodes(document, tr);
  294.     } catch (e) {
  295.         console.log(e);
  296.     }
  297.  
  298.     d = new Date();
  299.     console.log(d, d.getMilliseconds());
  300. })();
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top