注意:保存之后,你必须清除浏览器缓存才能看到做出的更改。Google ChromeFirefoxMicrosoft EdgeSafari:按住⇧ Shift键并单击工具栏的“刷新”按钮。参阅Help:绕过浏览器缓存以获取更多帮助。

//[[special:diff/45118200]]

if( $.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) {
	$.ajax(
		'//tools-static.wmflabs.org/meta/scripts/pathoschild.templatescript.js',
		{ dataType:'script', cache:true }
	).done( function() {
		$.when(
			mw.loader.using( ['mediawiki.util'] ),
			$.ajax('//en.wikipedia.org/w/index.php?title=User:Ohconfucius/script/MOSNUM_utils.js&action=raw&ctype=text/javascript',
				{ dataType:'script', cache:true } ),
			$.ready
		).done( function() {
				var add = mw.util.addPortletLink;
				$( add('p-tb', '#', 'LAN-TEST', 'fixlang', 'LAN-TEST', '', '') ).click(fix_language_test_driver);
		});
	});
}

var summary;
function chinese_convert() {
	switch (mw.config.get('wgUserLanguage')) {
        case 'zh':
        case 'zh-cn':
        case 'zh-hans':
        case 'zh-my':
        case 'zh-sg':
        	summary = {
       			fix_language_test: '/*语言参数*/',
        	};
        	break;
        default:
        	summary = {
       			fix_language_test: '/*語言參數*/',
        	};
        	break;
	}
}
function fix_language_test_edit_summary() {
	setoptions(minor='true');
	chinese_convert();
	setreason(summary.fix_language_test, 'append');
	doaction('diff');
}

function fix_language_test() {
	var language_list = [
    'Afar',
    'afar',
    'Abkhazian',
    'abkhazian',
    'Avestan',
    'avestan',
    'Afrikaans',
    'afrikaans',
    'Akan',
    'akan',
    'Amharic',
    'amharic',
    'Aragonese',
    'aragonese',
    'Arabic',
    'arabic',
    'Assamese',
    'assamese',
    'Avaric',
    'avaric',
    'Aymara',
    'aymara',
    'Azerbaijani',
    'azerbaijani',
    'Bashkir',
    'bashkir',
    'Belarusian',
    'belarusian',
    'Bulgarian',
    'bulgarian',
    'Bihari',
    'bihari',
    'Bislama',
    'bislama',
    'Bambara',
    'bambara',
    'Bengali',
    'bengali',
    'Tibetan',
    'tibetan',
    'Breton',
    'breton',
    'Bosnian',
    'bosnian',
    'Catalan',
    'catalan',
    'Chechen',
    'chechen',
    'Chamorro',
    'chamorro',
    'Corsican',
    'corsican',
    'Cree',
    'cree',
    'Czech',
    'czech',
    'Church Slavic',
    'church Slavic',
    'Chuvash',
    'chuvash',
    'Welsh',
    'welsh',
    'Danish',
    'danish',
    'German',
    'german',
    'Divehi',
    'divehi',
    'Dzongkha',
    'dzongkha',
    'Ewe',
    'ewe',
    'Greek',
    'greek',
    'English',
    'english',
    '英文',
    'Esperanto',
    'esperanto',
    'Spanish',
    'spanish',
    'Castilian',
    'castilian',
    'Estonian',
    'estonian',
    'Basque',
    'basque',
    'Persian',
    'persian',
    'Fulah',
    'fulah',
    'Finnish',
    'finnish',
    'Fijian',
    'fijian',
    'Faroese',
    'faroese',
    'French',
    'french',
    'Western Frisian',
    'western Frisian',
    'Irish',
    'irish',
    'Scottish Gaelic',
    'scottish Gaelic',
    'Galician',
    'galician',
    'Guaraní',
    'guaraní',
    'Gujarati',
    'gujarati',
    'Manx',
    'manx',
    'Hausa',
    'hausa',
    'Hebrew',
    'hebrew',
    'Hindi',
    'hindi',
    'Hiri Motu',
    'hiri motu',
    'Hirimotu',
    'hirimotu',
    'Croatian',
    'croatian',
    'Haitian Creole',
    'haitian creole',
    'Haitiancreole',
    'haitiancreole',
    'Hungarian',
    'hungarian',
    'Armenian',
    'armenian',
    'Herero',
    'herero',
    'Interlingua',
    'interlingua',
    'Indonesian',
    'indonesian',
    'Interlingue',
    'interlingue',
    'Igbo',
    'igbo',
    'Sichuan Yi',
    'sichuan yi',
    'sichuanyi',
    'Sichuanyi',
    'Inupiaq',
    'inupiaq',
    'Ido',
    'ido',
    'Icelandic',
    'icelandic',
    'Italian',
    'italian',
    'Inuktitut',
    'inuktitut',
    'Japanese',
    'japanese',
    '日文',
    'Javanese',
    'javanese',
    'Georgian',
    'georgian',
    'Kongo',
    'kongo',
    'Kikuyu',
    'kikuyu',
    'Kwanyama',
    'kwanyama',
    'Kazakh',
    'kazakh',
    'Kalaallisut',
    'kalaallisut',
    'Khmer',
    'khmer',
    'Kannada',
    'kannada',
    'Korean',
    'korean',
    'Kanuri',
    'kanuri',
    'Kashmiri',
    'kashmiri',
    'Kurdish',
    'kurdish',
    'Komi',
    'komi',
    'Cornish',
    'cornish',
    'Kirghiz',
    'kirghiz',
    'Latin',
    'latin',
    '拉丁語',
    'Luxembourgish',
    'luxembourgish',
    'Ganda',
    'ganda',
    'Limburgish',
    'limburgish',
    'Lingala',
    'lingala',
    'Lao',
    'lao',
    'Lithuanian',
    'iithuanian',
    'Luba-Katanga',
    'iuba-katanga',
    'Latvian',
    'latvian',
    'Malagasy',
    'malagasy',
    'Marshallese',
    'marshallese',
    'Māori',
    'māori',
    'Macedonian',
    'macedonian',
    'Malayalam',
    'malayalam',
    'Mongolian',
    'mongolian',
    'Moldavian',
    'moldavian',
    'Marathi',
    'marathi',
    'Malay',
    'malay',
    'Maltese',
    'maltese',
    'Burmese',
    'burmese',
    'Nauru',
    'nauru',
    'Norwegian Bokmål',
    'norwegian bokmål',
    'North Ndebele',
    'north ndebele',
    'Northndebele',
    'northndebele',
    'Nepali',
    'nepali',
    'Ndonga',
    'ndonga',
    'Dutch',
    'dutch',
    'Norwegian Nynorsk',
    'norwegiannynorsk',
    'norwegian nynorsk',
    'Norwegiannynorsk',
    'Norwegian',
    'norwegian',
    'South Ndebele',
    'south ndebele',
    'southndebele',
    'Southndebele',
    'Navajo',
    'navajo',
    'Chichewa',
    'chichewa',
    'Occitan',
    'occitan',
    'Ojibwa',
    'ojibwa',
    'Oromo',
    'oromo',
    'Oriya',
    'oriya',
    'Ossetian',
    'ossetian',
    'Panjabi',
    'panjabi',
    'Pāli',
    'pāli',
    'Polish',
    'polish',
    'Pashto',
    'pashto',
    'Portuguese',
    'portuguese',
    'Quechua',
    'quechua',
    'Raeto-Romance',
    'raeto-romance',
    'Kirundi',
    'kirundi',
    'Romanian',
    'romanian',
    'Russian',
    'russian',
    'Kinyarwanda',
    'kinyarwanda',
    'Sanskrit',
    'sanskrit',
    'Sardinian',
    'sardinian',
    'Sindhi',
    'sindhi',
    'Northern Sami',
    'northern sami',
    'Sango',
    'sango',
    'Serbo-Croatian',
    'serbo-croatian',
    'Sinhalese',
    'sinhalese',
    'Slovak',
    'slovak',
    'Slovenian',
    'slovenian',
    'Samoan',
    'samoan',
    'Shona',
    'shona',
    'Somali',
    'somali',
    'Albanian',
    'albanian',
    'Serbian',
    'serbian',
    'Swati',
    'swati',
    'Sotho',
    'sotho',
    'Sundanese',
    'sundanese',
    'Swedish',
    'swedish',
    'Swahili',
    'swahili',
    'Tamil',
    'tamil',
    'Telugu',
    'telugu',
    'Tajik',
    'tajik',
    'Thai',
    'thai',
    'Tigrinya',
    'tigrinya',
    'Turkmen',
    'turkmen',
    'Tagalog',
    'tagalog',
    'Tswana',
    'tswana',
    'Tonga',
    'tonga',
    'Turkish',
    'turkish',
    'Tsonga',
    'tsonga',
    'Tatar',
    'tatar',
    'Twi',
    'twi',
    'Tahitian',
    'tahitian',
    'Uyghur',
    'uyghur',
    'Ukrainian',
    'ukrainian',
    'Urdu',
    'urdu',
    'Uzbek',
    'uzbek',
    'Venda',
    'venda',
    'Vietnamese',
    'vietnamese',
    'Volapük',
    'volapük',
    'Walloon',
    'walloon',
    'Wolof',
    'wolof',
    'Xhosa',
    'xhosa',
    'Yiddish',
    'yiddish',
    'Yoruba',
    'yoruba',
    'Zhuang',
    'zhuang',
    'Chinese',
    'chinese',
    '中文',
    '繁體中文',
    '简体中文',
    'Zulu',
    'zulu'
];
	var language_codes = [
'aa',
'aa',
'ab',
'ab',
'ae',
'ae',
'af',
'af',
'ak',
'ak',
'am',
'am',
'an',
'an',
'ar',
'ar',
'as',
'as',
'av',
'av',
'ay',
'ay',
'az',
'az',
'ba',
'ba',
'be',
'be',
'bg',
'bg',
'bh',
'bh',
'bi',
'bi',
'bm',
'bm',
'bn',
'bn',
'bo',
'bo',
'br',
'br',
'bs',
'bs',
'ca',
'ca',
'ce',
'ce',
'ch',
'ch',
'co',
'co',
'cr',
'cr',
'cs',
'cs',
'cu',
'cu',
'cv',
'cv',
'cy',
'cy',
'da',
'da',
'de',
'de',
'dv',
'dv',
'dz',
'dz',
'ee',
'ee',
'el',
'el',
'en',
'en',
'en',
'eo',
'eo',
'es',
'es',
'es',
'es',
'et',
'et',
'eu',
'eu',
'fa',
'fa',
'ff',
'ff',
'fi',
'fi',
'fj',
'fj',
'fo',
'fo',
'fr',
'fr',
'fy',
'fy',
'ga',
'ga',
'gd',
'gd',
'gl',
'gl',
'gn',
'gn',
'gu',
'gu',
'gv',
'gv',
'ha',
'ha',
'he',
'he',
'hi',
'hi',
'ho',
'ho',
'ho',
'ho',
'hr',
'hr',
'ht',
'ht',
'ht',
'ht',
'hu',
'hu',
'hy',
'hy',
'hz',
'hz',
'ia',
'ia',
'id',
'id',
'ie',
'ie',
'ig',
'ig',
'ii',
'ii',
'ii',
'ii',
'ik',
'ik',
'io',
'io',
'is',
'is',
'it',
'it',
'iu',
'iu',
'ja',
'ja',
'ja',
'jv',
'jv',
'ka',
'ka',
'kg',
'kg',
'ki',
'ki',
'kj',
'kj',
'kk',
'kk',
'kl',
'kl',
'km',
'km',
'kn',
'kn',
'ko',
'ko',
'kr',
'kr',
'ks',
'ks',
'ku',
'ku',
'kv',
'kv',
'kw',
'kw',
'ky',
'ky',
'la',
'la',
'la',
'lb',
'lb',
'lg',
'lg',
'li',
'li',
'ln',
'ln',
'lo',
'lo',
'lt',
'lt',
'lu',
'lu',
'lv',
'lv',
'mg',
'mg',
'mh',
'mh',
'mi',
'mi',
'mk',
'mk',
'ml',
'ml',
'mn',
'mn',
'mo',
'mo',
'mr',
'mr',
'ms',
'ms',
'mt',
'mt',
'my',
'my',
'na',
'na',
'nb',
'nb',
'nd',
'nd',
'nd',
'nd',
'ne',
'ne',
'ng',
'ng',
'nl',
'nl',
'nn',
'nn',
'nn',
'nn',
'no',
'no',
'nr',
'nr',
'nr',
'nr',
'nv',
'nv',
'ny',
'ny',
'oc',
'oc',
'oj',
'oj',
'om',
'om',
'or',
'or',
'os',
'os',
'pa',
'pa',
'pi',
'pi',
'pl',
'pl',
'ps',
'ps',
'pt',
'pt',
'qu',
'qu',
'rm',
'rm',
'rn',
'rn',
'ro',
'ro',
'ru',
'ru',
'rw',
'rw',
'sa',
'sa',
'sc',
'sc',
'sd',
'sd',
'se',
'se',
'sg',
'sg',
'sh',
'sh',
'si',
'si',
'sk',
'sk',
'sl',
'sl',
'sm',
'sm',
'sn',
'sn',
'so',
'so',
'sq',
'sq',
'sr',
'sr',
'ss',
'ss',
'st',
'st',
'su',
'su',
'sv',
'sv',
'sw',
'sw',
'ta',
'ta',
'te',
'te',
'tg',
'tg',
'th',
'th',
'ti',
'ti',
'tk',
'tk',
'tl',
'tl',
'tn',
'tn',
'to',
'to',
'tr',
'tr',
'ts',
'ts',
'tt',
'tt',
'tw',
'tw',
'ty',
'ty',
'ug',
'ug',
'uk',
'uk',
'ur',
'ur',
'uz',
'uz',
've',
've',
'vi',
'vi',
'vo',
'vo',
'wa',
'wa',
'wo',
'wo',
'xh',
'xh',
'yi',
'yi',
'yo',
'yo',
'za',
'za',
'zh',
'zh',
'zh',
'zh-hant',
'zh-cn',
'zu',
'zu'
];
	var editbox = $('#wpTextbox1'), text = editbox.val();
	text = text.replace(/(\|\s*language\s*=\s*)([\w-]*)(?=[\s]*[|}])/gi, function (m, p1, p2) {
    for (var i = 0, len = language_list.length; i < len; i++)
    {
        if (p2.match(language_list[i])) {
            p2 = language_codes[i];
        }
    }
    return p1 + p2;
});
	editbox.val(text);
}

function fix_language_test_driver(e) {
	e.preventDefault();
	fix_language_test();
	fix_language_test_edit_summary();
}