మీడియావికీ:Gadget-slurpInterwiki.js

వికీవ్యాఖ్య నుండి

గమనిక: భద్రపరచిన తర్వాత, మార్పులను చూడాలంటే మీ విహారిణి కోశాన్ని తీసేయాల్సిరావచ్చు.

  • ఫైర్‌ఫాక్స్‌ / సఫారి: Shift మీటని నొక్కిపట్టి Reloadని నొక్కండి లేదా Ctrl-F5 గానీ Ctrl-R (మాకింటోషులో ⌘-Shift-R) గానీ నొక్కండి
  • గూగుల్ క్రోమ్: Ctrl-Shift-R (మాక్ లో ⌘-Shift-R) నొక్కండి
  • ఇంటర్నెట్ ఎక్ప్లోరర్/ఎడ్జి: Ctrl ను నొక్కిపట్టి Refresh నొక్కండి లేదా Ctrl-F5 నొక్కండి.
  • ఒపేరా:* Ctrl-F5 నొక్కండి.
/*  _____________________________________________________________________________________________________
 * |                                                                                                     |
 * |                    === WARNING: GLOBAL GADGET FILE ===                                              |
 * |                  Changes to this page affect many users.                                            |
 * | Please discuss changes on the talk page or on [[MediaWiki talk:Gadgets-definition]] before editing. |
 * |____________________________________________________________________________________________________ |
 *
 */
( function ( mw, $ ) {

	var i18nData = {
		'en': {
			'box-title': 'Import interwiki',
			'box-warning': 'Warning: This script automatically imports languages links from one wiki without a check of conflicts. You have to check all the interwikis in the page of the chosen wiki before uploading them to Wikidata!',
			'box-lang': 'from: ',
			'box-updateLabels': 'Auto-complete empty labels with the name of the related link.',
			'import': 'Import',
			'error-api': 'Communication error with the API!',
			'error-wiki': 'The selected wiki is unknown!',
			'error-page': 'The page does not exist!',
			'error-pageNotFound': 'No link found for the selected wiki!',
			'error-save': 'Save error: ',
			'success-links': 'Links imported!',
			'success-labels': 'Labels imported!',
			'nolinkstoupdate': 'All the links are already imported. Nothing to do!'
		},
		'ca': {
			'box-title': 'Importació d\'interwikis',
			'box-warning': 'Atenció: aquest script importa automàticament els enllaços interwiki des d\'una wiki sense verificar si hi ha conflictes. Heu de verificar-los tots abans de fer la importació a Wikidata!',
			'box-lang': 'origen: ',
			'box-updateLabels': 'Introdueix automàticament les etiquetes buides amb el nom dels enllaços corresponent.',
			'import': 'Importa',
			'error-api': 'Error de comunicació amb l\'API!',
			'error-wiki': 'La wiki seleccionada és desconeguda!',
			'error-page': 'La pàgina no existeix!',
			'error-pageNotFound': 'No s\'ha trobat cap enllaç per a la wiki seleccionada!',
			'error-save': 'Error en desar: ',
			'success-links': 'S\'han importat els enllaços!',
			'success-labels': 'Etiquetes importades!',
			'nolinkstoupdate': 'Ja s\'han importat tots els enllaços. Res més a fer!'
		},
		'cs': {
			'box-title': 'Import interwiki',
			'box-warning': 'Varování: Tento skript automaticky naimportuje jazykové odkazy z jedné wiki bez kontroly případných konfliktů. Raději zkontroluj odkazy před nahráním na Wikidata!',
			'box-lang': 'z: ',
			'import': 'Import',
			'error-api': 'Chyba při komunikaci s API!',
			'error-wiki': 'Neznámá wiki!',
			'error-page': 'Stránka neexistuje!',
			'error-pageNotFound': 'Nenalezen žádný odkaz pro zvolenou wiki!',
			'error-save': 'Chyba při ukládání: ',
			'success-links': 'Odkazy naimportovány!',
			'nolinkstoupdate': 'Všechny odkazy již jsou naimportovány.'
		},
		'de': {
			'box-title': 'Interwiki importieren',
			'box-warning': 'Achtung: Dieses Skript importiert die Interwiki-Links einer Sprachversion, ohne auf mögliche Konflikte zu prüfen. Du musst alle Links überprüfen, bevor du sie nach Wikidata überträgst!',
			'box-lang': 'von: ',
			'import': 'Importieren',
			'error-api': 'Fehler bei der Kommunikation mit der API!',
			'error-wiki': 'Das ausgewählte Wiki ist unbekannt!',
			'error-page': 'Die Seite existiert nicht!',
			'error-pageNotFound': 'Keinen Link im gewählten Wiki gefunden!',
			'error-save': 'Fehler beim Speichern: ',
			'success-links': 'Links importiert!',
			'nolinkstoupdate': 'Alle Links wurden schon importiert.'
		},
		'eo': {
			'box-title': 'Importi la interlingvajn ligilojn',
			'box-warning': 'Atentu: Ĉi tiu skripto aŭtomate importas la interlingvajn ligilojn el la elektita vikio ne enkalkulante eblajn konfliktojn. Vi nepre kontrolu ĉiujn interlingvajn ligilojn antaŭ ol alŝuti ilin al Vikidatumoj !',
			'box-lang': 'el : ',
			'box-updateLabels': 'Aŭtomate plenigi la malplenajn etikedojn per la nomo de la korespondaj ligiloj.',
			'import': 'Importi',
			'error-api': 'Komunikeraro kun la API !',
			'error-wiki': 'La elketita vikio estas nekonata !',
			'error-page': 'La paĝo ne ekzistas !',
			'error-pageNotFound': 'Neniu ligilo trovita en la elektita vikio !',
			'error-save': 'Eraro dum konservado: ',
			'success-links': 'Ligiloj importitaj !',
			'success-labels': 'Etikedoj importitaj !',
			'nolinkstoupdate': 'Ĉiuj ligiloj jam estis importitaj. La skripto ŝanĝis nenion.!'
		},
		'es': {
                        'box-title': 'Importar interwikis',
                        'box-warning': '¡Atención: este script importa automáticamente los enlaces interlingüísticos de una wiki sin comprobar si existen conflictos. Tendrás que comprobar todos los interwikis de la página de la wiki elegida antes de subirlos a Wikidata!',
                        'box-lang': 'desde: ',
                        'box-updateLabels': 'Autocompletar las etiquetas vacías con el nombre del enlace relacionado.',
                        'import': 'Importar',
                        'error-api': '¡Error de comunicación con la API!',
                        'error-wiki': 'La wiki seleccionada es desconocida',
                        'error-page': 'La página no existe',
                        'error-pageNotFound': 'No se encontraron enlaces para la wiki seleccionada',
                        'error-save': 'Error al guardar: ',
                        'success-links': '¡Enlaces importados!',
                        'success-labels': '¡Etiquetas importadas!',
                        'nolinkstoupdate': 'Ya están importados todos los enlaces. ¡No hay nada que hacer!'
                },
		'fa': {
			'box-title': 'دریافت میان‌ویکی',
			'box-warning': 'هشدار:این ابزار پیوندها را بدون تشخیص تداخل میان‌ویکی‌ها درون‌ریزی می‌کند . تشخیص و اصلاح میان‌ویکی‌های اشتباه به عهدهٔ کاربر است!',
			'box-lang': 'از: ',
			'box-updateLabels': 'کامل‌کردن خودکار برچسب‌های خالی بر اساس پیوند مرتبط',
			'import': 'دریافت',
			'error-api': 'خطا در ارتباط با ای‌پی‌آی!',
			'error-wiki': 'ویکی مورد نظر ناشناس است!',
			'error-page': 'صفحهٔ مورد نظر وجود ندارد!',
			'error-pageNotFound': 'برای ویکی انتخاب‌شده پیوندی یافت نشد!',
			'error-save': 'خطای ذخیره : ',
			'success-links': 'پیوندها درون‌ریزی شدند!',
			'nolinkstoupdate': 'همهٔ میان‌ویکی‌ها موجود هستند چیزی برای افزودن نمانده‌است!',
                        'success-labels': 'برچسب‌ها درون‌ریزی شدند!'
		},
		'fi': {
			'box-title': 'Tuo kielilinkit',
			'box-warning': 'Varoitus: Tämä työkalu tuo automaattisesti kielilinkit yhdestä wikistä ilman tarkistuksia. Sinun pitää ensin tarkistaa kaikki kieltenväliset linkit wikistä, josta tuot linkit Wikidataan!',
			'box-lang': 'mistä: ',
			'box-updateLabels': 'Täytä automaattisesti tyhjät nimet kieltä vastaavan linkin mukaan.',
			'import': 'Tuo',
			'error-api': 'Virhe kommunikoidessa API:n kanssa!',
			'error-wiki': 'Valittu wiki on tuntematon!',
			'error-page': 'Sivu ei löydy !',
			'error-pageNotFound': 'Valittuun wikiin ei löytynyt linkkejä!',
			'error-save': 'Tallennusvirhe: ',
			'success-links': 'Linkit tuotu!',
			'success-labels': 'Nimet tuotu!',
			'nolinkstoupdate': 'Kaikki linkit on jo tuotu. Mitään ei tehty!'
		},
		'fr': {
			'box-title': 'Importer les interwikis',
			'box-warning': 'Attention: Ce script importe automatiquement les liens interlangues depuis le wiki choisi sans faire attention aux possibles conflits. Vous devez vérifier tout les interwikis avant de les verser sur Wikidata !',
			'box-lang': 'depuis : ',
			'box-updateLabels': 'Compléter automatiquement les libellés vides avec le nom des liens correspondants.',
			'import': 'Importer',
			'error-api': 'Erreur de communication avec l\'API !',
			'error-wiki': 'Le wiki sélectionné est inconnu !',
			'error-page': 'La page n\'existe pas !',
			'error-pageNotFound': 'Aucun lien n\'a été trouvé pour la wiki sélectionné !',
			'error-save': 'Save error: ',
			'success-links': 'Liens importés !',
			'success-labels': 'Libellés importés !',
			'nolinkstoupdate': 'Tous les liens ont déjà été importés, Le script ne change rien !'
		},
		'gl': {
			'box-title': 'Importar os interwikis',
			'box-warning': 'Atención: Esta ferramenta importa as ligazóns interlingüísticas automaticamnte desde un wiki sen comprobar os posibles conflitos. Terás que verificar todos os interwikis da páxina do wiki elixido antes de traelos ao Wikidata!',
			'box-lang': 'desde: ',
			'box-updateLabels': 'Completar automaticamente as etiquetas baleiras co nome da ligazón relacionada.',
			'import': 'Importar',
			'error-api': 'Erro de comunicación coa API!',
			'error-wiki': 'Descoñécese o wiki seleccionado!',
			'error-page': 'A páxina non existe!',
			'error-pageNotFound': 'Non se atopou ningunha ligazón no wiki seleccionado!',
			'error-save': 'Erro ao gardar: ',
			'success-links': 'Importáronse as ligazóns!',
			'success-labels': 'Importáronse as etiquetas!',
			'nolinkstoupdate': 'Xa están importadas todas as ligazóns. Non hai nada que facer!'
		},
		'gu': {
			'box-title': 'આંતરવિકિ લિંક્સ આયાત કરો',
			'box-warning': 'સાવધાન: આ સ્ક્રિપ્ટ ત્રુટિની તપાસ કર્યા વગર તેની જાતે આંતરવિકિ લિંક્સ આયાત કરે છે. તમે આ લિંક્સ આયાત કરો તે પહેલા તમારે જાતે દરેક લિંકની તપાસ જાતે કરવાની રહેશે!',
			'box-lang': 'આ ભાષાની વિકિ માંથી: ',
			'box-updateLabels': 'ખૂટતા લેબલને લિંક સાથે સંકળાયેલ નામથી જાતે ઉમેરો.',
			'import': 'આયાત કરો',
			'error-api': 'એ.પી.આઈ સાથે જોડાણમાં ત્રુટિ!',
			'error-wiki': 'પસંદ કરેલ વિકિ અજ્ઞાત છે!',
			'error-page': 'આ પાનું અસ્તિત્વમાં નથી!',
			'error-pageNotFound': 'પસંદ કરેલ વિકિ માટે કોઈ લિંક મળી નથી!',
			'error-save': 'સાચવવામાં : ત્રુટિ',
			'success': 'લિંક્સ આયાત થઈ!',
			'nolinkstoupdate': 'બધી લિંક્સ પહેલાથી આયાત થઈ ચુકી છે. કશું કરવાની જરુર નથી!'
			},
		'he': {
			'box-title': 'ייבוא קישורי בינוויקי',
			'box-warning': 'אזהרה: התסריט הזה מייבא באופן אוטומטי קישורים לשוניים מוויקי אחד ללא בדיקה של התנגשויות. חובתך לבדוק את כל הקישורים בדף לפני העלאתם!',
			'box-lang': 'מ: ',
			'box-updateLabels': 'השלמה אוטומטית של תוויות עם שם הקישור המיוחס.',
			'import': 'ייבוא',
			'error-api': 'שגיאה בתקשורת עם API!',
			'error-wiki': 'הוויקי שנבחר אינו ידוע!',
			'error-page': 'הדף אינו קיים!',
			'error-pageNotFound': 'לא נמצא קישור בוויקי שנבחר!',
			'error-save': 'שגיאה בשמירה: ',
			'success-links': 'הקישורים יובאו!',
			'success-labels': 'התוויות יובאו!',
			'nolinkstoupdate': 'כל הקישורים כבר יובאו. אין מה לעשות עוד!'
		},
		'hu': {
			'box-title': 'Interwikik importálása',
			'box-warning': 'Figyelem: Ez az eszköz automatikusan importálja az interwiki-linkeket egy wikiből, anélkül, hogy ellenőrizné az esetleges ütközéseket. Ellenőrizd a kiválasztott wikiben található oldalon levő összes interwikit, mielőtt áttöltöd őket a Wikidatába!',
			'box-lang': 'honnan: ',
			'box-updateLabels': 'Az üres címkék automatikus kitöltése a kapcsolódó link nevével.',
			'import': 'Importálás',
			'error-api': 'Kommunikációs hiba az API-val!',
			'error-wiki': 'Ismeretlen wiki!',
			'error-page': 'A lap nem létezik!',
			'error-pageNotFound': 'Nem található link a kiválasztott wikihez!',
			'error-save': 'Mentési hiba: ',
			'success-links': 'Linkek importálva!',
			'success-labels': 'Címkék importálva!',
			'nolinkstoupdate': 'Az összes link be van importálva, nincs további teendő!'
		},
		'ilo': {
			'box-title': 'Agala kadagiti interwiki',
			'box-warning': 'Ballaag: Daytoy nga eskrito ket automatiko nga agala kadagiti silpo ti pagsasao manipud kadagiti wiki ngem saan a mangkita kadagiti silpo a kasinnuppiat. Nasken a kitaem amin dagiti interwiki idiay panid ti wiki a pinilim sakbay nga ikargam ditoy Wikidata!',
			'box-lang': 'manipud idiay: ',
			'box-updateLabels': 'Automatiko nga agileppas kadagiti awan linaonna nga etiketa manipud ti nagan ti mainanig a silpo.',
			'import': 'Agala',
			'error-api': 'Komunikasion a biddut iti API!',
			'error-wiki': 'Ti napili a wiki ket di ammo!',
			'error-page': 'Awan ti panid!',
			'error-pageNotFound': 'Awan ti silpo a nabirukan para iti napili a wiki!',
			'error-save': 'Biddut ti panagidulin: ',
			'success-links': 'Naalan dagiti silpo!',
			'success-labels': 'Naalan dagiti etiketa!',
			'nolinkstoupdate': 'Amin a silpo ket naalan. Awanen ti maaramid!'
		},
		'it': {
			'box-title': 'Importa interlink',
			'box-warning': 'Attenzione! Questo script importa automaticamente gli interwiki da una wiki senza controllare possibili conflitti di edizione. Verifica che tutti gli interwiki della pagina scelta siano presenti su Wikidata!',
			'box-lang': 'da: ',
			'box-updateLabels': 'Auto-completa le etichette vuote con il nome del relativo link.',
			'import': 'Importa',
			'error-api': 'Errore di comunicazione con le API!',
			'error-wiki': 'La wiki selezionata è inesistente!',
			'error-page': 'La pagina selezionata non esiste!',
			'error-pageNotFound': 'Non è stato trovato alcun collegamento verso la wiki selezionata!',
			'error-save': 'Errore durante il salvataggio: ',
			'success-links': 'Collegamenti importati!',
			'success-labels': 'Etichette importate!',
			'nolinkstoupdate': 'Tutti i link sono già stati importati. Nessuna modifica da fare!'
		},
                'ja': {
                        'box-title': '言語間リンクを取り込む',
                        'box-warning': '警告:このスクリプトは衝突の有無を調べずにひとつのウィキから言語間リンクを取り込みます。ウィキデータに投稿する前に、選択したウィキにある言語間リンクに問題がないかチェックしてください。',
                        'box-lang': '取り込み元:',
                        'box-updateLabels': '空のラベルを関連するリンクの名前で補完する。',
                        'import': '取り込む',
                        'error-api': 'APIとの通信でエラーが発生しました。',
                        'error-wiki': '選択されたウィキが見つかりません。',
                        'error-page': 'ページが存在しません。',
                        'error-pageNotFound': '選択されたウィキにリンクがありません。',
                        'error-save': '保存のエラー:',
                        'success-links': 'リンクが取り込まれました。',
                        'success-labels': 'ラベルが取り込まれました。',
                        'nolinkstoupdate': 'リンクはすべて取り込み済みです。これ以上できることはありません。'
                },
		'ko': {
			'box-title': '인터위키 가져오기',
			'box-warning': '경고: 이 스크립트는 인터위키 충돌 확인 없이 특정 위키에서 자동적으로 인터위키를 가져옵니다. 귀하는 위키데이터에 인터위키를 가져오기 전에, 선택한 위키의 문서 페이지에서 모든 인터위키가 올바른지 확인하셔야 합니다.',
			'box-lang': '가져올 위키: ',
			'box-updateLabels': '관련된 링크의 명칭과 함께 빈 레이블을 자동 완성',
			'import': '가져오기',
			'error-api': 'API와의 통신에 실패하였습니다!',
			'error-wiki': '선택된 위키에 오류가 있습니다!',
			'error-page': '해당 문서가 존재하지 않습니다.',
			'error-pageNotFound': '선택된 위키에서 링크를 찾을 수 없었습니다!',
			'error-save': '저장 오류: ',
			'success-links': '인터위키를 가져왔습니다!',
			'success-labels': '레이블을 가져왔습니다!',
			'nolinkstoupdate': '모든 인터위키가 이미 존재합니다. 아무 것도 작업되지 않았습니다.'
		},
                'mk': {
                        'box-title': 'Увези меѓувики',
                        'box-warning': 'Предупредување: Оваа скрипта автоматски увезува јазични врски од едно вики без да проверува можни косења. Вие сте одговорни да ги проверите сите меѓувики на страницата на саканото вики пред да ги подигнете на Википодатоците!',
                        'box-lang': 'од: ',
                        'box-updateLabels': 'Автодовршувај празни етикети со името на поврзаната врска.',
                        'import': 'Увези',
                        'error-api': 'Грешка во општењето со API-прилогот!',
                        'error-wiki': 'Избраното вики е непознато!',
                        'error-page': 'Оваа страница не постои!',
                        'error-pageNotFound': 'Не пронајдов врски на избраното вики!',
                        'error-save': 'Грешка при зачувување: ',
                        'success-links': 'Врските се увезени!',
                        'success-labels': 'Етикетите се увезени!',
                        'nolinkstoupdate': 'Сите врски се веќе увезени. Немам што повеќе да направам!'
		},
		'nb': {
			'box-title': 'Importer interwiki',
			'box-warning': 'Advarsel: Dette skriptet importerer språklenker fra én wiki automatisk, uten å sjekke konflikter. Du må sjekke alle interwiki-lenkene på siden til den valgte wikien før du laster dem opp til Wikidata !',
			'box-lang': 'fra: ',
			'import': 'Importer',
			'error-api': 'Feil ved kommunikasjon med API !',
			'error-wiki': 'Den valgte wikien er ukjent !',
			'error-page': 'Siden finnes ikke !',
			'error-pageNotFound': 'Ingen lenke funnet for den valgte wikien !',
			'error-save': 'Lagringsfeil: ',
			'success-links': 'Lenker importert !',
			'nolinkstoupdate': 'Alle lenkene er allerede importert. Ingenting å gjøre !'
		},
		'nl': {
			'box-title': 'Importeer interwikis',
			'box-warning': 'Waarschuwing: dit script importeert automatisch taalverwijzingen zonder hiervoor op de eventuele conflicten te letten. Het is verstandig ze eerst te controleren voordat je ze automatisch laat toevoegen op Wikidata',
			'box-lang': 'van: ',
			'box-updateLabels': 'Automatisch lege labels opvullen met de naam van siteverwijzingen.',
			'import': 'Importeren',
			'error-api': 'Kan niet met de API verbinding maken !',
			'error-wiki': 'De geselecteerde wiki is niet bekend !',
			'error-page': 'De pagina bestaat niet !',
			'error-pageNotFound': 'Geen link gevonden voor de geselecteerde wiki !',
			'error-save': 'Fout tijdens opslaan: ',
			'success-links': 'Links geïmporteerd !',
			'nolinkstoupdate': 'Alle links zijn al geïmporteerd. Er niks om uit te voeren !'
		},
		'pl': {
			'box-title': 'Importuj interwiki',
			'box-warning': 'Uwaga: Ten skrypt importuje automatycznie łącza językowe z jednej wiki bez sprawdzania konfliktów. Musisz sprawdzić wszystkie interwiki na stronie wybranej wiki przed wgraniem ich do Wikidata!',
			'box-lang': 'z: ',
			'box-updateLabels': 'Autouzupełnianie pustych etykiet nazwą powiązanego linku.',
			'import': 'Importuj',
			'error-api': 'Problem w komunikacji z API!',
			'error-wiki': 'Wybrana wiki jest nieznana!',
			'error-page': 'Strona nie istnieje!',
			'error-pageNotFound': 'Nie znaleziono linku dla wybranej wiki!',
			'error-save': 'Błąd zapisu: ',
			'success-links': 'Linki zaimportowane!',
			'success-labels': 'Etykiety zaimportowane!',
			'nolinkstoupdate': 'Wszystkie linki są już zaimportowane. Nie ma nic do zrobienia!'
		},
		'pt': {
			'box-title': 'Importar interwikis',
			'box-warning': 'Aviso: Este script importa automaticamente os links para outros idiomas a partir de uma wiki sem conferir se existem conflitos. Você precisa verificar todos os links na página da wiki escolhida antes de importá-los para o Wikidata!',
			'box-lang': 'de: ',
			'import': 'Importar',
			'error-api': 'Erro de comunicação com a API !',
			'error-wiki': 'A wiki escolhida é desconhecida!',
			'error-page': 'A página não existe!',
			'error-pageNotFound': 'Nenhum link foi encontrado na wiki escolhida!',
			'error-save': 'Erro ao salvar: ',
			'success-links': 'Os links foram importados!',
			'nolinkstoupdate': 'Todos os links já foram importados. Nada a ser feito!'
		},
		'ru': {
			'box-title': 'Импорт интервики ',
			'box-warning': 'Внимание: этот скрипт импортирует интервики-ссылки без проверки на конфликты. Вам необходимо самостоятельно проверить все интервики-ссылки и убрать ссылающиеся на неправильные статьи!',
			'box-lang': 'откуда : ',
			'import': 'Импорт',
			'error-api': 'Проблема с API!',
			'error-wiki': 'Выбранный раздел Википедии',
			'error-page': 'Страница не существует!',
			'error-pageNotFound': 'Нет интервик в указанном разделе',
			'error-save': 'Ошибка сохранения: ',
			'success-links': 'Интервики импортированы.',
			'nolinkstoupdate': 'Все ссылки уже импортированы ранее.'
		},
                'sv': {
                        'box-title': 'Importera interwiki',
                        'box-warning': 'Varning: Detta överför automatiskt språklänkar från ett projekt utan att kontrollera om det föreligger några iw-konflikter. Du måste kontrollera alla interwikilänkar på den valda sidan innan du laddar upp den på Wikidata.',
                        'box-lang': 'från: ',
                        'box-updateLabels': 'Komplettera automatiskt tomma labels med innehållet i den relaterade länken.',
                        'import': 'Importera',
                        'error-api': 'Kommunikationsproblem med API!',
                        'error-wiki': 'Det valda projektet är okänt!',
                        'error-page': 'sidan existerar inte!',
                        'error-pageNotFound': 'Ingen sida hittades på det valda projektet!',
                        'error-save': 'Save error: ',
                        'success-links': 'Länkar importerade!',
                        'success-labels': 'Labels importerade!',
                        'nolinkstoupdate': 'Alla länkar är redan importerade, finns inget att komplettera!'
                },
		'zh': {
			'box-title': '导入跨语言链接',
			'box-warning': '警告:此程序将在未检查跨语言链接冲突的情况下导入。你应在导入前检查页面中所有跨语言链接!',
			'box-lang': '取自:',
			'box-updateLabels': '自动以跨语言链接完成尚为空的标签。',
			'import': '导入',
			'error-api': '使用API出现错误!',
			'error-wiki': '选取了未知Wiki!',
			'error-page': '该页并不存在!',
			'error-pageNotFound': '该页没有跨语言链接!',
			'error-save': '储存错误:',
			'success-links': '跨语言链接已导入!',
			'success-labels': '标签已导入!',
			'nolinkstoupdate': '所有链接已导入!'
		},
		'zh-hans': {
			'box-title': '导入跨语言链接',
			'box-warning': '警告:此程序将在未检查跨语言链接冲突的情况下导入。你应在导入前检查页面中所有跨语言链接!',
			'box-lang': '取自:',
			'box-updateLabels': '自动以跨语言链接完成尚为空的标签。',
			'import': '导入',
			'error-api': '使用API出现错误!',
			'error-wiki': '选取了未知Wiki!',
			'error-page': '该页并不存在!',
			'error-pageNotFound': '该页没有跨语言链接!',
			'error-save': '储存错误:',
			'success-links': '跨语言链接已导入!',
			'success-labels': '标签已导入!',
			'nolinkstoupdate': '所有链接已导入!'
		},
		'zh-hant': {
			'box-title': '導入跨語言連結',
			'box-warning': '警告:此程式將於未檢查跨語言連結衝突的情況下導入。你應於導入前檢查頁面中所有跨語言連結!',
			'box-lang': '取自:',
			'box-updateLabels': '自動以跨語言連結完成尚為空的標籤。',
			'import': '導入',
			'error-api': '使用API出現錯誤!',
			'error-wiki': '選取了未知Wiki!',
			'error-page': '該頁並不存在!',
			'error-pageNotFound': '該頁沒有跨語言連結!',
			'error-save': '儲存錯誤:',
			'success-links': '跨語言連結已導入!',
			'success-labels': '標籤已導入!',
			'nolinkstoupdate': '所有連結已導入!'
		}
	};
	i18nData.no = i18nData.nb;

	var parts = mw.user.options.get( 'language' ).split("-");
	if( parts[1]=='hans' || parts[1]=='cn' || parts[1]=='sg' || parts[1]=='my' ) {
		var lang = 'zh-hans';
	} else if ( parts[1]=='hant' || parts[1]=='hk' || parts[1]=='tw' || parts[1]=='mo' ) {
		var lang = 'zh-hant';
	} else if ( i18nData[parts[0]] ) {
		var lang = parts[0];
	} else {
		var lang = 'en';
	}

	var notification = mw.util.getParamValue( 'slurpnotif' );
	if ( notification !== null ) {
		var notifications = notification.split('|');
		for( var i in notifications ) {
			mw.notify( i18n( notifications[i] ) );
		}
	}

	var itemId = mw.config.get( 'wbEntityId' );
	if( !itemId ) {
		return;
	}

	/**
	 * Return the localized version of a message
	 */
	function i18n( key ) {
		if( i18nData[ lang ][ key ] ) {
			return i18nData[ lang ][ key ];
		} else {
			return i18nData[ 'en' ][ key ];
		}
	}

	/**
	 * Return the language code from the ID of the Wiki
	 */
	function getLanguageCodeFromWikiId( wiki ) {
		var splited = wiki.match( /^(.*)wiki$/i );
		if( !splited[1] ) {
			return '';
		} else {
			return splited[1].replace(/_/g, '-');
		}
	}

	/**
	 * Create the dialog and add a link in toolBox
	 */
	function init() {
		mw.loader.using( ['jquery.ui'], function() {
			var formFind = '<div id="slurpInterwiki" title="' + i18n( 'box-title' ) + '"><form>';
			formFind += '<p><label for="slurpInterwiki-lang">' + i18n( 'box-lang' ) + '</label><select name="slurpInterwiki-lang" id="slurpInterwiki-lang"></select></p>';
			formFind += '<p><input type="checkbox" name="slurpInterwiki-updateLabels" id="slurpInterwiki-updateLabels" /> <label for="slurpInterwiki-updateLabels">' + i18n( 'box-updateLabels' ) + '</label></p>';
			formFind += '<p>' + i18n( 'box-warning' ) + '</p>';
			formFind += '<p class="error" id="slurpInterwiki-error"></p>';
			formFind += '</form></div>';
			var messageFind = $( formFind ).appendTo( '#content' );
			messageFind.dialog( {
				autoOpen: false,
				modal: true,
				width: 500,
				buttons: [ {
					id: 'slurpInterwiki-button-import',
					text: i18n( 'import' ),
					click: function() {
						work();
					}
				} ]
			} );

			var portletLink = mw.util.addPortletLink( 'p-tb', '#', i18n( 'box-title' ), 't-slurpInterwiki', i18n( 'box-title' ) );
			$(portletLink).click( show );
		} );
	}

	/**
	 * Show the dialog
	 */
	function show() {
		getItemLinks( function( links ) {
			formFind = $( '#slurpInterwiki-lang' );
			formFind.empty();
			var languagesLabel = mw.config.get('wgULSLanguages') || {};
			for( var i in links ) {
				var languageCode = getLanguageCodeFromWikiId( links[i].site );
				var label = links[i].site;
				if( languageCode !== '' ) {
					label = languageCode;
					if( languagesLabel[languageCode] ) {
						label += ' (' + languagesLabel[languageCode] + ')';
					}
				}
				formFind.append( '<option value="' + links[i].site + '">' + label + '</option>' );
			}
			$( '#slurpInterwiki-error' ).html( '' );
			$( 'div#slurpInterwiki' ).dialog( 'open' );
		} );
	}

	/**
	 * Called on error
	 */
	function onError() {
		$.removeSpinner( 'slurpInterwiki' );
		$( '#slurpInterwiki-button-import' ).button( 'option', 'disabled', false );
	}

	/**
	 * Called on API error
	 */
	function onApiError( jqXHR, textStatus, errorThrown ) {
		alert( i18n( 'error-api' ) );
		onError();
	}

	/**
	 * Update interLanguages links from the wiki selected in the box. Works only for Wikipedias.
	 */
	function work() {
		mw.loader.using( ['jquery.spinner'], function() {
			$.createSpinner( {
				size: 'large',
				type: 'block',
				id: 'slurpInterwiki'
			} ).appendTo( 'div#slurpInterwiki' );
			$( '#slurpInterwiki-button-import' ).button( 'option', 'disabled', true );

			getItem( function( item ) {
				if( item.sitelinks ) {
					links = item.sitelinks;
				} else {
					links = {};
				}

				var wiki = $( '#slurpInterwiki-lang' ).val();
				if( !links[wiki] ) {
					alert( i18n( 'error-pageNotFound' ) );
					onError();
					return;
				}
				var page = links[wiki].title;
				getLanguageLinks( wiki, page, function( interlangLinks ) {
					getItem( function( item ) {
						var itemValue = {};
						var changed = [];

						var itemLinks = {};
						if( item.sitelinks ) {
							itemLinks = item.sitelinks;
						}
						var linkChanged = false;
						for( var i in interlangLinks ) {
							var regex = /^(.*)old$/i;
							if( regex.test( interlangLinks[i].lang ) && interlangLinks[i].lang !== 'be-x-old' ) {
								mw.log( 'Refused wiki: ' + interlangLinks[i].lang );
							} else {
								var site = interlangLinks[i].lang.replace(/-/g, '_') + 'wiki';
								if( !itemLinks[site] && interlangLinks[i]['*'].indexOf("#") === -1) {
									itemLinks[site] = {
										'site': site,
										'title': interlangLinks[i]['*']
									};
									linkChanged = true;
								}
							}
						}
						if( linkChanged ) {
							itemValue.sitelinks = itemLinks;
							changed.push( 'sitelinks' );
						}

						//Update labels
						if( $( '#slurpInterwiki-updateLabels' ).attr( 'checked' ) ) {
							var labels = {};
							if( item.labels ) {
								labels = item.labels;
							}
							var labelChanged = false;
							for( var site in itemLinks ) {
								var langs = [getLanguageCodeFromWikiId( itemLinks[site].site )];
								if( langs[0] == 'simple' ) {
									continue;
								}
								switch( langs[0] ) {
									case 'en':
										langs = ['en', 'en-ca', 'en-gb'];
										break;
									/*case 'zh':
										langs = ['zh', 'zh-cn', 'zh-tw', 'zh-sg', 'zh-mo', 'zh-hans', 'zh-hant', 'zh-hk', 'zh-my'];
										break;*/
									case 'zh-yue':
										langs = ['zh-yue', 'yue'];
										break;
									case 'pt':
										langs = ['pt', 'pt-br'];
										break;
									case 'de':
										langs = ['de', 'de-ch'];
										break;
								}
								for( var j in langs ) {
									var language = langs[j];
									if( !labels[language] ) {
										var value = itemLinks[site].title.replace( /\(.*\)/g, '' );
										if( language === 'es' || language === 'pt' || language === 'pt-br' ) {
											value = value.replace( /^Anexo:/, '' );
										}
										if( language === 'cs' ) {
											value = value.replace( /^Příloha:/, '' );
										}
										if( language === 'de-ch' ) {
											value = value.replace( /ß/g, 'ss' );
										}
										labels[language] = {
											'language': language,
											'value': value
										};
										labelChanged = true;
									}
								}
							}
							if( labelChanged ) {
								itemValue.labels = labels;
								changed.push( 'labels' );
							}
						}

						//Push changes
						if( changed.length != 0 ) {
							//Get list of notification and comment
							var notif = [];
							var comment = '';
							if( $.inArray( 'sitelinks', changed ) !== -1 ) {
								notif.push( 'success-links' );
								comment += 'Update of interwikis from ' + wiki + '.'
							}
							if( $.inArray( 'labels', changed ) !== -1 ) {
								notif.push( 'success-labels' );
								comment += ' Update of labels.'
							}

							setItem( itemValue, changed, function() {
								location.href = mw.util.getUrl( mw.config.get( 'wgPageName' ) ) + '?slurpnotif=' + notif.join('|');
							}, comment );
						} else {
							mw.notify( i18n( 'nolinkstoupdate' ) );
							$( 'div#slurpInterwiki' ).dialog( 'close' );
							onError();
						}
					} );
				} );
			} );
		} );
	}

	/**
	 * Update the item
	 * @param success function called on success
	 */
	function updateItem( links ) {
	}

	/**
	 * Return the item
	 * @param success function called on success
	 */
	function getItem( success ) {
		$.ajax( {
			url: mw.util.wikiScript( 'api' ),
			data: {
				'format': 'json',
				'action': 'wbgetentities',
				'ids': itemId
			}
		} )
		.done(function( data ) {
			if( data.success && data.entities[itemId] ) {
				success( data.entities[itemId] );
			} else {
				onApiError();
			}
		} )
		.fail(onApiError);
	}

	/**
	 * Return the existings links of a wiki
	 * @param success function called on success
	 */
	function getItemLinks( success ) {
		getItem( function( item ) {
			if( item.sitelinks ) {
				success( item.sitelinks );
			} else {
				success( {} );
			}
		} );
	}

	/**
	 * Return the existings links in a page of a wiki
	 * @param wiki string id of the wiki. Warning: Currently only Wikipedias are supported.
	 * @param page string name of the page
	 * @param success function called on success
	 */
	function getLanguageLinks( wiki, page, success ) {
		var langCode = getLanguageCodeFromWikiId( wiki );
		if( !langCode === '' ) {
			alert( i18n( 'error-wiki' ) );
			onError();
			return [];
		}
		$.ajax( {
			url: '//' + langCode + '.wikipedia.org/w/api.php',
			data: {
				'format': 'json',
				'action': 'query',
				'titles': page,
				'prop': 'langlinks',
				'lllimit': 400
			},
			dataType: 'jsonp'
		} )
		.done(function( data ) {
			if( data.query.pages ) {
				for( var id in data.query.pages ) {
					if( id == -1 ) {
						alert( i18n( 'error-page' ) );
						onError();
					} else {
						if( data.query.pages[id].langlinks ) {
							success( data.query.pages[id].langlinks );
						} else {
							success( [] );
						}
					}
				}
			} else {
				onApiError();
			}
		} )
		.fail(onApiError);
	}

	/**
	 * Set the item links
	 * @param item array the item
	 * @param include array of type of changed information (labels, aliases....)
	 * @param success function called on success
	 * @param summary string
	 */
	function setItem( item, include, success, summary ) {
		var exclude = ['pageid', 'ns', 'title', 'lastrevid', 'touched', 'aliases', 'labels', 'descriptions', 'sitelinks'];
		for( var i in include ) {
			exclude.splice( $.inArray(include[i], exclude), 1 );
		}
		$.ajax( {
			type: 'POST',
			url: mw.util.wikiScript( 'api' ),
			data: {
				'format': 'json',
				'action': 'wbeditentity',
				'id': itemId,
				'type': 'item',
				'token': mw.user.tokens.get( 'csrfToken' ),
				'data': $.toJSON( item ),
				'summary': summary,
				'exclude': exclude.join('|')
			}
		} )
		.done(function( data ) {
			if( data.error && data.error.info ) {
				var errorInfo = data.error.info;
				errorInfo = errorInfo.replace( /\[\[([^\]]*)\]\]/g, '<a href="' + mw.config.get( 'wgServer' ) + '/wiki/$1">$1</a>' );
				$( '#slurpInterwiki-error' ).html( i18n( 'error-save' ) + errorInfo );
				onError();
			} else {
				success(); //TODO Manage possibles errors
			}
		} )
		.fail(onApiError);
	}

	$( document ).ready( init );
} ( mediaWiki, jQuery ) );