MediaWiki:Gadget-SitelinkCheck.js

// ( function ( mw, $, wbt ) {

var debug = mw.util.getParamValue( 'sitelinkcheck' ); if ( debug ) alert( wbt.id );

var i18nData = { 'en': { /* general */ 'check sitelink': 'Check sitelink', 'intro': 'Check whether a specific site link is already in use. If so you will get the item, otherwise you can create the item.', /* Labels */ 'lang': 'Lang', 'title': 'Title', 'check': 'Check', 'exit': 'Exit', 'create': 'Create', 'importinterwikis': 'Import interwiki links', 'addlabels': 'Automatically add labels', /* Messages */ 'found': '$1 is linking to $2.', 'nothing found': 'Nothing found linking to $1.', 'redirect': 'The page $1 is redirecting to $2.', 'missing': 'The page $1 does not exist.', 'success': 'The item was successfully created.', 'missing lang': 'The lang must be given.', 'missing title': 'The title must be given.' },		'ar': { /* general */ 'check sitelink': 'تحقق من وصلة الموقع', 'intro': 'تحقق مما إذا كانت وصلة موقع محددة مستخدمة بالفعل. لو كانت كذلك فستحصل على المدخلة، غير ذلك يمكنك إنشاء المدخلة.', /* Labels */ 'lang': 'لغة', 'title': 'عنوان', 'check': 'تحقق', 'exit': 'خروج', 'create': 'أنشيء', 'importinterwikis': 'استورد وصلات الإنترويكي', 'addlabels': 'أضف العلامات أوتوماتيكيا', /* Messages */ 'found': '$1 يصل إلى $2.', 'nothing found': 'لا شيء تم العثور عليه يصل إلى $1.', 'redirect': 'الصفحة $1 تحول إلى $2.', 'missing': 'الصفحة $1 غير موجودة.', 'success': 'المدخلة تم إنشاؤها بنجاح.', 'missing lang': 'اللغة ينبغي أن يتم إعطاؤها.', 'missing title': 'العنوان ينبغي أن يتم إعطاؤه.' },		'bn': { /* general */ 'check sitelink': 'সাইটসংযোগ পরীক্ষা', 'intro': 'একটি নির্দিষ্ট সাইট সংযোগ ইতিমধ্যে ব্যবহার করা হয়েছে কিনা তা পরীক্ষা করুন। যদি তৈরি হয়ে থাকে তাহলে আপনি আইটেমটি পাবেন, অন্যথায় আপনি নতুন একটি আইটেম তৈরি করুন।', /* Labels */ 'lang': 'ভাষা', 'title': 'শিরোনাম', 'check': 'পরীক্ষা করো', 'exit': 'প্রস্থান', 'create': 'তৈরি করো', 'importinterwikis': 'আন্তঃউইকি সংযোগ আমদানি করো', 'addlabels': 'স্বয়ংক্রিয়ভাবে লেবেল যোগ করো', /* Messages */ 'found': '$2 - $1 এর সাথে সংযুক্ত।', 'nothing found': '$1 -এর সাথে সংযুক্ত করা এমন কিছু পাওয়া যায়নি।', 'redirect': '$1 পাতাটি $2 -এ পুনঃনির্দেশিত।', 'missing': '$1 পাতাটি বিদ্যমান নয়।', 'success': 'আইটেমটি সফলভাবে তৈরি হয়েছে।', 'missing lang': 'ভাষা (কোড) অবশ্যই দেওয়া লাগবে।', 'missing title': 'শিরোনাম অবশ্যই দেওয়া লাগবে।' },		'cs': { /* general */ 'check sitelink': 'Zkontroluj odkazy', 'intro': 'Zkontroluje, zda je specifický odkaz již někde použit. Pokud ano, odkáže na něj, jinak umožní vytvořit novou položku.', /* Labels */ 'lang': 'Jazyk', 'title': 'Název', 'check': 'Zkontroluj', 'exit': 'Konec', 'create': 'Vytvoř', 'importinterwikis': 'Importuj interwiki', 'addlabels': 'Automaticky přidej štítky', /* Messages */ 'found': '$1 odkazuje na $2.', 'nothing found': 'Na #1 nic neodkazuje.', 'redirect': 'Stránka $1 je přesměrovaná na $2.', 'missing': 'Stránka $1 neexistuje.', 'success': 'Položka byla úspěšně vytvořena.', 'missing lang': 'Jazyk musí být zadán.', 'missing title': 'Název musí být zadán.' },		'es': { 'check sitelink': 'Comprobar los enlaces de un sitio', 'intro': 'Comprobar si el enlace de un sitio específico ya está en uso. En este caso obtendrás el elemento, en caso contrario, podrás crear el elemento.', 'lang': 'Idioma', 'title': 'Título', 'check': 'Comprobar', 'exit': 'Salir', 'create': 'Crear', 'importinterwikis': 'Importar enlaces interwiki', 'addlabels': 'Añadir las etiquetas automáticamente', 'found': '$1 contiene el enlace $2.', 'nothing found': 'Ningún elemento enlaza con $1.', 'redirect': 'La página $1 redirige a $2.', 'missing': 'La página $1 no existe.', 'success': 'Se creó el elemento satisfactoriamente.', 'missing lang': 'Tienes que proporcionar un idioma.', 'missing title': 'Tienes que proporcionar un título.' },		'ca': { 'check sitelink': 'Verifica l’enllaç', 'intro': 'Verifica si ja s’utilitza un enllaç web cap a un lloc específic. En aquest cas obtindreu l’element, si no podreu crear-lo.', 'lang': 'Idioma', 'title': 'Títol', 'check': 'Verifica', 'exit': 'Tanca', 'nothing found': 'Cap pàgina trobada amb $1.', 'found': '$1 conté l’enllaç $2.', 'create': 'Crea', 'addlabels': 'Afegeix automàticament una etiqueta' },		'de': { 'check sitelink': 'Websitelink überprüfen', 'intro': 'Prüfe, ob ein bestimmter Websitelink bereits benutzt wird. Wenn ja, bekommst du das Datenelement, sonst kannst du ein neues Datenelement erstellen.', 'lang': 'Sprache', 'title': 'Titel', 'check': 'Überprüfen', 'exit': 'Schließen', 'nothing found': 'Es wurde nichts gefunden, das auf $1 verlinkt.', 'found': '$1 verlinkt auf $2.', 'create': 'Erstellen', 'addlabels': 'Automatisch Bezeichnungen ergänzen', 'importinterwikis': 'Websitelink importieren', 'redirect': 'Die Seite $1 leitet nach $2 weiter.', 'missing': 'Es gibt die Seite $1 nicht.', 'success': 'Das Datenelement wurde erfolgreich erstellt.' },		'fa': { 'check sitelink': 'بازبینی پیوند وب‌گاه', 'intro': 'چک کنید شاید پیوند به وب‌گاه موجود باشد، در این صورت آیتم را خواهید یافت وگرنه می‌توانید آیتم را بسازید.', 'lang': 'زبان', 'title': 'عنوان', 'check': 'بازبینی', 'exit': 'خروج', 'create': 'ایجاد', 'importinterwikis': 'درون‌ریزی میان‌ویکی‌ها', 'addlabels': 'افزودن برچسب به صورت خودکار', 'found': '$1 به $2 پیوند دارد.', 'nothing found': 'موردی یافت نشد که به $1 پیوند شده‌باشد.', 'redirect': 'صفحهٔ $1 به $2 تغییر مسیر است.', 'missing': 'صفحهٔ $1 وجود ندارد.', 'success': 'آیتم با موفقیت ساخته شد.', 'missing lang': 'زبان باید مشخص شود.', 'missing title': 'عنوان باید مشخص شود.' },		'fi': { 'check sitelink': 'Tarkista sivustolinkki', 'intro': 'Tarkista onko tietty sivustolinkki jo käytössä. Jos näin on, siirryt kohteeseen. Muussa tapauksessa voit luoda uuden kohteen.', 'lang': 'Kieli', 'title': 'Nimi', 'check': 'Tarkista', 'exit': 'Sulje', 'create': 'Luo', 'importinterwikis': 'Tuo kielilinkit', 'addlabels': 'Lisää automaattisesti nimet', 'found': '$1 on linkitetty sivuun $2.', 'nothing found': 'Ei löytynyt linkkejä sivuun $1.', 'redirect': 'Sivu $1 on uudelleenohjaus sivuun $2.', 'missing': 'Sivua $1 ei löydy.', 'success': 'Kohde luotu onnistuneesti.', 'missing lang': 'Kieli täytyy antaa.', 'missing title': 'Nimi täytyy antaa.' },		'fr': { /* general */ 'check sitelink': 'Vérifier le lien', 'intro': 'Ce gadget permet de vérifier si un article de FAMEPédia est déjà lié à un élément de FAMEData, et dans l\'hypothèse négative, de créer un nouvel élément.', /* Labels */ 'lang': 'Langue', 'title': 'Titre', 'check': 'Vérifier', 'exit': 'Quitter', 'create': 'Créer', 'importinterwikis': 'Importer les liens interwikis', 'addlabels': 'Ajouter automatiquement les libellés', /* Messages */ 'found': '$1 est lié avec $2.', 'nothing found': 'Aucun lien trouvé pour $1.', 'redirect': 'La page $1 redirige vers $2.', 'missing': 'La page $1 n\'existe pas.', 'success': 'L\'élément a bien été créé', 'missing lang': 'La langue doit être renseignée', 'missing title': 'Le titre doit être renseigné.' },		'gl': { 'check sitelink': 'Comprobar as ligazóns dun sitio', 'intro': 'Comprobar se a ligazón dun sitio específico xa está en uso. Neste caso obterás o elemento, en caso contrario, poderás crear o elemento.', 'lang': 'Idioma', 'title': 'Título', 'check': 'Comprobar', 'exit': 'Saír', 'create': 'Crear', 'importinterwikis': 'Importar as ligazóns interwiki', 'addlabels': 'Engadir as etiquetas automaticamente', 'found': '$1 contén a ligazón $2.', 'nothing found': 'Ningún elemento liga con $1.', 'redirect': 'A páxina $1 redirixe a $2.', 'missing': 'A páxina $1 non existe.', 'success': 'Creouse o elemento satisfactoriamente.', 'missing lang': 'Tes que proporcionar un idioma.', 'missing title': 'Tes que proporcionar un título.' },		'id': { 'check sitelink': 'Cek interwiki', 'intro': 'Cek apakah interwiki yang dimaksud sudah digunakan. Jika sudah, Anda akan menemukan item. Jika belum, Anda akan membuat item baru.', 'lang': 'Bahasa', 'title': 'Judul', 'check': 'Cek', 'exit': 'Keluar', 'create': 'Buat', 'importinterwikis': 'Impor pranala interwiki', 'addlabels': 'Otomatis menambahkan label', 'found': '$1 terkait pada $2.', 'nothing found': 'Tidak ada yang terkait pada $1.', 'redirect': 'Halaman $1 dialihkan pada $2.', 'missing': 'Halaman $1 tidak ada.', 'success': 'Item berhasil dibuat.', 'missing lang': 'Harus ada kode bahasa.', 'missing title': 'Harus ada judul halaman.' },		'it': { /* general */ 'check sitelink': 'Verifica sitelink', 'intro': 'Verifica se uno specifico collegamento è già in uso. In caso positivo restituisce l\'elemento collegato, altrimenti permette di creare l\'elemento.', /* Labels */ 'lang': 'Lingua', 'title': 'Titolo', 'check': 'Verifica', 'exit': 'Esci', 'create': 'Crea', 'importinterwikis': 'Importa interlink', 'addlabels': 'Aggiungi automaticamente le etichette', /* Messages */ 'found': '$1 è collegato a $2.', 'nothing found': 'Nessun collegamento a $1.', 'redirect': 'La pagina $1 è un redirect a $2.', 'missing': 'La pagina $1 non esiste.', 'success': 'Elemento creato con successo.', 'missing lang': 'La lingua è obbligatoria.', 'missing title': 'Il titolo è obbligatorio.' },		'ja': { 'check sitelink': 'サイトリンクをチェック', 'intro': '特定のサイトリンクが使用済みかどうかチェックできます. 使用済みであればその項目へのリンクが表示され、未使用であればその項目を作成できます. ',			'lang': '言語コード', 'title': 'ページ名', 'check': 'チェック', 'exit': '終了', 'create': '作成', 'importinterwikis': '言語間リンクを移入する', 'addlabels': 'ラベルを自動的に追加する', 'found': '$1 が $2 にリンクしています. ',			'nothing found': '$1 にリンクしている項目はありません. ',			'redirect': 'ページ $1 は $2 に転送されています. ',			'missing': 'ページ $1 は存在しません. ',			'success': '項目の作成に成功しました. ',			'missing lang': '言語コードは必須です. ',			'missing title': 'ページ名は必須です. '		},		'ko': { /* general */ 'check sitelink': '사이트링크 확인', 'intro': '각 언어 위키백과의 문서가 위키데이터의 어떤 항목에 연결되어 있는지 확인합니다.', /* Labels */ 'lang': '언어', 'title': '제목', 'check': '확인', 'exit': '닫기', 'create': '생성', 'importinterwikis': '사이트링크 추가', 'addlabels': '자동적으로 레이블 삽입', /* Messages */ 'found': '$1 은 $2 에 링크되어 있습니다.', 'nothing found': '$1 에 연결되어 있는 항목을 찾지 못했습니다.', 'redirect': '$ 1 문서는 존재하지 않습니다.', 'missing': 'T항목이 성공적으로 만들어졌습니다.', 'success': '항목이 성공적으로 만들어졌습니다.', 'missing lang': '언어를 입력하셔야 합니다.', 'missing title': '제목을 입력하셔야 합니다.' },		'ku': { 'check sitelink': 'Înterwîkiyan his bike', 'intro': 'His bike ka înterwîkiyek tê bi kar anîn.Heke belê, tê jixwe elementê bibînî, heke na yekî biafirîne', 'lang': 'Ziman', 'title': 'Sernav', 'check': 'Kontrol bike', 'exit': 'Derkeve', 'create': 'Biafirîne', 'importinterwikis': 'Înterwîkiyan ji derve bîne', 'addlabels': 'Nîşanan otomatîk lê zêde bike', 'found': '$1 contiene el enlace $2.', 'nothing found': 'Ningún elemento enlaza con $1.', 'redirect': 'Rûpel $1 beralî $2 dike.', 'missing': 'Rûpel $1 tune ye.', 'success': 'Element hate afirandin.', 'missing lang': 'Ziman divê bê dayîn.', 'missing title': 'Sernav divê bê dayîn.' },		'min': { 'check sitelink': 'Cek interwiki', 'intro': 'Cek apokah interwiki nan dimakasuik alah digunoan. Kok alah, Sanak ka basobok jo item. Kok alun, Sanak akan mambuek item baru.', 'lang': 'Bahaso', 'title': 'Judul', 'check': 'Cek', 'exit': 'Kalua', 'create': 'Buek', 'importinterwikis': 'Impor pautan interwiki', 'addlabels': 'Otomatis manambahan label', 'found': '$1 takaik pado $2.', 'nothing found': 'Indak ado nan takaik ka $1.', 'redirect': 'Laman $1 dialiahkan ka $2.', 'missing': 'Laman $1 indak ado.', 'success': 'Item barasil dibuek.', 'missing lang': 'Harus ado kode bahaso.', 'missing title': 'Harus ado judul laman.' },		'mk': { /* general */ 'check sitelink': 'Провери викиврска', 'intro': 'Проверка дали веќе се користи извесна врска до мрежно место. Ако ја има, тогаш ќе го добиете предметот. Во спротивно, можете да го создадете.', /* Labels */ 'lang': 'Јазик', 'title': 'Наслов', 'check': 'Провери', 'exit': 'Излези', 'create': 'Создај', 'importinterwikis': 'Увоз на меѓувики-врски', 'addlabels': 'Автоматски додај етикети', /* Messages */ 'found': '$1 води до $2.', 'nothing found': 'Не најдов ништо што води до $1.', 'redirect': 'Страницата $1 пренасочува кон $2.', 'missing': 'Страницата $1 не постои.', 'success': 'Предметот е успешно создаден.', 'missing lang': 'Мора да зададете јазик.', 'missing title': 'Мора да зададете наслов.' },		'nl': { 'check sitelink': 'Siteverwijzing controleren', 'intro': 'Controleren of een siteverwijzing al in gebruik is. Als het in gebruik is dan krijg je het item, zo niet, dan kan je deze aanmaken.', /* Labels */ 'lang': 'Taal', 'title': 'Titel', 'check': 'Controleren', 'exit': 'Sluiten', 'create': 'Aanmaken', 'importinterwikis': 'Interwiki verwijzingen importeren', 'addlabels': 'Automatisch labels toevoegen', 'found': '$1 linkt naar $2.', 'nothing found': 'Er linkt niets naar $1.', 'redirect': 'De pagina $1 verwijst door naar $2.', 'missing': 'De pagina $1 bestaat niet.', 'success': 'Het item is succesvol aangemaakt', 'missing lang': 'De taal moet worden aangegeven.', 'missing title': 'De titel moet worden gegeven.' },		'pl': { /* general */ 'check sitelink': 'Sprawdź link interwiki', 'intro': 'Sprawdź gdzie użyty jest link. Jeżeli element nie istnieje, możesz go utworzyć.', /* Labels */ 'lang': 'Język', 'title': 'Nazwa', 'check': 'Sprawdź', 'exit': 'Wyjście', 'create': 'Utwórz nowy element', 'importinterwikis': 'Importuj linki interwiki', 'addlabels': 'Dodaj automatycznie etykiety', /* Messages */ 'found': 'Element $1 używa link $2.', 'nothing found': 'Nie znaleziono elementu zawierającego $1.', 'redirect': 'Strona $1 jeest przekierowaniem do $2.', 'missing': 'Strona $1 nie istnieje.', 'success': 'Element został pomyślnie utworzony.', 'missing lang': 'Musisz podać język.', 'missing title': 'Musisz podać tytuł.' },		'ru': { 'check sitelink': 'Проверить ссылки', 'intro': 'Проверьте, используется ли уже определённая ссылка на сайт. Если это так, вы получите соответствующий элемент, в противном случае вы сможете его создать.', 'lang': 'Язык', 'title': 'Название', 'check': 'Проверить', 'exit': 'Выход', 'create': 'Создать', 'importinterwikis': 'Импортировать интервики-ссылки', 'addlabels': 'Автоматически добавить метки', 'found': '$1 ссылается на $2.', 'nothing found': 'Не найдены ссылки на $1.', 'redirect': 'Страница $1 перенаправляет на $2.', 'missing': 'Страница $1 не существует.', 'success': 'Элемент успешно создан.', 'missing lang': 'Нужно указать язык.', 'missing title': 'Нужно указать название.' },		'sv': { /* general */ 'check sitelink': 'Kontrollera webbplatslänk', 'intro': 'Kontrollera om en särskild webbplatslänk redan används. Om den gör det hämtas objektet, annars kan du skapa objektet.', /* Labels */ 'lang': 'Språk', 'title': 'Titel', 'check': 'Kontrollera', 'exit': 'Stäng', 'create': 'Skapa', 'importinterwikis': 'Importera interwiki-länkar', 'addlabels': 'Lägg automatiskt till etiketter', /* Messages */ 'found': '$1 länkar till $2.', 'nothing found': 'Ingenting hittades som länkar till $1.', 'redirect': 'Sidan $1 omdirigerar till $2.', 'missing': 'Sidan $1 finns inte.', 'success': 'Objektet har skapats.', 'missing lang': 'Språk måste anges.', 'missing title': 'Titel måste anges.' },		'zh': { 'check sitelink': '检查站点链接', 'intro': '检查指定站点的链接，如果链接已存在的话会给出相应的项目，不存在的话您可以创建此项目. ',			'lang': '语言', 'title': '标题', 'check': '检查', 'exit': '退出', 'create': '创建', 'importinterwikis': '导入跨语言链接', 'addlabels': '自动添加标签', 'found': '$1 链接至 $2. ',			'nothing found': '未找到链接至 $1 的项目. ',			'redirect': '页面 $1 重定向至 $2. ',			'missing': '页面 $1 不存在. ',			'success': '已成功创建项目. '		},		'zh-hans': { 'check sitelink': '检查站点链接', 'intro': '检查指定站点的链接，如果链接已存在的话会给出相应的项目，不存在的话您可以创建此项目. ',			'lang': '语言', 'title': '标题', 'check': '检查', 'exit': '退出', 'create': '创建', 'importinterwikis': '导入跨语言链接', 'addlabels': '自动添加标签', 'found': '$1 链接至 $2. ',			'nothing found': '未找到链接至 $1 的项目. ',			'redirect': '页面 $1 重定向至 $2. ',			'missing': '页面 $1 不存在. ',			'success': '已成功创建项目. '		},		'zh-hant': { 'check sitelink': '檢查站點連結', 'intro': '檢楂指定站點的連結，如果連結已存在的話會給出相應的項目，不存在的話您可以創建此項目. ',			'lang': '語言', 'title': '標題', 'check': '檢查', 'exit': '結束', 'create': '建立', 'importinterwikis': '匯入跨語言連結', 'addlabels': '自動添加標籤', 'found': '$1 連結至 $2. ',			'nothing found': '未找到連結至 $1 的項目. ',			'redirect': '頁面 $1 重新導向至 $2. ',			'missing': '頁面 $1 不存在. ',			'success': '已成功創建項目. '		}	};

var i18nSite = { /*These language codes have other codes as their interwiki codes */ 'zh-hans': 'zh', 'zh-hant': 'zh' };	var lang = mw.config.get( 'wgUserLanguage' ); var langParam; if ( lang in i18nSite ) { langParam = i18nSite[lang]; } else { langParam = lang; }

if ( !( lang in i18nData ) ) { lang = 'en'; }

var urlLang = mw.util.getParamValue( 'site' ); if ( urlLang !== null ) { langParam = urlLang.substr( 0, urlLang.length - 4 ); }

var titleParam = ''; var urlTitle = mw.util.getParamValue( 'page' ); if ( urlTitle !== null ) { titleParam = urlTitle; }

function i18n( key ) { var msg; if ( i18nData[ lang ][ key ] ) { msg = i18nData[ lang ][ key ]; }		else if ( key in i18nData[ 'en' ] ) { msg = i18nData[ 'en' ][ key ]; }		else { msg = '<' + key + '>'; }		for ( var i = 1; i < arguments.length; i++ ) { msg = msg.replace( new RegExp( '\\$' + i, 'g' ), arguments[i] ); }		msg = jqueryMsg( msg ); return msg.substr( 1, msg.length - 2 ); }

if ( mw.util.getParamValue( 'createitem' ) == 'success' && wbt.id ) { mw.notify( i18n( 'success' ) ); }

function success( data ) { window.location.href = mw.util.getUrl( data.entity.id, { createitem: 'success' } ); }

function error( msg ) { $( '#sitelink-result' ).html( msg ); }

function createSpinner { $( '#sitelink-result' ).html( ' ' ); $.createSpinner( {			size: 'large',			type: 'block',			id: 'sitelink-spinner'		} ).replaceAll( '#sitelink-spinner' ); }

function show { $( '#sitelink-result' ).html( '' ); $( '#sitelink-title' ).val( titleParam ); $( '#sitelink' ).dialog( 'open' ); $( '#sitelink-title' ).focus; return false; }

function getKey( data ) { for ( var prop in data ) return prop; }

function work( lang, title, addlabels, importinterwikis ) { var summary = '' + lang + ':' + title + ' (SC)'; var data = { sitelinks: {} }; var site = lang.replace( /-/g, '_' ) + 'wiki'; data['sitelinks'][site] = { 'site': site, 'title': title };		if ( addlabels ) { if ( debug ) alert( 'addlabels' ); data['labels'] = {}; data['labels'][lang] = { language: lang, value: title.replace( /\(.*\)/g, '' ) // regex };		}		if ( importinterwikis ) { if ( debug ) alert( 'importinterwikis' ); wbt.getInterwikiLinks( lang, title, function ( links ) {				for ( var lang in links ) {					var title = links[lang];					var site = lang.replace( /-/g, '_' ) + 'wiki';					data['sitelinks'][site] = {						'site': site,						'title': title					};					if ( addlabels ) {						data['labels'][lang] = {							language: lang,							value: title.replace( /\(.*\)/g, '' ) // regex						};					}				}				if ( debug ) alert( JSON.stringify( data ) );				wbt.createItem( data, summary, success, error );			}, error ); }		else { if ( debug ) alert( JSON.stringify( data ) ); wbt.createItem( data, summary, success, error ); }	}

function searchItem( lang, title ) { $.ajax( {			type: 'POST',			url: mw.util.wikiScript( 'api' ),			data: {				'action': 'wbgetentities',				'format': 'json',				'sites': lang + 'wiki',				'titles': title			}		} ) .done( function ( data ) {			var id = getKey( data.entities );			var $message = $( ' ' );			if ( id === '-1' ) {				$message.append( $( ' ' ).append( i18n( 'nothing found',  + lang + ':' + title +  ) ) );				if ( !mw.user.isAnon ) {					$message.append( $( ' ' )						.append(							$( ' ' )							.attr( { type: 'checkbox', id: 'sitelink-importinterwikis' } )						) // 						.append(							$( ' ' )							.attr( 'for', 'sitelink-importinterwikis' )							.text( i18n( 'importinterwikis' ) )						) // // 						.after(							$( ' ' )							.append( $( ' ' )								.attr( {									type: 'checkbox',									id: 'sitelink-addlabels'								} ) ) // 							.append( $( ' ' )								.attr( 'for', 'sitelink-addlabels' ) .text( i18n( 'addlabels' ) ) ) // 						) // 						.after(							$( ' ' )							.append( $( ' ' )								.attr( {									type: 'button',									id: 'sitelink-createitem',									'class': 'ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only',									role: 'button'								} ) .click( function {									// create Item									var addlabels = $( '#sitelink-addlabels' ).is( ':checked' );									var importinterwikis = $( '#sitelink-importinterwikis' ).is( ':checked' );									createSpinner;									work( lang, title, addlabels, importinterwikis );								} ) .append(									$( ' ' )									.attr( 'class', 'ui-button-text' )									.text( i18n( 'create' ) )								) // ) // 						) // 					);				}			}			else {				id = 'Q' + id.substr( 1 );				$message.append( $( ' ' ).append( i18n( 'found',  + id + ,  + lang + ':' + title +  ) ) );			}			$( '#sitelink-result' ).html( $message.html );		} ) .fail( function ( jqXHR, textStatus, errorThrown ) {			error( i18n( 'api-error' ) );		} ); }

function check { var lang = $( '#sitelink-lang' ).val; var title = $( '#sitelink-title' ).val; if ( debug ) alert( 'lang: ' + lang ); if ( debug ) alert( 'title: ' + title );

if ( !lang ) { error( i18n( 'missing lang' ) ); return; }		if ( !title ) { error( i18n( 'missing title' ) ); return; }		createSpinner;

$.ajax( {			url: '//' + lang + '.famepedia.org/w/api.php',			data: {				'format': 'json',				'action': 'query',				'prop': 'pageprops',				'titles': title,				'redirects': 'redirects'			},			url: '//' + lang + '.miraheze.org/w/api.php',			data: {				'format': 'json',				'action': 'query',				'prop': 'pageprops',				'titles': title,				'redirects': 'redirects'			},			dataType: 'jsonp'		} ) .done( function ( data ) {			var prefix =  + lang + ':';			if ( data.error ) {				error( data.error.info );			}			else if ( !data.query ) {				error( i18n( 'api-error' ) );			}			else if ( data.query.pages['-1'] ) {				error( i18n( 'missing', prefix + data.query.pages['-1'].title +  ) );			}			else if ( data.query.redirects ) {				var redirect = data.query.redirects[0];				error( i18n( 'redirect', prefix + redirect.from + ']]', prefix + redirect.to + ']]' ) );			}			else {				searchItem( lang, title );			}		} ) .fail( function ( jqXHR, textStatus, errorThrown ) {			error( i18n( 'api-error' ) );		} ); }

function init { var $form = $( ' ' ) .attr( 'id', 'sitelink' ) .append(			$( ' ' )			.submit( check )			.append( $( ' ' )				.attr( 'id', 'sitelink-form' ) .append(					$( ' ' )					.text( i18n( 'check sitelink' ) )				) // .append(					$( ' ' )					.attr( 'id', 'sitelink-intro' )					.text( i18n( 'intro' ) )				) // .append(					$( ' ' )					.append( $( ' ' )						.attr( {							'for'	: 'sitelink-lang',							'class'	: 'sitelink-label'						} ) .text( i18n( 'lang' ) + ': ' ) )					.append( $( ' ' )						.attr( {							'type'	: 'text',							'id'	: 'sitelink-lang',							'class'	: 'sitelink-input',							'value'	: langParam						} ) )				) // 				.append(					$( ' ' )					.append( $( ' ' )						.attr( {							'for'	: 'sitelink-title',							'class'	: 'sitelink-label'						} ) .text( i18n( 'title' ) + ': ' ) )					.append( $( ' ' )						.attr( {							'type'	: 'text',							'id'	: 'sitelink-title',							'class'	: 'sitelink-input',							'value'	: titleParam						} ) )				) // 			) // 		) // 		.append(			$( ' ' )			.attr( 'id', 'sitelink-result' )		); //

var contentForm = $( $form ).appendTo( '#content' ); contentForm.dialog( {			title: '' + i18n( 'check sitelink' ),			autoOpen: false,			modal: true,			width: 500,			buttons: [ {				id: 'sitelink-button-check',				text: i18n( 'check' ),				click: check			}, {				id: 'sitelink-button-exit',				text: i18n( 'exit' ),				click: function {					$( '#sitelink' ).dialog( 'close' );				}			} ]		} );

var portletLink = mw.util.addPortletLink( 'p-tb', '#', i18n( 'check sitelink' ), 't-sitelink', i18n( 'check sitelink' ) ); $( portletLink ).click( show );

$( '#wb-createentity-submit' ).after(			$( '' )			.attr( { 'id': 'sitelink-createentity', 'href': '#' } )			.text( i18n( 'check sitelink' ) )			.click( show )		); }

$( init ); } )( mediaWiki, jQuery, wikibaseTools ); //