User:Xiplus/js/TranslateTextVariants.js
外观
< User:Xiplus | js
注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google Chrome、Firefox、Microsoft Edge及Safari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。
// <nowiki>
(function() {
window.TranslateTextVariants = function(text, lang) {
return new Promise(function(resolve, reject) {
var zhwpapi;
if (mw.config.get('wgDBname') === 'zhwiki') {
var zhwpapi = new mw.Api();
} else {
var zhwpapi = new mw.ForeignApi(
'//wikicn.playgoteam.workers.dev/w/api.php',
{ anonymous: true }
);
}
text = text.replace(/[[\]{}<>|:*'_#&\s]/gim, function(s) {
return "&#" + s.charCodeAt(0) + ";";
});
text = text.replace(/([[)((?:(?!|)(?!]).)+?)(|(?:(?!]).)+?]])/g, '$1-{$2}-$3');
text = text.replace(/-{(.+?)}-/g, function(s) {
return s
.replace('-{', '-{')
.replace('}-', '}-')
.replace(/|/g, '|')
.replace(/ /g, ' ')
.replace(/=/g, '=')
.replace(/>/g, '>')
.replace(/:/g, ':')
});
zhwpapi.parse(
'{{NoteTA|G1=IT|G2=MediaWiki}}<div id="TVcontent">' + text + '</div>',
{
'uselang': lang,
'prop': 'text'
}
).then(function(data) {
var newtext = $('<div/>').html(data).find('#TVcontent').text();
resolve(newtext);
}, function(err) {
reject(err);
});
});
};
})();
// </nowiki>