您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Web site conversion of Russian Cyrillic to Latvian
// ==UserScript== // @name Russian Cyrillic to Latvian transliterator // @description Web site conversion of Russian Cyrillic to Latvian // @version 0.1 // @date 2020-01-13 // @author Henrijs Kons // @namespace http://henrijskons.eu/translit // @include * // ==/UserScript== /* Based on Pridelands.ru - Polsko Rosyjska transliteracja (transkrypcja) + Tłumaczenie menu 0.7 BETA by Nitrol (https://userscripts-mirror.org./scripts/show/80413) */ /* Latinify */ var words = {}; String.prototype.prepareRegex = function() { return this.replace(/([\[\]\^\&\$\.\(\)\?\/\\\+\{\}\|])/g, "\\$1"); }; function isOkTag(tag) { var ok = true; var badTags = new Array('pre', 'blockquote', 'code', 'input', 'button', 'textarea'); for (var badTag in badTags) { if (tag === badTags[badTag]) { ok = false; } return ok; } } var regexs = [], replacements = []; for (var word in words) { regexs.push(new RegExp(word.prepareRegex().replace(/\*/g, '[^ ]*'), 'gi')); replacements.push(words[word]); } var texts = document.evaluate("//text()[normalize-space(.)!='']", document, null, 6, null); var text = ""; var this_text = ""; for (var i = 0, l = texts.snapshotLength; (this_text = texts.snapshotItem(i)); i++) { if (isOkTag(this_text.parentNode.tagName.toLowerCase()) && (text = this_text.textContent)) { for (var x = 0; x < regexs.length; x++) text = text.replace(regexs[x], replacements[x]); this_text.textContent = text; } } var transliterations = { 'A': 'A', 'a': 'a', 'Б': 'B', 'б': 'b', 'В': 'V', 'в': 'v', 'Г': 'G', 'г': 'g', 'Д': 'D', 'д': 'd', 'Е': 'E', 'е': 'e', 'Ё': 'Ē', 'ё': 'ē', 'Ж': 'Ž', 'ж': 'ž', 'З': 'Z', 'з': 'z', 'И': 'I', 'и': 'i', 'Й': 'J', 'й': 'j', 'К': 'K', 'к': 'k', 'Л': 'L', 'л': 'l', 'М': 'M', 'м': 'm', 'Н': 'N', 'н': 'n', 'О': 'O', 'о': 'o', 'П': 'P', 'п': 'p', 'Р': 'R', 'р': 'r', 'С': 'S', 'с': 's', 'Т': 'T', 'т': 't', 'У': 'u', 'у': 'u', 'Ф': 'F', 'ф': 'f', 'Х': 'Kh', 'х': 'kh', 'Ц': 'C', 'ц': 'c', 'Ч': 'Č', 'ч': 'č', 'Ш': 'Š', 'ш': 'š', 'Щ': 'Šč', 'щ': 'šč', 'Ъ': '--', 'ъ': '--', 'Ы': 'Ji', 'ы': 'ji', 'ь': '-', 'Я':'Ja', 'я':'ja', 'Э':'E', 'э':'e', 'Ю':'Iu', 'ю':'iu' }; function defined(v) { return v !== undefined; } function translate(text) { if (!defined(text) || !text.match) { return undefined; } text = text.replace(/^\s*/, "").replace(/\s*$/, ""); if (text === "") { return undefined; } var translation = ""; for (var i = 0; i < text.length; i++) { var rus1 = text.charAt(i); var transliteration = transliterations[rus1]; if (defined(transliteration)) { translation += transliteration; } else { translation += rus1; } } return translation; } function translateTree(a) { var items = document.evaluate("descendant::*", a, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for (var i = 0; i < items.snapshotLength; i++) { var e = items.snapshotItem(i); for (var j = 0; j < e.childNodes.length; j++) { var elem = e.childNodes[j]; if (elem.nodeType == 3) { var text = translate(elem.wholeText); if (defined(text)) { elem.nodeValue = text; } } else { var text2 = translate(elem.value); if (defined(text2)) { elem.value = text2; } } } } } translateTree(document.body);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址