MediaWiki:UpdateLanguageNameAndCode.js - 维基词典,自由的多语言词典
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Internet Explorer / Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
- Opera:按 Ctrl-F5。
//From [[en:MediaWiki:UpdateLanguageNameAndCode.js]] /* jshint undef: true */ /* globals $, apiWrapper, mw */ // <nowiki> { "use strict"; const action = mw.config.get("wgAction"); const api = new mw.Api({ timeout: 30 * 1000, // Dirty hack to hopefully get rid of timeout errors. }); const updatePageWithTemplateExpansion = function (title, template, summary, changeTemplateExpansion) { return mw.loader.using("mediawiki.api", function () { return api.get({ action: "expandtemplates", title: title, text: template, prop: "wikitext", }).done(function (data) { var expanded = data.expandtemplates.wikitext; return api.edit(title, function () { return { text: changeTemplateExpansion ? changeTemplateExpansion(expanded) : expanded, summary: summary, }; }).done(function (data) { if (data.nochange) { mw.notify(title + "不需要更新"); } else { mw.notify("已更新" + title + "。"); } }).fail(function(...args) { mw.notify(wgULS("提交失败。", "提交失敗。")); console.log(...args); }); }); }); }; const summary = "[[MediaWiki:UpdateLanguageNameAndCode.js|更新]]"; const updateLanguageData = function (title, moduleFunction) { return updatePageWithTemplateExpansion(title, "{{#invoke:languages/print|" + moduleFunction + "|plain}}", summary).then(function() { return updatePageWithTemplateExpansion(title + ".json", "{{#invoke:languages/print|" + moduleFunction + "|json}}", summary); }); }; const button = $("<button>"); button .html("更新 <code>Module:languages/code to canonical name</code> 和 <code>Module:languages/canonical names</code> 及其他数据模块") .attr("id", "update-module"); button.on("click", function () { updateLanguageData("Module:languages/code to canonical name", "code_to_name").then(function() { return updateLanguageData("Module:languages/canonical names", "name_to_code"); }).then(function() { updatePageWithTemplateExpansion( "Module:Hani-sortkey/data/serialized", "{{#invoke:Hani-sortkey/data/serializer|main}}", summary, function(expanded) { return 'return "' + expanded + '"'; } ); }); }); // Color the button to help editors to notice it. // Add the following to [[Special:MyPage/common.js]] to switch back to the default styles: // window.plainModuleUpdateButton = true; if (!window.plainModuleUpdateButton) mw.util.addCSS("#update-module, #update-module code { background-color: orange; }"); const p = $(".mw-parser-output p:first-of-type"); p.before(button); } // empty block scope // </nowiki>