欢迎来到偶像大师中文维基,本站仍在筹备阶段,如有兴趣参与建设可加群申请账号:
542540342
《
偶像大师 全力以赴
》汉化补丁现已发布,
点击此处
转至发布页查看详情
查看“︁User:ZheiZhei/test.js”︁的源代码
←
User:ZheiZhei/test.js
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:
用户
、editor
您没有权限编辑此JavaScript页面,因为此页面包含另一位用户的个人设置。
您可以查看和复制此页面的源代码。
// <nowiki> /* globals TranslateVariants:true */ /** * 使用說明請見 https://zh.wikipedia.org/wiki/User:Xiplus/js/TranslateVariants */ Promise.all( [ $.ready, mw.loader.using( [ 'ext.gadget.HanAssist', 'mediawiki.api', 'mediawiki.util', 'mediawiki.ForeignApi', 'mediawiki.diff.styles' ] ), ] ).then( function( [ _, require ] ) { const { conv } = require('ext.gadget.HanAssist'); if (mw.config.get('wgPageName').match(/^MediaWiki:[^/]+(\/zh)?$/)) { let link = mw.util.addPortletLink( 'p-cactions', '#', conv( { hans: '转换变体', hant: '轉換變體' } ) ); $(link).on('click', function() { this.remove(); main(); }); } else { return; } if (typeof (TranslateVariants) == 'undefined') { TranslateVariants = {}; } if (typeof (TranslateVariants.summary) != 'string') { TranslateVariants.summary = conv( { hans: '自动转换变体自', hant: '自動轉換變體自' } ) + '[[$1]] via [[User:Dabao_qian/TranslateVariants-zhwiki.js|TranslateVariants]]'; } async function main() { const langs = ['zh', 'zh-hans', 'zh-cn', 'zh-my', 'zh-sg', 'zh-hant', 'zh-hk', 'zh-mo', 'zh-tw']; const langname = { 'zh': '原始', 'zh-hans': '简体', 'zh-cn': '大陆简体', 'zh-my': '大马简体', 'zh-sg': '新加坡简体', 'zh-hant': '繁體', 'zh-hk': '香港繁體', 'zh-mo': '澳門繁體', 'zh-tw': '臺灣正體', }; let result = {}; var api = new mw.Api(); var zhwpapi; if (mw.config.get('wgDBname') === 'zhwiki') { zhwpapi = new mw.Api(); } else { zhwpapi = new mw.ForeignApi('//zh.wikipedia.org/w/api.php'); } var basepagetext = ''; let table = $('<div id="TranslateVariants">').prependTo('#bodyContent'); let submitall = $('<button>' + conv( { hans: '保存所有更改', hant: '儲存所有變更' } ) + '</button>'); submitall.on('click', function() { let buttons = $('.TranslateVariants-publish-changes'); if (buttons.length === 0) { mw.notify(conv( { hans: '没有任何更改可保存', hant: '沒有任何變更可儲存' } ), { type: 'error' }); return; } if (!confirm(conv( { hans: '保存 ', hant: '儲存 ' } ) + buttons.length + conv( { hans: ' 个更改?', hant: ' 個變更?' } ))) { mw.notify(conv( { hans: '已取消保存', hant: '已取消儲存' } ), { type: 'warn' }); return; } buttons.each(function(_, button) { $(button).click(); }); }); table.append($('<div style="text-align: right;">').append(submitall)); $('<div style="color:red">' + conv( { hans: '提醒:TranslateVariants工具使用IT、MediaWiki及specialpages三个转换组进行自动转换,请确认转换结果是否正确!', hant: '提醒:TranslateVariants工具使用IT、MediaWiki及specialpages三個轉換組進行自動轉換,請確認轉換結果是否正確!' } ) + '</div>').appendTo(table); var defaultlangs = 'zh,zh-hans,zh-hant'; var runlangs = prompt(conv( { hans: '转换以下语言(以逗号隔开):', hant: '轉換以下語言(以逗號隔開):' } ), defaultlangs); if (runlangs === null) { runlangs = defaultlangs; } var langqueue = runlangs.split(',').map(function(lang) { return lang.trim(); }).filter(function(lang) { return langs.indexOf(lang) !== -1; }); let text; if ($('#wpTextbox1').length === 1) { text = $('#wpTextbox1').val(); } else { let data = await api.get({ action: 'query', prop: 'revisions', rvprop: ['content', 'timestamp'], titles: [mw.config.get('wgPageName')], formatversion: '2', curtimestamp: true, }); if (!data.query || !data.query.pages) { alert('unknown error'); return; } let page = data.query.pages[0]; if (!page || page.invalid) { alert('invalidtitle'); return; } if (page.missing) { alert('nocreate-missing'); return; } let revision = page.revisions[0]; text = revision.content; } result.zh = text; 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, ':'); }); basepagetext = text; process(); function process() { if (langqueue.length === 0) { return; } var lang = langqueue.shift(); var diffTable = $('<div id="TranslateVariants-diff-' + lang + '">').appendTo(table); $('<hr>').appendTo(table); const basename = mw.config.get('wgPageName').replace(/\/zh$/, ''); var targetTitle; if (lang == 'zh') { targetTitle = basename + ''; } else { targetTitle = basename + '/' + lang; } var contentlang, newtext; if (lang == 'zh') { contentlang = 'zh-cn'; } else if (lang == 'zh-hans') { contentlang = 'zh-cn'; } else if (lang == 'zh-hant') { contentlang = 'zh-tw'; } else { contentlang = lang; } zhwpapi.parse( '{{NoteTA|G1=IT|G2=MediaWiki|G3=specialpages}}<div id="TVcontent">' + basepagetext + '</div>', { 'uselang': contentlang, 'prop': 'text', } ).then(function(data) { newtext = $('<div/>').html(data).find('#TVcontent').text(); return api.post({ action: 'query', prop: 'revisions', titles: [targetTitle], rvdifftotext: newtext, formatversion: '2', }); }, function(err) { mw.notify('解析' + lang + conv( { hans: '时发生错误:', hant: '時發生錯誤:' } ) + err); }).then(function(data) { let tool = $('<div><a href="' + mw.util.getUrl(targetTitle) + '">' + lang + '(' + langname[lang] + ')</a>(<a href="' + mw.util.getUrl(targetTitle, { action: 'edit' }) + '">' + conv( { hans: '编', hant: '編' } ) + '</a>)</div>').appendTo(diffTable); let page = data.query.pages[0]; if (page.missing) { let submit = $('<button style="float: right;">' + conv( { hans: '保存页面', hant: '儲存頁面' } ) + '</button>').appendTo(tool); submit.on('click', function() { this.remove(); api.create( targetTitle, { summary: TranslateVariants.summary.replace(/\$1/g, mw.config.get('wgPageName')) }, newtext ).then(function() { mw.notify(conv( { hans: '已编辑 ', hant: '已編輯 ' } ) + targetTitle); }, function(e) { mw.notify(conv( { hans: '编辑 ', hant: '編輯 ' } ) + targetTitle + conv( { hans: ' 发生错误:', hant: ' 發生錯誤:' } ) + e); }); }); $('<pre>').html(newtext.replace(/[<>&]/gim, function(s) { return "&#" + s.charCodeAt(0) + ";"; })).appendTo(diffTable); return; } let diff = page.revisions[0].diff.body; if (diff == '') { $('<span style="float: right;">' + conv( { hans: '无更改', hant: '無變更' } ) + '</span>').appendTo(tool); } else { let submit = $('<button class="TranslateVariants-publish-changes" style="float: right;">' + conv( { hans: '保存更改', hant: '儲存變更' } ) + '</button>').appendTo(tool); submit.on('click', function() { this.remove(); api.edit( targetTitle, function() { return { text: newtext, summary: TranslateVariants.summary.replace(/\$1/g, mw.config.get('wgPageName')), nocreate: false, }; } ).then(function() { mw.notify(conv( { hans: '已编辑 ', hant: '已編輯 ' } ) + targetTitle); }, function(e) { mw.notify(conv( { hans: '编辑 ', hant: '編輯 ' } ) + targetTitle + conv( { hans: ' 发生错误:', hant: ' 發生錯誤:' } ) + e); }); }); $('<table class="diff">').html(diff).prepend('<colgroup><col class="diff-marker"><col class="diff-content"><col class="diff-marker"><col class="diff-content"></colgroup>').appendTo(diffTable); } }, function(err) { mw.notify(conv( { hans: '获取', hant: '取得' } ) + lang + conv( { hans: '差异时发生错误:', hant: '差異時發生錯誤:' } ) + err); }).always(function() { process(); }); } } }, ); // </nowiki>
该页面使用的模板:
Template:LyricsKai
(
查看源代码
)
返回
User:ZheiZhei/test.js
。
首页
复制短链接
反馈与建议
管理与编辑
编辑指南
最近更改
维护列表
探索
官方网站
偶像大师 PORTAL
交流群组
友情链接
论坛社区
iM@S制作人同好会
作品汉化
偶像大师SP汉化组
偶像大师OFA汉化组
闪耀色彩汉化小组
学园偶像大师汉化
百科网站
灰姑娘女孩中文维基
闪耀色彩资料库
学园偶像大师图鉴
资讯情报
学园偶像大师同好会
偶像大师闪耀色彩报社
活动组织
偶像大师F@N EXPO
偶像大师国际协力机构
工具
导航菜单
个人工具
登录
命名空间
用户页
讨论
English
查看
阅读
查看源代码
查看历史
更多
刷新
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
用户贡献
日志
查看用户组
特殊页面
页面信息