מדיה ויקי:Gadget-SubsetMenu.js

מתוך צפונות ויקי

הערה: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אינטרנט אקספלורר / אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
  • אופרה: ללחוץ על Ctrl-F5.
/*
 * סקריפט להוספת תווים מיוחדים בתחתית דף העריכה.
 * רשימת התווים נלקחו מ[[מדיה ויקי:Edittools]], והדף מסתמך על חלק מהקוד שבו. חלק מהסקריפט לקוח מוויקיפדיה הצרפתית.
 *
 */
$(function() {
if ($('#wpTextbox1').length != 1)
	return;

var specialchars = {
	"None": "",
	"Italian": "Á á À à É é È è Í í Ì ì Ó ó Ò ò Ú ú Ù ù",
	"Icelandic": "Á á Ð ð É é Í í Ó ó Ú ú Ý ý Þ þ Æ æ Ö ö",
	"Irish Gaelic": "Á á Ḃ ḃ Ċ ċ Ḋ ḋ É é Ḟ ḟ Ġ ġ Í í Ṁ ṁ Ó ó Ṗ ṗ Ṡ ṡ Ṫ ṫ Ú ú",
	"IPA": " a ɑ e ɛ ə i o ɔ u y ø œ ·  ɔ̃ ɑ̃ ɛ̃ œ̃ · j w ɥ · ː ‿ _́ _̀ _̌ _̂ · b k ʃ d f ɡ h ʒ l m n ɲ ŋ p r s t v z ʀ ʁ · ʈ ɖ c ɟ q ɢ ʔ ɱ ɳ ɴ ʙ ɾ ɽ ɸ β θ ð ʂ ʐ ç ʝ x ɣ χ ħ ʕ ɦ ʋ ɹ ɻ ɰ ɫ ɮ ɭ ʎ ʟ ƥ ɓ ƭ ɗ ƈ ʄ ƙ ɠ ʠ ʛ ʍ ʜ ʢ ʡ ɕ ʑ ɧ · ʘ ǀ ǃ ǂ ǁ ɺ ʦ ʣ ʧ ʤ ʨ ʥ · ɚ ɝ ˈ ˌ ˑ ɨ ʉ ɯ ɪ ɜ ʏ ʊ ɤ ɵ ʌ æ ɐ ɶ ɒ · ᵊ ʰ ˤ ˠ ʲ ʷ ⁿ ᵑ ᵐ ʳ · ˥ ˦ ˧ ˨ ˩",
	"OldEnglish": "Ā ā Æ æ Ǣ ǣ Ǽ ǽ Ċ ċ Ð ð Ē ē Ġ ġ Ī ī Ō ō Ū ū Ƿ ƿ Ȳ ȳ Þ þ Ȝ ȝ",
	"Estonian": "Č č Š š Ž ž Õ õ Ä ä Ö ö Ü ü",
	"Esperanto": "Ĉ ĉ Ĝ ĝ Ĥ ĥ Ĵ ĵ Ŝ ŝ Ŭ ŭ",
	"German": "Ä ä Ö ö ß Ü ü",
	"Dutch": "Ä ä  Ë ë  Ï ï  Ö ö  Ü ü  Ÿ ÿ  · Á á  É é  Í í  Ó ó  Ú ú  · À à  È è  Ì ì  Ò ò  Ù ù  · Â â  Ê ê  Î î  Ô ô  Û û  · IJ ij  ſ ƒ € ",
	"Hungarian": "Á á É é Í í Ó ó Ö ö Ő ő Ú ú Ü ü Ű ű",
	"Hieroglyphics": "ȝ ỉ ˁ ḥ ḫ ẖ ś š ḳ ṯ ḏ Ȝ Ỉ ˁ Ḥ Ḫ ẖ Ś Š Ḳ Ṯ Ḏ <hiero>+</hiero>",
	"Vietnamese": "À à Ả ả Á á Ạ ạ Ã ã Ă ă Ằ ằ Ẳ ẳ Ẵ ẵ Ắ ắ Ặ ặ Â â Ầ ầ Ẩ ẩ Ẫ ẫ Ấ ấ Ậ ậ Đ đ È è Ẻ ẻ Ẽ ẽ É é Ẹ ẹ Ê ê Ề ề Ể ể Ễ ễ Ế ế Ệ ệ Ỉ ỉ Ĩ ĩ Í í Ị ị Ì ì Ỏ ỏ Ó ó Ọ ọ Ò ò Õ õ Ô ô Ồ ồ Ổ ổ Ỗ ỗ Ố ố Ộ ộ Ơ ơ Ờ ờ Ở ở Ỡ ỡ Ớ ớ Ợ ợ Ù ù Ủ ủ Ũ ũ Ú ú Ụ ụ Ư ư Ừ ừ Ử ử Ữ ữ Ứ ứ Ự ự Ỳ ỳ Ỷ ỷ Ỹ ỹ Ỵ ỵ Ý ý",
	"Welsh": "Á á À à Â â Ä ä É é È è Ê ê Ë ë Ì ì Î î Ï ï Ó ó Ò ò Ô ô Ö ö Ù ù Û û Ẁ ẁ Ŵ ŵ Ẅ ẅ Ý ý Ỳ ỳ Ŷ ŷ Ÿ ÿ",
	"Turkish": "Ç ç Ə ə Ä ä Ğ ğ G‘ g‘ İ ı Ž ž Ň ň Ö ö O‘ o‘ Ş ş Ü ü Ý ý",
	"Greek": "Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω · Ϝ Ϻ ϟ Ϡ Ϛ Ϸ Ῥ <br> α β ϐ γ δ ε ζ η θ ϑ ι κ ϰ λ μ ν ξ ο π ϖ ρ ϱ σ ς τ υ φ ϕ χ ψ ω · ϝ ϻ ϟ ϡ ϛ ϸ ῤ ῥ · Ά Έ Ή Ί Ό Ύ Ώ · ά έ ή ί ό ύ ώ · ᾴ ῄ ῴ  · Ὰ Ὲ Ὴ Ὶ Ὸ Ὺ Ὼ · ὰ ὲ ὴ ὶ ὸ ὺ ὼ · ᾲ ῂ ῲ · ᾶ ῆ ῖ ῦ ῶ  · ᾷ ῇ ῷ · ῗ ῧ · ῒ ῢ  · ΐ ΰ · ᾼ ῌ ῼ  · ᾳ ῃ ῳ · Ἀ Ἐ Ἠ Ἰ Ὀ Υ̓ Ὠ · ᾈ ᾘ ᾨ · ἀ ἐ ἠ ἰ ὀ ὐ ὠ · ᾀ ᾐ ᾠ  · Ἄ Ἔ Ἤ Ἴ Ὄ Ὤ · ᾌ ᾜ ᾬ · ἄ ἔ ἤ ἴ ὄ ὔ ὤ · ᾄ ᾔ ᾤ · Ἂ Ἒ Ἢ Ἲ Ὂ Ὢ · ᾊ ᾚ ᾪ · ἂ ἒ ἢ ἲ ὂ ὒ ὢ · ᾂ ᾒ ᾢ · Ἆ Ἦ Ἶ Ὦ · ᾎ ᾞ ᾮ · ἆ ἦ ἶ ὖ ὦ · ᾆ ᾖ ᾦ · Ἁ Ἑ Ἡ Ἱ Ὁ Ὑ Ὡ · ἁ ἑ ἡ  ἱ  ὁ ὑ ὡ · Ἅ Ἕ Ἥ Ἵ Ὅ Ὕ Ὥ · ᾍ ᾝ ᾭ · ἅ ἕ ἥ ἵ ὅ ὕ ὥ · ᾅ ᾕ ᾥ · Ἃ Ἓ Ἣ Ἳ Ὃ Ὓ Ὣ · ᾋ ᾛ ᾫ  · ἃ ἓ ἣ ἳ ὃ ὓ ὣ · ᾃ ᾓ ᾣ · Ἇ Ἧ Ἷ Ὗ · ᾏ ᾟ ᾯ · ἇ ἧ ἷ ὗ ὧ · ᾇ ᾗ ᾧ · Ᾰ ᾰ Ῐ ῐ Ῠ ῠ · Ᾱ ᾱ Ῑ ῑ Ῡ ῡ",
	"Latvian": "Ā ā Č č Ē ē Ģ ģ Ī ī Ķ ķ Ļ ļ Ņ ņ Ō ō Ŗ ŗ Š š Ū ū Ž ž",
	"Latin": "Á á Ć ć É é Í í Ó ó Ś ś Ú ú Ý ý Ǿ ǿ  · À à È è Ì ì Ò ò Ù ù  ·  â Ĉ ĉ Ê ê Ĝ ĝ Ĥ ĥ Î î Ĵ ĵ Ô ô ŝ Ŝ Û û  · Ä ä Ë ë Ï ï Ö ö Ü ü ÿ  · à ã Ñ ñ Õ õ  · Å å  · Ç ç  · Č č Š š ŭ  · Ł ł  · Ő ő Ű ű  · Ø ø  · Ā ā Ē ē Ī ī Ō ō Ū ū Ȳ ȳ · Ă ă Ĕ ĕ Ğ ğ Ĭ ĭ Ŏ ŏ Ŭ ŭ Y̆ y̆ ... ß  ... Æ æ Œ œ  · Ð ð Þ þ |",
	"Lithuanian": "Ą ą Č č Ę ę Ė ė Į į Š š Ų ų Ū ū Ž ž",
	"Maltese": "Ċ ċ Ġ ġ Ħ ħ Ż ż",
	"Math": '',
	"Spanish": "¿+? ¡+! Á á É é Í í Ñ ñ Ó ó Ú ú Ü ü ª º",
	"Scandinavian": "À à É é Å å Æ æ Ä ä Ø ø Ö ö",
	"Serbian": "А а Б б В в Г г Д д Ђ ђ Е е Ж ж З з И и Ј ј К к Л л Љ љ М м Н н Њ њ О о П п Р р С с Т т Ћ ћ У у Ф ф Х х Ц ц Ч ч Џ џ Ш ш",
	"Arabic": "<span>כלליות:_</span>ا ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي · <span>נוספות:_</span> ء آ أ إ ؤ ئ ة ـ ى · <span>ספרות:_</span> ٠ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩ · <br> <span>תחיליות:_</span> ﺍ ﺑ ﺗ ﺛ ﺟ ﺣ ﺧ ﺩ ﺫ ﺭ ﺯ ﺳ ﺷ ﺻ ﺿ ﻃ ﻇ ﻋ ﻏ ﻓ ﻗ ﻛ ﻟ ﻣ ﻧ ﻫ ﻭ ﻳ · <br> <span>אמצעיות:_</span> ﺍ ﺒ ﺘ ﺜ ﺠ ﺤ ﺨ ﺪ ﺬ ﺮ ﺰ ﺴ ﺸ ﺼ ﻀ ﻄ ﻈ ﻌ ﻐ ﻔ ﻘ ﻜ ﻠ ﻤ ﻨ ﻬ ﻮ ﻴ · <br> <span>סופיות:_</span> ﺎ ﺐ ﺖ ﺚ ﺞ ﺢ ﺦ ﺪ ﺬ ﺮ ﺰ ﺲ ﺶ ﺺ ﺾ ﻂ ﻆ ﻊ ﻎ ﻒ ﻖ ﻚ ﻞ ﻢ ﻦ ﻪ ﻮ ﻲ · <br><span>מבודדות:_</span> ﺍ ﺏ ﺕ ﺙ ﺝ ﺡ ﺥ ﺩ ﺫ ﺭ ﺯ ﺱ ﺵ ﺹ ﺽ ﻁ ﻅ ﻉ ﻍ ﻑ ﻕ ﻙ ﻝ ﻡ ﻥ ﻩ ﻭ ﻱ",
	"Polish": "ą Ą ć Ć ę Ę ł Ł ń Ń ó Ó ś Ś ź Ź ż Ż",
	"Portuguese": "Á á À à Â â Ã ã Ç ç É é Ê ê Í í Ó ó Ô ô Õ õ Ú ú Ü ü",
	"Czech": "Á á Č č Ď ď É é Ě ě Í í Ň ň Ó ó Ř ř Š š Ť ť Ú ú Ů ů Ý ý Ž ž",
	"Catalan": "À à Ç ç É é È è Í í Ï ï Ó ó Ò ò Ú ú Ü ü l·l",
	"Croatian": "Č č Ć ć Dž dž Đ đ Š š Ž ž",
	"Romanian": "Ă ă Â â Î î Ş ş Ţ ţ",
	"Russian": "А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я  · а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я"
}

function addCharSubsetMenu() {
	var specialChars = $('#specialcharsMenu');
	if (! specialChars.length)
		return;
	var selection = $('<select>')
		.css({float: 'left'})
		.change(chooseCharSubset);

	var vals = {
		"None": 'תווים מיוחדים',
		"Italian": 'איטלקית',
		"Icelandic": 'איסלנדית',
		"Irish Gaelic": 'אירית',
		"IPA": 'אלפבית פונטי בינ\"ל',
		"OldEnglish": 'אנגלית עתיקה',
		"Estonian": 'אסטונית',
		"Esperanto": 'אספרנטו',
		"German": 'גרמנית',
		"Dutch": 'הולנדית',
		"Hungarian": 'הונגרית',
		"Hieroglyphics": 'הירוגליפי',
		"Vietnamese": 'וייטנאמית',
		"Welsh": 'ולשית',
		"Turkish": 'טורקית',
		"Greek": 'יוונית',
		"Latvian": 'לטבית',
		"Latin": 'לטינית',
		"Lithuanian": 'ליטאית',
		"Maltese": 'מלטזית',
		"Math": 'מתמטיקה',
		"Spanish": 'ספרדית',
		"Scandinavian": 'שפות סקנדינביות',
		"Serbian": 'סרבית',
		"Arabic": 'ערבית',
		"Polish": 'פולנית',
		"Portuguese": 'פורטוגזית',
		"Czech": '' + "צ'כית" + '',
		"Catalan": 'קטלאנית',
		"Croatian": 'קרואטית',
		"Romanian": 'רומנית',
		"Russian": 'רוסית'
	}
	for (var val in vals)
		selection.append($('<option>', {value: val, text: vals[val]}));
	specialChars.append(selection);
	var v = $.cookie('specialCharsValue');
	selection.val(v);
	selection.trigger('change');
}

	function parseCharSubset(str, v, l) {
		function insertMath() {
			insertTags('', this.alt, '');
		}
		if (v == "Math") {
			$('#specialchars').children().remove();
			new mw.Api().post(
				{action: 'parse', page: 'ויקיפדיה:תווים מיוחדים/נוסחאות'}).done(
				function(data) {
					$(data.parse.text['*']).find('img.tex')
						.css({margin: '3px', padding: '0.5em', border:'solid blue 1px', borderRadius: '5px', boxShadow: '3px 3px grey'})
						.click(insertMath)
						.appendTo(l)
						.each(function(){this.title = this.alt;});
				}
			);
		}
		else {
			var strs = str.split(' ');
			var list = "";
			for (var i = 0; i < strs.length; i++) {
				if (strs[i].indexOf('hiero') != -1)
					list += '<a onclick="insertTags(&#39;&lt;hiero&gt;&#39;,&#39;&lt;/hiero&gt;&#39;,&#39;&#39;);return false" href="#">&lt;hiero&gt;&lt;/hiero&gt;</a> ';
				else if (strs[i] == "<br>")
					list += '<br />';
				else if (strs[i].indexOf('span') != -1) // text element
					list += strs[i].replace(/_/g, " ");
				else if (strs[i] == '·')
					list += '· ';
				else {
					var temp = strs[i].replace(/\\/g, "\\\\");
					list += '<a onclick="insertTags(&#39;' + temp + '&#39;,&#39;&#39;,&#39;&#39;);return false" href="#">' + strs[i] + '</a> ';
				}
			}
			l.html(list);
		}
}

/* select subsection of special characters */
function chooseCharSubset() {
	var v = this.value,
		rtl = v == "Arabic";
	$.cookie('specialCharsValue', v, {path: '/', expires: 30});
	var l = $('#specialchars');
	if (!v || v == "None")
		l.html('');
	else
		l.css({direction: rtl ? 'rtl' : 'ltr', textAlign: rtl ? 'right' : 'left', maxHeight: '11em', overflow: 'auto'});
	if ( v && specialchars[v] )
		parseCharSubset(specialchars[v], v, l);
}

addCharSubsetMenu();
});