Pengguna:Algazel/rumijawi.js
Penampilan
Catatan: Selepas diterbitkan, anda mungkin perlu memintas cache pelayar web untuk melihat perubahan.
- Firefox / Safari: Tahan Shift sambil klik Reload, atau tekan sama ada Ctrl-F5 atau Ctrl-R (⌘-R pada Mac)
- Google Chrome: Tekan Ctrl-Shift-R (⌘-Shift-R pada Mac)
- Edge: Tahan Ctrl sambil tekan Refresh, atau tekan Ctrl-F5.
/* Kod JavaScript ini diambil dari [[Pengguna:Kurniasan/rumikpdjawi.js|rumikpdjawi.js]] yang ditulis
/* [[Pengguna:Kurniasan|Kurniasan]]
/* Tukar teks daripada rumi kepada jawi */
/* Pengarang: [[Pengguna:Kurniasan]] */
if (typeof(kamus) == "undefined")
importScript("Pengguna:Algazel/kamusrumikpdjawi.js");
if (wgNamespaceNumber == 0) {
var cache = null;
$( "#p-namespaces ul" ).append( '<li id="ca-nstab-rkj"><span>' +
'<a><input id="togol-rkj" type="checkbox"></a>' +
'<a><label for="togol-rkj">Papar dalam Jawi</label></a>' +
'</span></li>' );
$( "#togol-rkj" ).click( function() {
if ($( this ).attr( "checked" ) == 'checked') {
if (cache == null)
cache = $( "#mw-content-text").html();
var k = Object.keys(kamus);
var sfxs = Object.keys(imbuhanAwalan);
var pfxs = Object.keys(imbuhanAkhiran);
function convertToJawi (src, no_recursive) {
var re1 = new RegExp("\\b" + src + "\\b");
if (kamus[src] != null)
src = src.replace(re1, kamus[src]);
else if (no_recursive != true)
for (i in pfxs) {
var re2 = new RegExp("\\b(\\w+)(" + pfxs[i] + ")\\b");
if (src.match(re2) != null)
src = src.replace(re2, prefixProcessor);
}
return src;
}
function suffixProcessor(a,b,c) {
var d = convertToJawi(c);
if (d == c)
return a;
return imbuhanAwalan[b.toLowerCase()] + d;
}
function prefixProcessor(a,b,c) {
var d = convertToJawi(b, true);
if (d == b)
return a;
return d + imbuhanAkhiran[c];
}
function c_i_p(w) {
/* Return case insensitive pattern */
return '[' + w[0].toUpperCase() + w[0] + ']' + w.slice(1);
}
$( "#mw-content-text" ).contents().map( function recursive() {
var $cs = $( this ).contents();
if ($cs.length > 0)
$cs.map( recursive);
else {
var s = this.textContent;
for (i in k) {
var re = new RegExp('\\b' + c_i_p(k[i]) + '\\b', 'g')
s = s.replace(re, kamus[k[i]]);
}
for (i in sfxs) {
var re = new RegExp('(\\b' + c_i_p(sfxs[i]) + ')(\\w+)\\b', 'g');
s = s.replace(re, suffixProcessor);
}
this.textContent = s;
}
} );
$( "#mw-content-text" ).attr('dir', 'rtl').attr('class', 'mw-content-rtl');
}
else if (cache != null) {
$( "#mw-content-text" ).attr('dir', 'ltr').attr('class', 'mw-content-ltr').html(cache);
cache = null;
}
} );
}