User:Fomafix/MediaWiki:Gadget-autoEdit.js

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/**********************************************************************************
***********************************************************************************
**                                 _        ______    _ _ _                      **
**                                | |      |  ____|  | (_) |                     **
**                      __ _ _   _| |_ ___ | |__   __| |_| |_                    **
**                     / _` | | | | __/ _ \|  __| / _` | | __|                   **
**                    | (_| | |_| | || (_) | |___| (_| | | |_                    **
**                     \__,_|\__,_|\__\___/|______\__,_|_|\__|  v1.1             **
**                                                                               **
** ----------------------------------------------------------------------------- **
**  How to use :                                                                 **
**   Add to your common.js [[Special:MyPage/common.js]],                         **
**   importScript( 'User:Jitrixis/autoEdit.js' );                                **
**                                                                               **
**  Links :                                                                      **
**    [[User:Jitrixis/autoEdit.js]]                                              **
**    [[User talk:Jitrixis/autoEdit.js]]                                         **
**    [[User talk:Jitrixis/autoEdit.js/lists]]                                   **
**    [[Wikidata:Tools#User:Jitrixis.2FautoEdit.js]]                             **
**                                                                               **
**  In collaboration with [[User:Zolo]]                                          **
**                                                                               **
**  Read me :                                                                    **
**   This script allows you to add labels automatically thanks to the interwiki  **
**   links and descriptions thanks to a list that you can customize.             **
**                                                                               **
**  Tips and Tricks :                                                            **
**   You can click on the [X]labels button to automatically check the labels     **
**   checkbox and update labels.                                                 **
**                                                                               **
***********************************************************************************
**********************************************************************************/

/////////////////////////////////////////////////////////////////////////
//////////////THE TRANSLATION VARIABLE IS UNDER THE LISTE ^^/////////////
/////////////////////////////////////////////////////////////////////////
/////////////////////////LISTES VARIABLE GLOBALE/////////////////////////
var desclist = {
		'french departement': {
			'af': 'Franse departement',
			'an': 'departemento frances',
			'ar': 'إقليم فرنسي',
			'ast': 'departamentu de Francia',
			'bar': 'Französisches Département',
			'bg': 'Департамент на Франция',
			'bn': 'ফরাসি বিভাগ',
			'ca': 'departament de França',
			'co': 'dipartimentu di a Francia',
			'cs': 'francouzský departement',
			'cy': 'département Ffrainc',
			'da': 'fransk departement',
			'de': 'französisches Département',
			'en': 'French department',
			'eo': 'Franca departemento',
			'es': 'departamento francés',
			'et': 'Prantsusmaa departemang',
			'fa': 'تقسیمات فرانسه',
			'fi': 'Ranskan departementti',
			'fr': 'département français',
			'frp': 'dèpartement francês',
			'fy': 'Frânsk departemint',
			'gl': 'departamento francés',
			'gsw': 'Département z Frànkrich',
			'gu': 'ફ્રેંચ વિભાગ',
			'hu': 'megye Franciaországban',
			'id': 'departemen di Perancis',
			'io': 'departmento di Francia',
			'is': 'sýsla í Frakklandi',
			'it': 'dipartimento francese',
			'ja': 'フランスの県',
			'jv': 'Departemen ing Prancis',
			'kg': 'kizunga ya Fwalansa',
			'ko': '프랑스의 주',
			'la': 'praefectura Franciae',
			'lad': 'departamento franses',
			'lb': 'franséischt Departement',
			'lmo': 'dipartiment fransés',
			'lt': 'Prancūzijos departamentas',
			'lv': 'Francijas departaments',
			'min': 'departemen di Parancih',
			'mk': 'департман во Франција',
			'ms': 'jabatan di Perancis',
			'nan': 'Hoat-kok ê chi̍t khóan',
			'nb': 'departement i Frankrike',
			'nds': 'Département von Frankriek',
			'nl': 'Frans departement',
			'nn': 'departement i Frankrike',
			'oc': 'departament francés',
			'pam': 'Departamentu ning France',
			'pl': 'francuski departament',
			'pt': 'departamento da França',
			'ro': 'departament Franței',
			'ru': 'департамент во Франции',
			'sco': 'French depairtment',
			'se': 'Frankriikka departemeantta',
			'sl': 'departement vo Francúzsku',
			'sv': 'franskt departement',
			'sw': 'département ya Ufaransa',
			'th': 'จังหวัดในประเทศฝรั่งเศส',
			'vec': 'dipartimento fransexe',
			'vi': 'tỉnh của Pháp',
			'vls': 'Frans departement',
			'vo': 'Ziläk in Fransän',
			'zea': 'Frans departement',
			'zh': '法国省份',
			'zh-hans': '法国省份',
			'zh-hant': '法國省份'
		},
		'date': {
			'af': 'datum',
			'aln': 'data',
			'an': 'calendata',
			'ang': 'dæȝ',
			'ar': 'التاريخ',
			'arz': 'تاريخ',
			'as': 'তাৰিখ',
			'ast': 'data',
			'az': 'tarix',
			'ba': 'көнө',
			'bar': 'Daatum',
			'bcc': 'تاریح',
			'be-tarask': 'дата',
			'bg': 'дата',
			'bn': 'তারিখ',
			'br': 'deiziad',
			'bs': 'datum',
			'ca': 'data',
			'ckb': 'ڕێکەوت',
			'cs': 'datum',
			'cy': 'dyddiad',
			'da': 'dato',
			'de': 'Datum',
			'diq': 'deme',
			'dsb': 'datum',
			'ee': 'ŋkeke',
			'el': 'ημερομηνία',
			'en': 'date',
			'eo': 'dato',
			'es': 'fecha',
			'et': 'kuupäev',
			'eu': 'data',
			'fa': 'تاریخ',
			'fi': 'päiväys',
			'fr': 'date',
			'frp': 'dâta',
			'fur': 'date',
			'fy': 'datum',
			'ga': 'dáta',
			'gl': 'data',
			'grc': 'Ἡμερομηνία',
			'gsw': 'datum',
			'gu': 'તારીખ',
			'he': 'תאריך יצירה',
			'hi': 'दिनांक',
			'hr': 'datum',
			'hsb': 'datum',
			'hu': 'dátum',
			'hy': 'թվական',
			'ia': 'data',
			'id': 'tanggal',
			'ig': 'aka',
			'ilo': 'petsa',
			'io': 'dato',
			'is': 'dagsetning',
			'it': 'data',
			'ja': '日付',
			'jv': 'tanggal',
			'ka': 'თარიღი',
			'km': 'កាលបរិច្ឆេទ',
			'kn': 'ದಿನಾಂಕ',
			'ko': '날짜',
			'koi': 'дата',
			'ksh': 'Et Dattum',
			'ku-latn': 'dîrok',
			'lb': 'datum',
			'li': 'datum',
			'lt': 'data',
			'lv': 'datums',
			'mg': 'daty',
			'min': 'tanggal',
			'mk': 'датум',
			'ml': 'തീയതി',
			'mr': 'दिनांक',
			'ms': 'tarikh',
			'mt': 'data',
			'myv': 'чы-ков',
			'nb': 'dato',
			'nds': 'Datum',
			'nds-nl': 'daotum',
			'ne': 'मिति',
			'nl': 'datum',
			'nn': 'dato',
			'oc': 'data',
			'or': 'ତାରିଖ',
			'os': 'датæ',
			'pdc': 'datum',
			'pl': 'data',
			'pms': 'data',
			'pnb': 'تریخ',
			'ps': 'نېټه',
			'pt': 'data',
			'pt-br': 'data',
			'qu': 'p\'unchaw',
			'ro': 'dată',
			'roa-tara': 'date',
			'ru': 'дата',
			'rue': 'датум',
			'sa': 'दिनाङ्क',
			'sah': 'күнэ-дьыла',
			'sc': 'data',
			'scn': 'data',
			'si': 'දිනය',
			'sk': 'dátum',
			'sl': 'datum',
			'sq': 'data',
			'sr': 'датум',
			'sr-ec': 'датум',
			'sr-el': 'datum',
			'stq': 'doatum',
			'sv': 'datum',
			'sw': 'tarehe',
			'szl': 'data',
			'ta': 'நாள்',
			'te': 'తేదీ',
			'tet': 'tempu',
			'tg': 'сана',
			'tg-latn': 'sana',
			'th': 'วันที่สร้างสรรค์',
			'tk': 'sene',
			'tl': 'petsa',
			'tr': 'üretim tarihi',
			'tt-cyrl': 'вакыт',
			'uk': 'час створення',
			'vec': 'data',
			'vep': 'dat',
			'vi': 'ngày tạo ra',
			'vo': 'dät',
			'yi': 'דאַטע',
			'yo': 'Ọjọ́ọdún',
			'yue': '日期',
			'zh-hans': '日期',
			'zh-hant': '日期'
		},
		'language': {
			'ace': 'bahsa',
			'af': 'taal',
			'an': 'idioma',
			'bjn': 'bahasa',
			'bn': 'ভাষা',
			'br': 'yezh',
			'bs': 'jezik',
			'ca': 'llengua',
			'co': 'lingua',
			'cs': 'jazyk',
			'da': 'sprog',
			'de': 'Sprache',
			'diq': 'lısan',
			'el': 'γλώσσα',
			'eml': 'langua',
			'en': 'language',
			'eo': 'lingvo',
			'es': 'idioma',
			'et': 'keel',
			'eu': 'hizkuntza',
			'ext': 'luenga',
			'fa': 'زبان',
			'fi': 'kieli',
			'fr': 'langue',
			'frp': 'lengoua',
			'fur': 'lenghe',
			'fy': 'taal',
			'ga': 'an',
			'gl': 'lingua',
			'gu': 'ભાષા',
			'he': 'שפה',
			'hu': 'nyelv',
			'id': 'bahasa',
			'io': 'linguo',
			'is': 'tungumál',
			'it': 'lingua',
			'ja': '言語',
			'jv': 'basa',
			'kg': 'ndinga',
			'ko': '언어',
			'la': 'lingua',
			'lt': 'kalba',
			'lv': 'valoda',
			'lzh': '語言',
			'mg': 'fiteny',
			'mk': 'јазик',
			'min': 'bahaso',
			'ms': 'bahasa',
			'nb': 'språk',
			'nds': 'Spraak',
			'nn': 'språk',
			'pcd': 'langue',
			'pl': 'język',
			'pt': 'língua',
			'ro': 'limba',
			'ru': 'язык',
			'su': 'basa',
			'ty': 'reo',
			'vi': 'tiếng',
			'wo': 'làkk',
			'zh': '语言',
			'zh-hans': '语言',
			'zh-hant': '語言'
		},
		'year': {
			'af': 'jaar',
			'an': 'anyo',
			'ar': 'سنة',
			'ast': 'añu',
			'bn': 'বছর',
			'bs': 'godina',
			'ca': 'any',
			'cs': 'rok',
			'da': 'år',
			'de': 'Jahr',
			'el': 'έτος',
			'en': 'year',
			'eo': 'jaro',
			'es': 'año',
			'et': 'Aasta',
			'eu': 'Urte',
			'fa': 'سال',
			'fi': 'vuosi',
			'fr': 'année',
			'fy': 'Jier',
			'gl': 'ano',
			'gsw': 'joor',
			'gu': 'વર્ષ',
			'he': 'שנה',
			'hr': 'Godina',
			'ht': 'Lane',
			'hu': 'Év',
			'ia': 'anno',
			'id': 'tahun',
			'ilo': 'Tawen',
			'is': 'ár',
			'it': 'anno',
			'ja': '年',
			'ka': 'წელი',
			'ko': '연도',
			'ku': 'Sal',
			'la': 'annus',
			'lt': 'Metai',
			'mhr': 'Идалык',
			'min': 'taun',
			'mk': 'година',
			'ms': 'Tahun',
			'nan': 'Nî',
			'nb': 'år',
			'nds': 'Johr',
			'nl': 'jaar',
			'nn': 'år',
			'pl': 'rok',
			'pt': 'ano',
			'ro': 'An',
			'ru': 'год',
			'sh': 'Godina',
			'sk': 'Rok',
			'sl': 'Leto',
			'sq': 'Viti',
			'sr': 'Година',
			'srn': 'Yari',
			'sv': 'år',
			'tr': 'yıl',
			'uk': 'Рік',
			'ur': 'سال',
			'vi': 'Năm',
			'war': 'Tuig',
			'yue': '年',
			'zh': '年份',
			'zh-hans': '年份',
			'zh-hant': '年份'
		},
		'Italian footballer': {
			'af': 'Italiaanse sokkerspeler',
			'an': 'futbolista italián',
			'ar': 'بالإيطالية لاعب كرة',
			'ast': 'xugador italianu de fútbol',
			'az': 'italyan futbolçusu',
			'be': 'італьянскі футбаліст',
			'bg': 'италиански футболист',
			'bn': 'ইতালীয় ফুটবলার',
			'br': 'melldroader en Italia',
			'bs': 'italijanski je nogometaš',
			'ca': 'futbolista italià',
			'cs': 'italský fotbalista',
			'cy': 'chwaraewr pêl-droed Eidalaidd',
			'da': 'fodboldspiller fra Italien',
			'de': 'italienischer Fußballspieler',
			'el': 'Ιταλός ποδοσφαιριστής',
			'eml': '\'n śugadór ad balòṅ itagliàn',
			'en': 'Italian footballer',
			'eo': 'itala futbalisto',
			'es': 'futbolista italiano',
			'et': 'Itaalia jalgpallikoondise ründaja',
			'eu': 'okatzen duen futbolari italiarra',
			'fa': 'فوتبالیست ایتالیایی',
			'fi': 'italialainen jalkapalloilija',
			'fo': 'italskur fótbóltsleikari',
			'fr': 'footballeur italien',
			'gl': 'futbolista italiano',
			'gu': 'ઇટાલિયન ફૂટબોલર',
			'he': 'שחקן כדורגל איטלקי',
			'hif': 'Italian ke football player',
			'hr': 'talijanski nogometaš',
			'hu': 'olasz labdarúgó',
			'id': 'pemain sepak bola Italia',
			'io': 'Italiana futbalisto',
			'is': 'ítalskur knattsyrnumaður',
			'it': 'calciatore italiano',
			'ja': 'イタリアのサッカー選手',
			'jv': 'sawijining pamain bal-balan Italia',
			'ka': 'იტალიელი ფეხბურთელი',
			'ko': '이탈리아의 축구 선수',
			'ku': 'futbolê yê îtalyanî',
			'la': 'pedilusor Italicus',
			'lb': 'italienesche Foussballspiller',
			'lt': 'italų futbolininkas',
			'lv': 'itāļu futbolists',
			'min': 'pamain sepak bola Italia',
			'mk': 'италијански фудбалер',
			'mn': 'Италийн хөлбөмбөгчин',
			'ms': 'pemain bola sepak Itali',
			'mt': 'plejer tal-futbol Taljan',
			'mwl': 'futebolista eitaliano',
			'nah': 'italiatlācatl futbolista',
			'nan': 'Italia ê kha-kiû',
			'nap': '\'nu jucatore \'e pallone \'taliano',
			'nb': 'italiensk fotballspiller',
			'nds': 'italieenschen Footballspeler',
			'nds-nl': 'Italiaansen voetbalspöller',
			'nl': 'Italiaans voetballer',
			'nn': 'italiensk fotballspelar',
			'oc': 'jogaire de fotbòl italian',
			'pap': 'futbolista italiano',
			'pl': 'włoski piłkarz',
			'pt': 'futebolista italiano',
			'qu': 'Italya hayt\'aqmi',
			'rm': 'giugader talian da ballape',
			'ro': 'jucător italian de fotbal',
			'ru': 'итальянский футболист',
			'sc': 'giocatori de fùbalu italianu',
			'scn': 'jucaturi di palluni talianu',
			'se': 'italiálaš spábbačiekči',
			'sgs': 'Italėjes futbolininks',
			'sh': 'fudbaler talijanski',
			'sk': 'taliansky futbalista',
			'sl': 'italijanski nogometaš',
			'sq': 'futbollistë italian',
			'sr': 'италијански фудбалер',
			'sv': 'italiensk fotbollsspelare',
			'szl': 'italski fusbalszpiler',
			'tg': 'Футболбозони Италия',
			'th': 'นักฟุตบอล ชาวอิตาเลียน',
			'tr': 'İtalya futbolcu',
			'uk': 'італійський футболіст',
			'uz': 'professional italiya futbolchisi',
			'vec': 'xugadore de bałòn itałian',
			'yue': '意大利足球員',
			'zh': '意大利足球运动员',
			'zh-hans': '意大利足球运动员',
			'zh-hant': '意大利足球運動員'
		}
};
/////////////////////////LISTES/////////////////////////

( function ( mw, wb, $ ) {

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

	importScript( 'User:' + mw.user.getName() + '/autoEditLists.js' );

	var api = new wb.RepoApi();

	/*
	** Localized message.
	*/
	var transData = {
		'en': {
			'box-title': 'Automatic addition',
			'box-cancel': 'Close',
			'box-send': 'Update',
			'sended': 'Sent',
			'labels': 'Labels',
			'descriptions': 'Descriptions',
			'parameters': 'Parameters',
			'list': 'Lists',
			'prefix': 'Strip the prefix',
			'none': 'None',
			'tooltip-autocheck': 'Update automatically labels',
			'tooltip-autoedit': 'Update automatically labels and descriptions',
			'legend-labels': 'Labels checkbox : Update automatically the label of all language thanks to the interwiki site links.',
			'legend-descriptions': 'Descriptions checkbox : Update automatically the description thanks to a list that you can custom ([$1 link]).',
			'error-api': 'API error: $1',
			// DO NOT TRANSLATE. ///// If your reading direction is left to right, /////
			// if not translate by ('floatRight': 'left','floatLeft': 'right') /////////
			'floatRight': 'right',
			'floatLeft': 'left'
			// DO NOT TRANSLATE. ///////////////////////////////////////////////////////
		},
		'be': {
			'box-title': 'Аўтаматычнае даданне',
			'box-cancel': 'Адмена',
			'box-send': 'Абнавіць',
			'sended': 'Адпраўлена',
			'labels': 'Меткі',
			'descriptions': 'Апісанні',
			'list': 'Спісы',
			'none': 'пуста',
			'legend-labels': 'Сцяжок «Меткі»: аўтаматычна абнавіць меткі для ўсіх моў на падставе інтэрвікі-спасылак.',
			'legend-descriptions': 'Сцяжок «Апісанні»: аўтаматычна абнавіць апісанні, засноўваючыся на спісе ніжэй. Можна стварыць уласны спіс ([$1 спасылка]).'
		},
		'bn': {
			'box-title': 'স্বয়ংক্রিয় সংযোজন',
			'box-cancel': 'বন্ধ',
			'box-send': 'হালনাগাদ',
			'sended': 'প্রেরিত',
			'labels': 'লেবেল',
			'descriptions': 'বিবরণ',
			'parameters': 'প্যারামিটার',
			'list': 'তালিকা',
			//'prefix': 'উপসর্গ রাখুন',
			'none': 'কিছুই না',
			'tooltip-autocheck': 'লেবেল স্বয়ংক্রিয়ভাবে হালনাগাদ',
			'legend-labels': 'লেবেল পরীক্ষা বক্স : স্বয়ংক্রিয়ভাবে সমস্ত ভাষার লেবেল হালনাগাদ হবে।',
			'legend-descriptions': 'বিবরণ পরীক্ষা বক্স : স্বয়ংক্রিয়ভাবে বিবরণ হালনাগাদ হবে যেখানে একটি তালিকা রয়েছে যেটি আপনি ([$1 লিঙ্ক]) স্বনির্ধারিত করতে পারেন।'
		},
		'ca': {
			'box-title': 'Afegit automàtic',
			'box-cancel': 'Tanca',
			'box-send': 'Posa al dia',
			'sended': 'Enviats',
			'labels': 'Etiquetes',
			'descriptions': 'Descripcions',
			'list': 'Llistes',
			'none': 'Cap',
			'tooltip-autocheck': 'Posa al dia automàticament les etiquetes',
			'legend-labels': 'L\'opció "etiquetes" : Afegeix automàticament l\'etiqueta a totes les pàgines de totes les llengües gràcies als enllaços interwiki.',
			'legend-descriptions': 'L\'opció "descripció" : Afegeix automàticament la descripció gràcies a una llista que podeu personalitzar ([$1 enllaç]).'
		},
		'cs': {
			'box-title': 'Automaticky přidat',
			'box-cancel': 'Zavřít',
			'box-send': 'Aktualizovat',
			'sended': 'Odesláno',
			'labels': 'Štítky',
			'descriptions': 'Popisy',
			'prefix': 'Odstranit prefix',
			'list': 'Seznamy',
			'none': 'Nic',
			'tooltip-autocheck': 'Automaticky aktualizovat štítky',
			'legend-labels': 'Možnosti štítků: Automaticky aktualizovat štítky všech jazyků podle odkazů na ně.',
			'legend-descriptions': 'Možnosti popisů: Automaticky aktualizovat popisy podle [$1 vlastního nastavení].'
		},
		'da': {
			'box-title': 'Automatisk tilføjelse',
			'box-cancel': 'Luk',
			'box-send': 'Opdatér',
			'sended': 'Sendt',
			'labels': 'Etiketter',
			'descriptions': 'Beskrivelser',
			'list': 'Lister',
			'none': 'Ingen',
			'legend-labels': 'Etiketter-afkrydsningsfeltet: Opdatér automatisk etiketter på alle sprog ved brug af interwiki sitelinks.',
			'legend-descriptions': 'Beskrivelser-afkrydsningsfeltet: Opdatér automatisk beskrivelser ved brug af en liste som du kan tilpasse ([$1 link]).'
		},
		'de': {
			'box-title': 'Automatisches Hinzufügen',
			'box-cancel': 'Schließen',
			'box-send': 'Update',
			'sended': 'Gesendet',
			'labels': 'Bezeichnungen',
			'descriptions': 'Beschreibungen',
			'parameters': 'Parameter',
			'list': 'Listen',
			'prefix': 'Präfix entfernen',
			'none': 'Nichts',
			'tooltip-autoedit': 'Bezeichnungen und Beschreibungen automatisch aktualisieren',
			'legend-labels': 'Bezeichnungen Checkbox: Bearbeite automatisch die Bezeichnungen von allen Sprachlinks der Interwiki-Seiten-Links.',
			'legend-descriptions': 'Beschreibungen Checkbox: Bearbeite automatisch die Beschreibungen nach einer Liste, die du bearbeiten kannst. ([$1 Link]).',
			'error-api': 'API-Fehler: $1'
		},
		'eo': {
			'box-title': 'Aŭtomata aldono',
			'box-cancel': 'Fermi',
			'box-send': 'Ĝisdatigi',
			'sended': 'Senditaj',
			'labels': 'Etikedoj',
			'descriptions': 'Priskriboj',
			'list': 'Listoj',
			'none': 'Neniu',
			'tooltip-autocheck': 'Aŭtomate ĝisdatigas la etikedojn',
			'legend-labels': 'La opcio "etikedoj" : Aŭtomate aldonas la etikedojn en ĉiuj lingvoj dank\'al la vikiaj interlingvaj ligiloj',
			'legend-descriptions': 'La opcio "priskribo" : Aŭtomate aldonas la priskribon dank\'al listo kiun vi povas mem ŝanĝi ([$1 ligilo]).'
		},
		'es': {
			'box-title': 'Adición automática',
			'box-cancel': 'Cerrar',
			'box-send': 'Actualizar',
			'sended': 'Enviado',
			'labels': 'Etiquetas',
			'descriptions': 'Descripciones',
			'parameters': 'Parámetros',
			//'prefix': 'Conservar el prefijo',
			'list': 'Listas',
			'none': 'Ninguna',
			'tooltip-autocheck': 'Actualizar las etiquetas automáticamente',
			'legend-labels': 'Casilla de etiquetas: Actualizar automáticamente la etiqueta de todos los idiomas a partir de los enlaces interwiki.',
			'legend-descriptions': 'Casilla de descripciones: Actualizar automáticamente la descripción de múltiples idiomas a partir de una lista que usted puede personalizar ([$1 enlace]).'
		},
		'fa': {
			'box-title': 'افزودن خودکار',
			'box-cancel': 'بستن',
			'box-send': 'به روز',
			'sended': 'فرستاده شد',
			'labels': 'برچسب‌ها',
			'descriptions': 'توضیحات',
			'parameters': 'پارامترها',
			'list': 'فهرست‌ها',
			//'prefix': 'پیشوندها را نگه‌دار',
			'none': 'هیچکدام',
			'tooltip-autocheck': 'به‌روزرسانی خودکار برچسب‌ها',
			'legend-labels': 'دکمهٔ برچسب‌ها : به‌روز رسانی برچسب پیوندهای زبان های دیگر بر پایه میان ویکی‌ها.',
			'legend-descriptions': 'دکمهٔ توضیحات : به‌روز رسانی توضیحات پیوندهای زبان های دیگر بر پایه فهرستی که می‌توانید آن را شخصی‌سازی نمائید. ([$1 پیوند]).',
			//right to left
			'floatRight': 'left',
			'floatLeft': 'right'
		},
		'fi': {
			'box-title': 'Automaattinen täydennys',
			'box-cancel': 'Sulje',
			'box-send': 'Päivitä',
			'sended': 'Lähetetty',
			'labels': 'Nimet',
			'descriptions': 'Kuvaukset',
			'list': 'Listat',
			'none': 'Ei mitään',
			'tooltip-autocheck': 'Päivitä nimet automaattisesti',
			'legend-labels': 'Nimet-valintaruutu : Päivittää automaattisesti kaikki nimet kaikilla kielillä kieltenvälisten linkkien mukaan.',
			'legend-descriptions': 'Kuvaukset-valintaruutu : Päivittää automaattisesti kaikkien kielten kuvaukset listojen mukaan, joita voi tehdä itse ([$1 linkki]).'
		},
		'fr': {
			'box-title': 'Ajout automatique',
			'box-cancel': 'Fermer',
			'box-send': 'Mettre à jour',
			'sended': 'Envoyés',
			'labels': 'Libellés',
			'descriptions': 'Descriptions',
			'parameters': 'Parameters',
			'list': 'Listes',
			//'prefix': 'Garder le préfix',
			'none': 'Aucune',
			'tooltip-autocheck': 'Met à jour automatiquement les libellés',
			'legend-labels': 'L\'option "libellés" : Ajoute automatiquement le libellé de toutes les langues grâce aux liens interwiki.',
			'legend-descriptions': 'L\'option "description" : Ajoute automatiquement la description grâce à une liste que vous pouvez personnaliser ([$1 lien]).'
		},
		'gl': {
			'box-title': 'Adición automática',
			'box-cancel': 'Pechar',
			'box-send': 'Actualizar',
			'sended': 'Enviado',
			'labels': 'Etiquetas',
			'descriptions': 'Descricións',
			'parameters': 'Parámetros',
			//'prefix': 'Conservar o prefixo',
			'list': 'Listas',
			'none': 'Ningunha',
			'tooltip-autocheck': 'Actualizar as etiquetas automaticamente',
			'legend-labels': 'Etiquetas: Actualizar automaticamente a etiqueta de tódalas linguas mediante as ligazóns interwiki.',
			'legend-descriptions': 'Descricións: Actualizar automaticamente as descricións mediante unha lista que vostede pode personalizar ([$1 ligazón]).'
		},
		'id': {
			'box-title': 'Tambahan otomatis',
			'box-cancel': 'Tutup',
			'box-send': 'Mutakhirkan',
			'sended': 'Kirim',
			'labels': 'Label',
			'descriptions': 'Ringkasan',
			'list': 'Daftar',
			'none': 'Tidak ada',
			'legend-labels': 'Label kotak-cek : Label diperbarui secara otomatis untuk seluruh bahasa hasil pranala halaman interwiki.',
			'legend-descriptions': 'Keterangan kotak-cek : Keterangan diperbarui secara otomatis hasil dari daftar yang boleh anda sesuaikan. ([$1 link]).'
		},
		'ilo': {
			'box-title': 'Automatiko a panaginayon',
			'box-cancel': 'Irekep',
			'box-send': 'Pabaruen',
			'sended': 'Naipatuluden',
			'labels': 'Dagiti etiketa',
			'descriptions': 'Dagiti deskripsion',
			'list': 'Dagiti listaan',
			'none': 'Awan',
			'legend-labels': 'Pagikur-itan a kahon kadagiti etiketa : Automatiko a pabaruenna ti etiketa kadagiti amin a pagsaso manipud kadagiti interwiki a silpo.',
			'legend-descriptions': 'Pagikur-itan a kahon kadagiti deskripsion : Automatiko a pabaruenna ti deskripsion manipud ti listaan a mapasayaat ([$1 silpo]).'
		},
		'it': {
			'box-title': 'Aggiunta automatica',
			'box-cancel': 'Chiudi',
			'box-send': 'Aggiorna',
			'sended': 'Inserito',
			'labels': 'Etichette',
			'descriptions': 'Descrizioni',
			'list': 'Elenchi',
			//'prefix': 'Mantieni il prefisso',
			'none': 'Nessuno',
			'tooltip-autocheck': 'Aggiorna automaticamente le etichette',
			'legend-labels': 'Casella etichette : Aggiorna automaticamente l\'etichetta di tutte le lingue grazie ai collegamenti interwiki.',
			'legend-descriptions': 'Casella descrizioni : Aggiorna automaticamente la descrizione grazie a un elenco che puoi personalizzare ([$1 link]).'
		},
		'ja': {
			'box-title': '自動追加',
			'box-cancel': '閉じる',
			'box-send': '更新',
			'sended': '送信完了',
			'labels': 'ラベル',
			'descriptions': '説明',
			'parameters': 'パラメータ',
			'list': 'リスト',
			//'prefix': '接頭辞を残す',
			'none': 'なし',
			'tooltip-autocheck': 'ラベルを自動的に更新する',
			'legend-labels': 'ラベルのチェックボックス:言語間リンクを利用してすべての言語のラベルを自動的に更新します。',
			'legend-descriptions': '説明のチェックボックス:個人個人が設定できるリストを利用して説明を自動的に更新します ([$1 link])。'
		},
		'ko': {
			'box-title': '자동 레이블 삽입기',
			'box-cancel': '닫기',
			'box-send': '갱신',
			'sended': '보내기',
			'labels': '레이블',
			'descriptions': '설명',
			'list': '목록',
			'none': '없음',
			'legend-labels': '레이블 선택상자 : 레이블이 없는 언어에 인터위키를 이용하여 자동적으로 레이블을 삽입합니다.',
			'legend-descriptions': '설명 선택상자 : 설명을 자동으로 업데이트 합니다.([$1 link]).'
		},
		'min': {
			'box-title': 'Manambah otomatis',
			'box-cancel': 'Tutuik',
			'box-send': 'Pabarui',
			'sended': 'Takirim',
			'labels': 'Label',
			'descriptions': 'Deskripsi',
			'list': 'Dafta',
			'none': 'kosong',
			'legend-labels': 'Label (centang): Pabarui label sacaro otomatis untuak kasado wiki.',
			'legend-descriptions': 'Deskripsi (centang): Pabarui deskripsi sacaro otomatis dek berkat dafta nan dapek Sanak [$1 sasuaikan].'
		},
		'mk': {
			'box-title': 'Автоматско додавање',
			'box-cancel': 'Затвори',
			'box-send': 'Поднови',
			'sended': 'Испрати',
			'labels': 'Натписи',
			'descriptions': 'Описи',
			'parameters': 'Параметри',
			'list': 'Списоци',
			//'prefix': 'Задржи ја претставката',
			'none': 'Празно',
			'tooltip-autocheck': 'Автоматски поднови ги натписите',
			'legend-labels': 'Штикларник „Натписи“: Автоматска поднова на натписот на сите јазици водејќи се според меѓувики-врските .',
			'legend-descriptions': 'Штикларник „Описи“: Автоматска поднова на описот водејќи се по списокот што можете да го измените по свое ([$1 врска]).'
		},
		'ms': {
			'box-title': 'Menambah secara automatik',
			'box-cancel': 'Tutup',
			'box-send': 'Kemas kini',
			'sended': 'Hantar',
			'labels': 'Label',
			'descriptions': 'Penerangan',
			'list': 'Senarai',
			'none': 'Tiada',
			'legend-labels': 'Peti semakan label : Label dikemas kini secara automatik hasil daripada pautan laman interwiki.',
			'legend-descriptions': 'Peti semakan penerangan : Penerangan dikemas kini secara automatik hasil daripada senarai yang anda boleh sesuaikan. ([$1 link]).'
		},
		'nb': {
			'box-title': 'Automatisk tillegg',
			'box-cancel': 'Lukk',
			'box-send': 'Oppdater',
			'sended': 'Sendt',
			'labels': 'Etiketter',
			'descriptions': 'Beskrivelser',
			'list': 'Lister',
			'none': 'Ingen',
			'tooltip-autocheck': 'Automatisk oppdatering av etikettene',
			'legend-labels': 'Etikettboks: Oppdater automatisk etiketten for alle språk takket være interwikilenker.',
			'legend-descriptions': 'Beskrivelseboksen: Oppdaterer automatisk beskrivelsen takket være en liste du kan tilpasse ([$1 link]).'
		},
		'nl': {
			'box-title': 'Automatisch toevoegen',
			'box-cancel': 'Sluiten',
			'box-send': 'Updaten',
			'sended': 'Verzonden',
			'labels': 'Labels',
			'descriptions': 'Beschrijvingen',
			'list': 'Lijsten',
			'none': 'Niks',
			'legend-labels': 'Selectievakje labels : Labels automatisch updaten door middel van de taalverwijzingen.',
			'legend-descriptions': 'Selectievakje beschrijvingen : Beschrijvingen automatisch updaten door een zelf gemaakte lijst ([$1 link]).'
		},
		'pl': {
			'box-title': 'Autouzupełnianie',
			'box-cancel': 'Zamknij',
			'box-send': 'Aktualizuj',
			'sended': 'Wysłano',
			'labels': 'Etykiety',
			'descriptions': 'Opisy',
			'parameters': 'Parametry',
			'list': 'Listy',
			//'prefix': 'Zachowaj prefiks',
			'none': 'Nie wybrano',
			'tooltip-autocheck': 'Automatycznie aktualizuj etykiety',
			'legend-labels': 'Etykiety: Zaktualizuj automatycznie wszystkie etykiety językowe dzięki linkom interwiki.',
			'legend-descriptions': 'Opisy: Zaktualizuj automatycznie opisy dzięki liście, którą możesz sam stworzyć ([$1 link]).'
		},
		'pt': {
			'box-title': 'Edição automática',
			'box-cancel': 'Fechar',
			'box-send': 'Atualizar',
			'sended': 'Enviar',
			'labels': 'Etiquetas',
			'descriptions': 'Descrições',
			'list': 'Listas',
			'none': 'Nenhum',
			'legend-labels': 'Tags: atualizar automaticamente o rótulo de todas as línguas para os links do interwiki.',
			'legend-descriptions': 'Descrições: atualizar automaticamente as descrições de uma lista que você pode customizar ([$1 link]).'
		},
		'ru': {
			'box-title': 'Автоматическое добавление',
			'box-cancel': 'Закрыть',
			'box-send': 'Обновить',
			'sended': 'Отправлено',
			'labels': 'Метки',
			'descriptions': 'Описания',
			'list': 'Списки',
			'none': 'пусто',
			'legend-labels': 'Флажок «Метки»: автоматически обновить метки для всех языков на основании интервики-ссылок.',
			'legend-descriptions': 'Флажок «Описания»: автоматически обновить описания, основываясь на списке ниже. Можно создать собственный список ([$1 ссылка]).'
		},
		'zh': {
			'box-title': '自动添加内容',
			'box-cancel': '关闭',
			'box-send': '更新',
			'sended': '已发送',
			'labels': '标签',
			'descriptions': '说明',
			'parameters': '参数',
			'list': '列表',
			//'prefix': '保留前缀',
			'none': '无',
			'tooltip-autocheck': '自动更新标签',
			'legend-labels': '标签复选框:根据跨维基站点链接自动更新所有语言的标签。',
			'legend-descriptions': '说明复选框:根据你自定义的列表自动更新各语言的说明([$1 链接])。'
		},
		'zh-hans': {
			'box-title': '自动添加内容',
			'box-cancel': '关闭',
			'box-send': '更新',
			'sended': '已发送',
			'labels': '标签',
			'descriptions': '描述',
			'list': '列表',
			'none': '无',
			'legend-labels': '标签:根据跨语言链接自动更新各语言的标签。',
			'legend-descriptions': '描述:根据你自定义的列表自动更新各语言的描述([$1 链接])。'
		},
		'zh-hant': {
			'box-title': '自動添加內容',
			'box-cancel': '關閉',
			'box-send': '更新',
			'sended': '已發送',
			'labels': '標籤',
			'descriptions': '描述',
			'list': '列表',
			'none': '無',
			'legend-labels': '標籤:根據跨語言連結自動更新各語言的標籤。',
			'legend-descriptions': '描述:根據你自定義的列表自動更新各語言的描述([$1 連結])。'
		}
	};

	/*
	** Check if main language can be translated.
	*/
	var lang = mw.config.get( 'wgUserLanguage' );
	if ( !transData.hasOwnProperty( lang ) ) {
		lang = 'en';
	}

	/*
	** Return localized message.
	*/
	function translate( key ) {
		if ( transData[ lang ].hasOwnProperty( key ) ) {
			return transData[ lang ][ key ];
		} else {
			return transData[ 'en' ][ key ];
		}
	}

	/*
	** workaround for bug 57706
	* source: https://noc.wikimedia.org/conf/InitialiseSettings.php.txt
	*/
	function getLanguageCodeFromWikiId( site ) {
		switch ( site ) {
			case 'crhwiki': return 'crh-latn';
			case 'nowiki': return 'nb';
			case 'simplewiki':
			case 'simplewiktionary': return 'en';
			case 'alswiki':
			case 'alswiktionary':
			case 'alswikibooks':
			case 'alswikiquote': return 'gsw';
			case 'bat_smgwiki': return 'sgs';
			case 'be_x_oldwiki': return 'be-tarask';
			case 'fiu_vrowiki': return 'vro';
			case 'roa_rupwiki':
			case 'roa_rupwiktionary': return 'rup';
			case 'zh_classicalwiki': return 'lzh';
			case 'zh_min_nanwiki':
			case 'zh_min_nanwiktionary':
			case 'zh_min_nanwikibooks':
			case 'zh_min_nanwikiquote': return 'nan';
			case 'zh_yuewiki': return 'yue';
			default: return wb.sites.getSite( site ).getLanguageCode();
		}
	}

	function openDialog( event ) {
		event.preventDefault();
		$( '#autoEdit-success' ).empty();
		$( '#autoEdit-main' ).show();
		$( '.ui-dialog-buttonset' ).css( 'width', '100%' );
		$( '.ui-button' ).css( 'float', translate( 'floatRight' ) );
		$( '#autoEdit' ).dialog( 'open' );
		$( '#autoCheckLabels' ).css( 'float', translate( 'floatLeft' ) );
		return false;
	}

	function onError( error, result ) {
		var message = result && result.error && result.error.info || error;
		$( '#autoEdit-success' ).html(
			$( '<p>' )
			.attr( 'class', 'error' )
			.text( translate( 'error-api' ).replace( '$1', message ) )
		);
	}

	/*
	** Dialog and link
	*/
	function labelLister() {
		var nb, desc, selectButton = "";
		for ( nb in desclist ) {
			desc = desclist[nb][mw.config.get( 'wgUserLanguage' )] || desclist[nb]['en'];
			selectButton += mw.html.element( 'option', { value: nb },
				desc ? desc + ' (' + nb + ')' : nb
			);
		}
		desclist['none'] = {};
		mw.loader.using( ['jquery.ui'], function () {
			$( '<div id="autoEdit">' +
				'<form>' +
					'<div id="autoEdit-main">' +
						'<ul>' +
							'<li>' + translate( 'legend-labels' ) + '</li>' +
							'<li>' + translate( 'legend-descriptions' ).replace( /\[\$1 ([^\]]+)\]/, mw.html.element( 'a', { href: mw.util.getUrl( 'User:' + mw.user.getName() + '/autoEditLists.js', { action: 'edit', editintro: 'User talk:Jitrixis/autoEdit.js/editintro' } ) }, '$1' ) ) + '</li>' +
						'</ul>' +
						'<fieldset>' +
							'<legend>' + translate( 'box-send' ) + ' :</legend>' +
							'<input type="checkbox" id="autoEdit-label"/>' +
							'<label for="autoEdit-label" style="margin-right:1em">' + translate( 'labels' ) + '</label>' +
							'<input type="checkbox" id="autoEdit-desc"/>' +
							'<label for="autoEdit-desc">' + translate( 'descriptions' ) + '</label>' +
						'</fieldset>' +
						'<fieldset>' +
							'<legend>' + translate( 'parameters' ) + '</legend>' +
							'<label for="autoEdit-list">' + translate( 'list' ) + ' :</label>' +
							'<select id="autoEdit-list" style="width:90%">' +
								'<option value="null" selected="selected">' + translate( 'none' ) + '</option>' +
								selectButton +
							'</select><br/><br/>' +
							'<hr style="clear:both"/>' +
							'<input type="checkbox" id="autoEdit-prefix"/>' +
							'<label for="autoEdit-prefix">' + translate( 'prefix' ) + '</label>' +
						'</fieldset>' +
					'</div>' +
					'<div id="autoEdit-success"></div>' +
				'</form>' +
			'</div>' )
			.appendTo( mw.util.$content )
			.dialog( {
				title: '<img id="autoEdit-logo" src="//upload.wikimedia.org/wikipedia/commons/2/28/Symbol_arrow_up.svg" style="width:20px; margin-right:1em;"/>' + translate( 'box-title' ),
				autoOpen: false,
				modal: true,
				width: 500,
				//height: 355,
				show: 'blind',
				hide: 'blind',
				buttons: [ {
					text: '[X] ' + translate( 'labels' ),
					id: 'autoCheckLabels',
					title: translate( 'tooltip-autocheck' ),
					click: function () {
						document.getElementById( 'autoEdit-label' ).checked = true;
						$( '#autoEdit-main' ).hide();
						$.createSpinner( {
							size: 'large',
							type: 'block'
						} ).appendTo( '#autoEdit-success' );
						labelListing();
					}
				}, {
					text: translate( 'box-cancel' ),
					click: function () {
						$( this ).dialog( 'close' );
					}
				}, {
					text: translate( 'box-send' ),
					click: function () {
						$( '#autoEdit-main' ).hide();
						$.createSpinner( {
							size: 'large',
							type: 'block'
						} ).appendTo( '#autoEdit-success' );
						labelListing();
					}
				} ]
			} );
		} );
		//ADD PlUG-IN TO LABELLISTER
		$( '<a>' ).attr( {
			href: '#',
			title: translate( 'tooltip-autoedit' )
		} )
		.text( translate( 'box-title' ) )
		.click( openDialog )
		.appendTo( '#labelLister-plugin' );
		$( mw.util.addPortletLink( 'p-tb', '#', translate( 'box-title' ), 't-autoEdit', translate( 'tooltip-autoedit' ) ) )
		.click( openDialog );
	}

	/*
	** List label, description and sitelinks
	*/
	function labelListing() {
		api.getEntities( itemId, 'labels|descriptions|sitelinks' )
		.done( transformLabels )
		.fail( onError );
	}

	function transformLabels( data ) {
		var entity = data.entities[itemId], id, site, title, wikilang, iwiki = {}, inputSelect = $( '#autoEdit-list' ).val();
		for ( id in entity.sitelinks ) {
			site = wb.sites.getSite( id );
			if ( site.getGroup() !== 'wikipedia' ) {
				continue;
			}
			wikilang = getLanguageCodeFromWikiId( id );
			title = entity.sitelinks[id].title;
			if ( document.getElementById( 'autoEdit-prefix' ).checked ) {
				title = title.replace( /^(.*:)*/g, "" );
			}
			iwiki[wikilang] = title.replace( /\(.*\)/g, "" ); //Delete Disambiguation
			if ( wikilang === 'en' ) {
				iwiki['en-ca'] = iwiki['en'];
				iwiki['en-gb'] = iwiki['en'];
			} else if ( wikilang === 'pt' ) {
				iwiki['pt-br'] = iwiki['pt'];
			} else if ( wikilang === 'de' ) {
				iwiki['de'] = title.replace( / \(.*?\)$/, "" );
				// iwiki['de-formal'] = iwiki['de']; Disabled per talk page oldid=29709890
				if ( iwiki['de'].indexOf( "ß" ) !== -1 ) {
					iwiki['de-ch'] = iwiki['de'].replace( /ß/g, "ss" );
				}
			} else if ( wikilang === 'fa' ) {
				iwiki['fa'] = title;//In Farsi () are important
			}
		}
		// Do not overwrite existing labels
		for ( id in entity.labels ) {
			//if ( iwiki[id] ) {
				try {
				delete iwiki[id];
				} catch ( err ) {
				}
			//}
		}
		// Do not overwrite existing descriptions
		for ( id in entity.descriptions ) {
			//if ( desclist[inputSelect][id] ) {
				try {
				delete desclist[inputSelect][id];
				} catch ( err ) {
				}
			//}
		}
		sendItem( iwiki, desclist[inputSelect] );
	}

	/*
	** Control how to send an item
	*/
	function sendItem( lbl, desc ) {
		var nb;
		var inputLabel = document.getElementById( 'autoEdit-label' ).checked;
		var inputDesc = document.getElementById( 'autoEdit-desc' ).checked;
		var inputSelect = $( '#autoEdit-list' ).val();
		var summary = "Update ";
		var summarynotify = " → ";
		//CREATE LABEL SAVE
		var jsonLabel = [];
		if ( inputLabel ) {
			for ( nb in lbl ) {
				if ( lbl.hasOwnProperty( nb ) ) {
					jsonLabel.push( {
						language: nb,
						value: lbl[nb]
					} );
				}
			}
			summary += "Labels ";
			summarynotify += translate( 'labels' ) + " ";
		}
		//CREATE DESCRIPTION SAVE
		var jsonDesc = [];
		if ( inputDesc ) {
			for ( nb in desc ) {
				if ( desc.hasOwnProperty( nb ) ) {
					jsonDesc.push( {
						language: nb,
						value: desc[nb]
					} );
				}
			}
			summary += "Descriptions (" + inputSelect + ")";
			summarynotify += translate( 'descriptions' ) + " (" + inputSelect + ")";
		}
		setItem( { 'labels': jsonLabel, 'descriptions': jsonDesc }, summary, summarynotify );
	}

	/*
	** Send the input value on the edit menu
	*/
	function setItem( data, summary, summarynotify ) {
		api.post( {
			'action': 'wbeditentity',
			'id': itemId,
			'data': JSON.stringify( data ),
			'summary': '[[MediaWiki talk:Gadget-autoEdit.js|autoEdit]] ' + summary
		} )
		.done( function ( data ) {
			var message;
			if ( data.warnings ) {
				message = $.parseHTML( data.warnings.messages.html['*'] );
			} else {
				message = translate( 'sended' ) + summarynotify;
			}
			$( '#autoEdit-success' ).empty();
			$( '#autoEdit' ).dialog( 'close' );
			mw.notify( message, {
				title: 'autoEdit.js :',
				tag: 'autoEdit'
			} );
		} )
		.fail( onError );
	}

	function getLabels( items ) {
		return api.getEntities( items.join( '|' ), 'labels' )
		.done( function ( data ) {
			$.each( items, function ( index, item ) {
				var labels, lang;
				if ( !data.entities.hasOwnProperty( item ) ) {
					return; // continue
				}
				labels = data.entities[item].labels;
				desclist[item] = {};
				for ( lang in labels ) {
					if ( labels.hasOwnProperty( lang ) ) {
						desclist[item][lang] = labels[lang].value;
					}
				}
			} );
		} );
	}

	getLabels( [ 'Q101352', 'Q484170', 'Q747074', 'Q13406463', 'Q4167410', 'Q4167836', 'Q11266439' ] )
	.always( function () { // wait for labels. On fail continue without labels
		$( labelLister ); // wait for DOM ready
	} );

} ( mediaWiki, wikibase, jQuery ) );