32 lines
1.3 KiB
JavaScript
32 lines
1.3 KiB
JavaScript
// Sostituzione faux-cirillica per l'effetto manifesto sovietico.
|
||
// Due livelli:
|
||
// - homoglyph (А В Е К М Н О Р С Т Х У): visivamente identici ai latini,
|
||
// rendono il testo tecnicamente cirillico ma NON visibili.
|
||
// - distintivi (Я И Д Г З Ш Ц Ф): forme chiaramente cirilliche, danno
|
||
// l'illusione visibile (1-3 per parola, come da prassi faux-cirillica).
|
||
.pragma library
|
||
|
||
var MAP = {
|
||
// homoglyph (invisibili)
|
||
'A': '\u0410', 'B': '\u0412', 'E': '\u0415', 'K': '\u041A', 'M': '\u041C',
|
||
'H': '\u041D', 'O': '\u041E', 'P': '\u0420', 'C': '\u0421', 'T': '\u0422',
|
||
'X': '\u0425', 'Y': '\u0423',
|
||
'a': '\u0430', 'e': '\u0435', 'k': '\u043A', 'm': '\u043C', 'h': '\u043D',
|
||
'o': '\u043E', 'p': '\u0440', 'c': '\u0441', 't': '\u0442', 'x': '\u0445',
|
||
'y': '\u0443',
|
||
// distintivi (visibili)
|
||
'R': '\u042F', 'N': '\u0418', 'D': '\u0414', 'L': '\u0413', 'W': '\u0428',
|
||
'U': '\u0426', 'F': '\u0424', 'Z': '\u0417', 'G': '\u0413',
|
||
'r': '\u044F', 'n': '\u0438', 'd': '\u0434', 'l': '\u0433', 'w': '\u0448',
|
||
'u': '\u0446', 'f': '\u0444', 'z': '\u0437', 'g': '\u0433'
|
||
};
|
||
|
||
function apply(text) {
|
||
var out = '';
|
||
for (var i = 0; i < text.length; i++) {
|
||
var ch = text.charAt(i);
|
||
out += MAP[ch] !== undefined ? MAP[ch] : ch;
|
||
}
|
||
return out;
|
||
}
|