Здравствуйте!
Я наткнулся на эту фиговину, которая переводит все ники в KOI7. Решил сделать из нее нормальный русификатор ников, но что-то пошло не так…
// SPDX-License-Identifier: MIT-0
// ==UserScript==
// @name LOR-Russification
// @namespace https://www.linux.org.ru/*
// @description LOR-Russification
// @include https://www.linux.org.ru/*
// @version 1
// @grant none
// ==/UserScript==
(function () {
window.addEventListener("load", function() {
var c={anonymous:"Анонимус",Deleted:"Удаленный",Zhbert:"Жберт","Vsevolod-linuxoid":"Всеволод",maxcom:"Админ",leave:"leave",cocucka:"Сосиска",zh:"ж",ZH:"Ж",Zh:"Ж",a:"а",b:"б",c:"ц", d:"д",e:"е",f:"ф",g:"г",h:"х",i:"и",j:"й",k:"к",l:"л",m:"м",n:"н",o:"о",p:"п",q:"къ",r:"р",s:"с",t:"т",u:"у",v:"в",w:"у",x:"кс",y:"ы",z:"з",A:"А",B:"Б",C:"Ц",D:"Д",E:"Е",F:"Ф",G:"Г",H:"Х",I:"И",J:"Й",K:"К",L:"Л",M:"М",N:"Н",O:"О",P:"П",Q:"КЪ",R:"Р",S:"С",T:"Т",U:"У",V:"В",W:"У",X:"КС",Y:"Ы",Z:"З",};
var a = {};
var b = [];
document.querySelectorAll('a[itemprop="creator"], .sign_more a, #loginGreating a, table.head a, .nickname, .message-table s, .tag, .secondary, [class="btn btn-default"], [class="btn btn-selected"], #sitetitle, #ft-info, .msg-top-header, .grid-3-2, .navLink, em, .group, option').forEach(function(d) {
b.push(d)
});
document.querySelectorAll(".sign, .sign_more, article .title, .message-table td, .tracker-last p, .tracker-src p").forEach(function(d) {
for (var e = 0; e < d.childNodes.length; e++) {
var f = d.childNodes[e];
if (f.nodeType === 3) {
b.push(f)
}
}
});
b.forEach(function(g) {
var h = g.textContent;
var e = "";
if (a[h] != undefined) {
g.textContent = a[h];
return
}
for (var f = 0; f < h.length; f++) {
var d = h[f];
var j = c[d];
if (j === undefined) {
e += d
} else {
e += j
}
}
g.textContent = e;
a[h] = e
})
});
})();
Не работает преобразование zh в ж, Zh и ZH в Ж (то есть Zhbert становится Зхбертом), а также некоторых ников, в т.ч. anonymous и Deleted. Гуру JS, помогите, пожалуйста!
ps. JS не знаю, поэтому проблемы. pps. Неужели тут нет гуру JS?