Добро пожаловать на обновлённую Minecraft Wiki!
MediaWiki:Gadget-interlangSearch.js[править введение]
У этого скрипта нет документации. Если вы знаете, как использовать этот скрипт, пожалуйста, добавьте соответствующую информацию.
Замечание. Возможно, после сохранения вам придётся очистить кэш своего браузера, чтобы увидеть изменения.
- Firefox / Safari: Удерживая клавишу Shift, нажмите на панели инструментов Обновить либо нажмите Ctrl-F5 или Ctrl-R (⌘-R на Mac)
- Google Chrome: Нажмите Ctrl-Shift-R (⌘-Shift-R на Mac)
- Internet Explorer: Удерживая Ctrl, нажмите Обновить либо нажмите Ctrl-F5
- Opera: Выберите очистку кэша в меню Инструменты → Настройки
const i18n = {
de: {
suggest: 'Siehe auch die Seiten passend zu „$1“ in anderssprachigen Wikis.',
langlink: 'Diese Seite existiert als „$1“ in diesem Wiki.',
section: ' (Abschnitt $1)',
language: ' ($1)'
},
en: {
suggest: 'See also pages matching "$1" from other language wikis.',
langlink: 'This page exists as "$1" on this wiki!',
section: ' (section $1)',
language: ' ($1)'
},
es: {
suggest: 'Mira también páginas que coinciden con "$1" en wikis de otros idiomas.',
langlink: '¡Esta página existe como "$1" en esta wiki!',
section: ' (sección $1)',
language: ' ($1)'
},
ja: {
suggest: '他の言語版で見つかった「$1」も参照してください。',
langlink: 'このページは「$1」としてこのWikiに存在します。',
section: '($1の節)',
language: '($1)'
},
ko: {
suggest: '"$1"의 다른 언어 위키 검색 결과도 참고하세요.',
langlink: '이 페이지는 이 위키에 "$1" 문서로 존재합니다!',
section: ' ($1 문단)',
language: ' ($1)'
},
nl: {
suggest: 'Zoek naar pagina\'s die overeenkomen met "$1" op anderstalige wiki\'s',
langlink: 'Deze pagina bestaat als "$1" op deze wiki!',
section: ' (gedeelte $1)',
language: ' ($1)'
},
pt: {
suggest: 'Veja também páginas correspondentes a "$1" nas wikis de outros idiomas.',
langlink: 'Esta página existe como "$1" nessa wiki!',
section: ' (seção $1)',
language: ' ($1)'
},
th: {
suggest: 'ดูเพิ่มหน้าที่ตรงกับ "$1" จากวิกิภาษาอื่น',
langlink: 'หน้านี้มีอยู่ใน "$1" บนวิกิแห่งนี้!',
section: ' (ส่วน $1)',
language: ' ($1)'
},
'zh-hans': {
suggest: '另见其他语言wiki中与“$1”相匹配的页面。',
langlink: '此页面在本wiki上已作为“$1”存在!',
section: '(章节$1)',
language: '($1)'
},
'zh-hant': {
suggest: '參見其他語言wiki中與「$1」相符的頁面。',
langlink: '此頁面在本wiki上已作為「$1」存在!',
section: '(章節$1)',
language: '($1)'
},
};
mw.loader.using( [
'mediawiki.util',
'mediawiki.api',
'mediawiki.ForeignApi',
'ext.gadget.global-utils'
] ).then( function(require) {
const globalUtils = require( 'ext.gadget.global-utils' );
const config = mw.config.get( [
'wgCanonicalSpecialPageName',
'searchTerm',
'wgUserId',
'wgUserLanguage',
'wgContentLanguage'
] );
if ( config.wgCanonicalSpecialPageName !== 'Search' || $('.searchresults a.mw-nextlink').length ) return;
const searchTerm = config.searchTerm.trim();
if ( !searchTerm ) return;
const wikis = Object.values( globalUtils.wikis ).filter( wiki => wiki.url !== config.wgServer );
const currentWiki = config.wgContentLanguage;
const i18nLang = globalUtils.localization( i18n );
Promise.allSettled( wikis.map(checkWiki) ).then( function(results) {
var pages = [];
results.forEach( function(result, i) {
if ( result.status !== 'fulfilled' ) return;
var query = result.value.query;
var page = query.pages[0];
if ( page.missing || page.invalid ) return;
pages.push( {
wiki: wikis[i],
title: ( query.converted ? query.converted[0].from : page.title ),
section: ( query.redirects && query.redirects[0].tofragment ),
langlink: ( page.langlinks && page.langlinks[0].title )
} );
} );
if ( !pages.length ) return;
$('.searchresults .mw-search-visualclear:last-of-type').before(
$('<div class="mw-search-visualclear">'),
$('<div class="searchdidyoumean">').text(mw.format(i18nLang.suggest, searchTerm)).css('margin-top', '32px'),
$('<ul class="mw-search-results">').css('margin-top', '24px').append( pages.map( function(page) {
return $('<li class="mw-search-result">').append(
$('<div class="mw-search-result-heading">').append(
$('<a>').attr('href', page.wiki.url + mw.util.getUrl(page.title)).attr('title', page.title + ' – ' + page.wiki.name).append(
mw.html.escape(page.title).replace(searchTerm, '<span class="searchmatch">' + searchTerm + '</span>')
),
( page.section ? $('<span class="searchalttitle">').append(
mw.html.escape(i18nLang.section.split('$1')[0]),
$('<a>').attr('href', page.wiki.url + mw.util.getUrl(page.title + '#' + page.section)).attr('title', page.title + ' – ' + page.wiki.name).append(
mw.html.escape(page.section).replace(searchTerm, '<span class="searchmatch">' + searchTerm + '</span>')
).css('font-size', 'unset'),
mw.html.escape(i18nLang.section.split('$1')[1])
) : '' ),
$('<span class="searchalttitle">').text(mw.format(i18nLang.language, page.wiki.name))
),
( page.langlink ? $('<div class="searchresult">').append(
mw.html.escape(i18nLang.langlink.split('$1')[0]),
$('<a class="searchmatch">').attr('href', mw.util.getUrl(page.langlink)).attr('title', page.langlink.split('#')[0]).text(page.langlink).css('font-size', 'unset'),
mw.html.escape(i18nLang.langlink.split('$1')[1])
) : '' )
);
} ) )
);
} );
function checkWiki(wiki) {
return new mw.ForeignApi( wiki.url + '/api.php', {
anonymous: true
} ).get( {
action: 'query',
redirects: true,
converttitles: true,
titles: [searchTerm],
prop: 'langlinks',
lllang: currentWiki,
formatversion: 2,
requestid: 'gadget-interlangSearch'
} );
}
} );