משתמש:קיפודנחש/translateLinks.js
הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
- פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
- גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
- אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
- אופרה: ללחוץ על Ctrl-F5.
mw.loader.using( ['mediawiki.api'], function() {
$( function() {
var links = {},
linkar = [],
api = new mw.Api();
function getLinks( ) {
mw.util.$content.find('a').filter(
function() {
return /^\/wiki\//.test( $(this).attr('href') );
}
).each( function() {
var $this = $( this ),
addr = decodeURIComponent( $this.attr( 'href' ).replace(/^\/wiki\//, '') );
if (/:/.test( addr ) )
return;
links[addr] = links[addr] || (function() { linkar.push( addr ); return []; } )() ;
links[addr].push( $( this ) );
} );
}
function getLangLinks() {
var params = { prop: 'langlinks', lllang: 'en', llprop: 'url' };
console.log( 'linkar.length is: ' + linkar.length );
while ( linkar.length ) {
local = linkar.splice( 0, 50 );
params.titles = local.join( "|" );
console.log( params.titles );
api.get( params ).done( procesResults /* function( data ) { console.log( data ); } */ );
}
}
function procesResults( data ) {
if ( data && data.query && data.query.pages ) {
var pages = data.query.pages,
langlinks,
replaceLink = function( a ) {
console.log ( 'setting attibutes: url=' + langlinks[0].url + ' title=' + langlinks[0]['*'] );
a.attr( {
'href': langlinks[0].url,
'title': langlinks[0]['*']
} );
};
for ( var pageid in pages ) {
var page = pages[pageid];
if ( page ) {
var title = page.title.replace( / /g, '_' );
langlinks = page.langlinks || [];
console.log(title, links[title].length, langlinks.length );
if ( langlinks.length )
links[title].map( replaceLink );
}
}
}
}
function doit() {
getLinks();
getLangLinks();
}
console.log( 'here' );
$( mw.util.addPortletLink( 'p-cactions', null, 'החלף קישורי שפה' ) ).click( doit );
console.log( 'there' );
} );
} );