MediaWiki:Gadget-CX-Template Translated page.js
Cé̤ṳ-é: Bō̤-còng cĭ hâiu, kō̤-nèng diŏh tĕ̤ng táh báuk-lāng-ké gì ká̤-chṳ̄ ciáh â̤ káng-giéng diŏh gāi-biéng. Mozilla / Firefox / Safari: áik Reload sèng-âu áik diâng Shift, hĕ̤k-ciā áik Ctrl-Shift-R (Apple Mac sê Cmd-Shift-R); IE: áik Refresh sèng-âu áik diâng Ctrl, hĕ̤k-ciā áik Ctrl-F5; Konqueror: nâ sāi áik Reload, hĕ̤k-ciā áik F5; Opera ê̤ṳng-hô buóh tĕ̤ng táh ká̤-chṳ̄, chiāng sāi gă-sĭ Tools→Preferences.
( function( $, mw, undefined ) {
mw.hook( 'mw.cx.translation.published' ).add( function( sourceLanguage, targetLanguage, sourceTitle, targetTitle ) {
var article = new mw.Title( targetTitle );
var talk = new mw.Title( article.getMainText(), article.getNamespaceId() | 1 );
var sourceTitleArg = sourceTitle.indexOf( '=' ) == -1 ? sourceTitle : '2=' + sourceTitle;
var template = '{\{Translated page|' + sourceLanguage + '|' + sourceTitleArg + '|version=' + mw.cx.sourceRevision + '}\}\n';
var api = new mw.Api(), tries = 0;
var addTemplate = function() {
if ( tries++ > 10 ) {
mw.notify( '为' + talk.getPrefixedText() + '標誌Translated page模板失敗。' );
return;
}
api.get( {
action: 'query',
prop: 'revisions',
titles: talk.getPrefixedText(),
rvprop: [ 'timestamp', 'content' ],
indexpageids: true,
curtimestamp: true
} ).done( function( data ) {
if ( !data.query ) {
addTemplate();
return;
}
var revision = ( data.query.pages[data.query.pageids[0]].revisions || [] )[0] || {}, params = {
action: 'edit',
title: talk.getPrefixedText(),
summary: '為翻譯頁面標誌{\{[[Template:Translated page|Translated page]]}\}',
starttimestamp: data.curtimestamp
}, text = revision['*'];
if ( text !== undefined ) {
params.basetimestamp = revision.timestamp;
// TODO: extend regex to include more aliases
params.text = template + text.replace( /\{\{\s*Translated page\s*\|[^\{\}]+\}\}\n?/g, '' );
} else {
params.createonly = true;
params.text = template;
}
api.postWithEditToken( params ).done( function( data ) {
if ( !data.edit || data.edit.result !== 'Success' ) {
addTemplate();
return;
}
mw.notify( '已經為' + talk.getPrefixedText() + '標誌Translated page模板。' );
} ).fail( addTemplate );
} ).fail( addTemplate );
};
addTemplate();
} );
} )( jQuery, mediaWiki );