Bikarhêner:Balyozxane/creationrules.js

Ji Wîkîferhengê

Zanibe: Piştî weşandinê, ji bo dîtina guhartinan dibe ku hewce be "cache"ya geroka xwe paqij bikî.

  • Firefox / Safari: Pê li Shift û Reload bike an jî Ctrl-F5 an Ctrl-R bike (ji bo Mac: ⌘-R)
  • Google Chrome: Pê li Ctrl-Shift-R (ji bo Mac: ⌘-Shift-R) bike
  • Internet Explorer / Edge: Pê li Ctrl û Refresh bike, an jî Ctrl-F5 bike
  • Opera: Pê li Ctrl-F5 bike.
// <nowiki> This prevents the parser from processing the file and generating transclusions and categories for it.

/*Çavkanî: [[en:User:Conrad.Irwin/creationrules.js]]
 * Language-specific entry generation rules for form-of entries, generated by [[WT:ACCEL]].
 * [[MediaWiki:Gadget-WiktAccFormCreation.js]]
 * Each function has two parameters.
 * params holds the parameters given in the template.
 * entry holds the various parts of the entry to be created.
 * 
 * The function's task is to provide new values for some of the parts of the new entry.
 * In most cases, entry.def (the definition line) will be overridden, but the headword (entry.head)
 * or even the part-of-speech or language headers can be overridden if necessary.
 * 
 * If the function is not able to handle the current form for whatever reason, throw an exception:
 * throw new PreloadTextError();
 */

/* jshint maxerr: 600, sub: true */

window.creation_rules = window.creation_rules || {};

// Generate the entry's text
window.generate_entry = function (params)
{
	try
	{
		var param = params.lang;
		
		if (!creation_rules[param])
			param = 'others';
		
		if (params.pos == 'cardinal number' || params.pos == 'ordinal number')
			pos = 'numeral';
		else
			pos = params.pos;

		if (params.pos.search("[0-9]") > -1) {
			pos_header = 'Formeke ' +  params.pos.replace(/ ([0-9]+)/gi, "ê");
		}else{
			pos_header = 'Formeke ' + params.pos + 'ê';
		}

		if (params.pos.search("[0-9]") > -1) {
			params.pos = params.pos.replace(/ ([0-9]+)/gi, "");
		}
		
		if (params.gender == "m") {
			zayend = "mê";
		}else if (params.gender == "n") {
			zayend = "nêr";
		}	
		
		var entry = {
			pronunc: null,
			pos_header: pos_header,
			head: '{{' + pos.replace(/ ([0-9]+)/gi, "") + '|' + params.lang + '|' + 'form=erê' + (params.target != params.target_pagename ? '|' + params.target : '') + (params.transliteration ? ('|tr=' + params.transliteration) : '') + (params.gender ? ('|z=' + params.gender) : '') + '}}',
			def: null,
			inflection: null,
			declension: null,
			conjugation: null };
		
		creation_rules[param](params, entry);
		
		return entry;
	}
	catch (e)
	{
		if (e instanceof PreloadTextError)
		{
			console.log(e.message);
			return false;
		}
		else
		{
			throw e;
		}
	}
};

// Kurdish
creation_rules['ku'] =
	function (params, entry)
	{
		var formparam = {
			'niha|1|yj': 'forma|niha|ya|1|a|yj',
			'niha|2|yj': 'forma|niha|ya|2|a|yj',		
			'niha|3|yj': 'forma|niha|ya|3|a|yj',	
			'niha|123|p': 'forma|niha|ya|123|ya|p',		
			'fer|yj': 'forma|fer|ya|yj',	
			'fer|p': 'forma|fer|ya|p',
			'borî|1|yj': 'forma|borî|sade|ya|1|a|yj',
			'borî|2|yj': 'forma|borî|sade|ya|2|a|yj',		
			'borî|3|yj': 'forma|borî|sade|ya|3|a|yj',	
			'borî|123|p': 'forma|borî|sade|ya|123|ya|p',		
		};
		entry.def = '{{formeke peyvê|ku|' + params.origin + '||' + formparam[params.form] + '}}';

		var origin_title = params.origin;
		var guharto;
		if (origin_title.endsWith("e")) {
		    guharto = "|guherto=2";
		}else{
			guharto= "";
		}

		switch (params.form)
		{
			case 'def|constr|s':
				entry.head = '{{ku-tew-nav|' + params.origin + '|'+ zayend + '|îzafe|binavkirî' + guharto + '}}\n{{' + params.pos + '|ku|form=erê|z=' + params.gender + '}}';
				entry.def = '{{formeke peyvê|ku|' + params.origin + '||îzafe|ya|binavkirî|ya|yekjimar}}';
				break;
			case 'def|constr|p':
				entry.head = '{{ku-tew-nav|' + params.origin + '|'+ zayend + '|îzafe|binavkirî' + guharto + '}}\n{{' + params.pos + '|ku|form=erê|z=' + params.gender + '}}';
				entry.def = '{{formeke peyvê|ku|' + params.origin + '||îzafe|ya|binavkirî|ya|pirjimar}}';
				break;
			case 'def|obl|s':
				entry.head = '{{ku-tew-nav|' + params.origin + '|'+ zayend + '|çemandî|binavkirî' + guharto + '}}\n{{' + params.pos + '|ku|form=erê|z=' + params.gender + '}}';
				entry.def = '{{formeke peyvê|ku|' + params.origin + '||çemandî|ya|binavkirî|ya|yekjimar}}';
				break;
			case 'def|obl|p':
				entry.head = '{{ku-tew-nav|' + params.origin + '|'+ zayend + '|çemandî|binavkirî' + guharto + '}}\n{{' + params.pos + '|ku|form=erê|z=' + params.gender + '}}';
				entry.def = '{{formeke peyvê|ku|' + params.origin + '||çemandî|ya|binavkirî|ya|pirjimar}}';
				break;
			case 'voc|s':
				entry.head = '{{ku-tew-nav|' + params.origin + '|'+ zayend + '|bangkirin|binavkirî' + guharto + '}}\n{{' + params.pos + '|ku|form=erê|z=' + params.gender + '}}';
				entry.def = '{{formeke peyvê|ku|' + params.origin + '||baneşanî|ya|binavkirî|ya|yekjimar}}';
				break;
			case 'voc|p':
				entry.head = '{{ku-tew-nav|' + params.origin + '|'+ zayend + '|bangkirin|binavkirî' + guharto + '}}\n{{' + params.pos + '|ku|form=erê|z=' + params.gender + '}}';
				entry.def = '{{formeke peyvê|ku|' + params.origin + '||baneşanî|ya|binavkirî|ya|pirjimar}}';
				break;												
			case 'indef|nom|s':
				entry.head = '{{ku-tew-nav|' + params.origin + '|'+ zayend + '|navkî|nebinavkirî' + guharto + '}}\n{{' + params.pos + '|ku|form=erê|z=' + params.gender + '}}';
				entry.def = '{{formeke peyvê|ku|' + params.origin + '||navkî|ya|nebinavkirî|ya|yekjimar}}';
				break;
			case 'indef|nom|p':
				entry.head = '{{ku-tew-nav|' + params.origin + '|'+ zayend + '|navkî|nebinavkirî' + guharto + '}}\n{{' + params.pos + '|ku|form=erê|z=' + params.gender + '}}';
				entry.def = '{{formeke peyvê|ku|' + params.origin + '||navkî|ya|nebinavkirî|ya|pirjimar}}';
				break;												
			case 'indef|constr|s':
				entry.head = '{{ku-tew-nav|' + params.origin + '|'+ zayend + '|îzafe|nebinavkirî' + guharto + '}}\n{{' + params.pos + '|ku|form=erê|z=' + params.gender + '}}';
				entry.def = '{{formeke peyvê|ku|' + params.origin + '||îzafe|ya|nebinavkirî|ya|yekjimar}}';
				break;
			case 'indef|constr|p':
				entry.head = '{{ku-tew-nav|' + params.origin + '|'+ zayend + '|îzafe|nebinavkirî' + guharto + '}}\n{{' + params.pos + '|ku|form=erê|z=' + params.gender + '}}';
				entry.def = '{{formeke peyvê|ku|' + params.origin + '||îzafe|ya|nebinavkirî|ya|pirjimar}}';
				break;
			case 'indef|obl|s':
				entry.head = '{{ku-tew-nav|' + params.origin + '|'+ zayend + '|çemandî|nebinavkirî' + guharto + '}}\n{{' + params.pos + '|ku|form=erê|z=' + params.gender + '}}';
				entry.def = '{{formeke peyvê|ku|' + params.origin + '||çemandî|ya|nebinavkirî|ya|yekjimar}}';
				break;
			case 'indef|obl|p':
				entry.head = '{{ku-tew-nav|' + params.origin + '|'+ zayend + '|çemandî|nebinavkirî' + guharto + '}}\n{{' + params.pos + '|ku|form=erê|z=' + params.gender + '}}';
				entry.def = '{{formeke peyvê|ku|' + params.origin + '||çemandî|ya|nebinavkirî|ya|pirjimar}}';
				break;				

			default:
				entry.head = '{{' + params.pos + '|ku|form=erê}}';
				entry.def = '{{formeke peyvê|ku|' + params.origin + '||' + formparam[params.form] + '}}';
		}
	};
	
// erebî
creation_rules['ar'] =
	function (params, entry)
	{
		switch (params.form)
		{
			case 'mê':
				entry.def = '{{dem2|ar|' + params.origin + '|Forma mê ya yekjimar ji' + '}}';
				break;
			case 'pirjimar':
				entry.def = '{{pirjimar|' + params.lang + '|' + params.origin + '}}';
				break;
			default:
				throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		}
	};

// German
creation_rules['de'] =
	function (params, entry)
	{
		entry.def = '{{' + params.form.replace(/-/g, ' ') + '|'  + params.lang + '|' + params.origin + '}}';
		
		if (params.form == "diminutive")
		{
			entry.declension = "{{de-decl-noun-n|s}}";
			entry.head = "{{de-noun|n|"+params.target+"s|"+params.target+"}}";
		}
		else if (params.form == "zu")
		{
			entry.def = '{{de-zu-infinitive of|' + params.origin + '}}';
		}
	};

// English
creation_rules['en'] =
	function (params, entry)
	{
		switch (params.form)
		{
			case 'comparative':
				entry.head = '{{' + params.pos + '|' + params.lang + '|' +  'form=erê}}';
				entry.def = '{{komparatîv|en|' + params.origin + '}}';
				break;
			case 'superlative':
				entry.head = '{{' + params.pos + '|' + params.lang + '|' +  'form=erê}}';
				entry.def = '{{sûperlatîv|en|' + params.origin + '}}';
				break;
			case '3|s|pres':
				entry.head = '{{lêker|' + params.lang + '|form=erê}}';
				entry.def = '{{en-dema-niha|' + params.origin + '|sêyem|yekjimar}}';
				break;
			case 'pres|ptcp':
				entry.head = '{{lêker|' + params.lang + '|form=erê}}';
				entry.def = '{{partîsîpa niha|' + params.lang + '|' + params.origin + '}}';
				break;
			case 'past':
				entry.head = '{{lêker|' + params.lang + '|form=erê}}';
				entry.def = '{{en-dema-borî-sade|' + params.origin + '}}';
				break;
			case 'past|and|past|ptcp':
				entry.head = '{{lêker|' + params.lang + '|form=erê}}';
				entry.def = '{{en-dema-borî|' + params.origin + '}}';
				break;
			case 'past|ptcp':
				entry.head = '{{lêker|' + params.lang + '|form=erê}}';
				entry.def = '{{partîsîpa borî|' + params.lang + '|' + params.origin + '}}';
				break;
			case 'p':
				entry.head = '{{navdêr|' + params.lang + '|form=erê}}';
				entry.def = '{{pirjimar|' + params.lang + '|' + params.origin + '}}';
				break;
			case 'plural of':
				entry.head = '{{serenav|' + params.lang + '|form=erê}}';
				entry.def = '{{pirjimar|' + params.lang + '|' + params.origin + '}}';
				break;
			default:
				throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		}
	};

// Esperanto
creation_rules['eo'] =
	function (params, entry)
	{
		var template = {
			'navkî|y': 'Forma [[navkî]] ya yekjimar ji',
			'navkî|p': 'Forma [[navkî]] ya pirjimar ji',
			'akûzatîv|y': 'Forma [[akûzatîv]] ya yekjimar ji',
			'akûzatîv|p': 'Forma [[akûzatîv]] ya pirjimar ji',
			'xwedîtî|y': 'Forma [[xwedîtî|xwedîtiyê]] ya yekjimar ji',
			'xwedîtî|p': 'Forma [[xwedîtî|xwedîtiyê]] ya pirjimar ji',
			'AX|y': 'Forma [[akûzatîv]] û [[xwedîtî|xwedîtiyê]] ya yekjimar ji',
			'AX|p': 'Forma [[akûzatîv]] û [[xwedîtî|xwedîtiyê]] ya pirjimar ji',
			'pêşkerî|niha': 'Forma radera [[pêşkerî]] ya [[dema niha]] ji',
			'pêşkerî|borî': 'Forma radera [[pêşkerî]] ya [[dema borî]] ji',
			'pêşkerî|bê': 'Forma radera [[pêşkerî]] ya [[dema bê]] ji',
			'ptcpA|niha': 'Forma [[partîsîp]]a aktîv ya [[dema niha]] ji',
			'ptcpA|borî': 'Forma [[partîsîp]]a aktîv ya [[dema borî]] ji',
			'ptcpA|bê': 'Forma [[partîsîp]]a aktîv ya [[dema bê]] ji',
			'ptcpP|niha': 'Forma [[partîsîp]]a pasîv ya [[dema niha]] ji',
			'ptcpP|borî': 'Forma [[partîsîp]]a pasîv ya [[dema borî]] ji',
			'ptcpP|bê': 'Forma [[partîsîp]]a pasîv ya [[dema bê]] ji',
			'niha|mercî': 'Forma [[mercî]] ji',
			'niha|fermanî': 'Forma [[fermanî]] ji'
		};
		
		if (!template[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		entry.def = '{{dem2|' + params.lang + '|' + params.origin + '|' + template[params.form] + '}}';
	};

// Spanish
creation_rules['es'] =
	function (params, entry)
	{
		var template = {
			'plural':'plural of',
			'masculine-plural': 'masculine plural of',
			'feminine-singular':'feminine singular of',
			'feminine-plural': 'feminine plural of'};
		
		if (!template[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// farisî
creation_rules['fa'] =
	function (params, entry)
	{
		var formparam = {
			'comparative': 'komparatîv',
			'superlative': 'sûperlatîv',
			'pirjimar': 'pirjimar'};
		
		if (!formparam[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		entry.def = '{{' + formparam[params.form] + '|fa' + '|' + params.origin + (params.origin_transliteration ? ('|tr=' + params.origin_transliteration) : '') + '}}';
	};

// Finnish
creation_rules['fi'] =
	function (params, entry)
	{
		var headparam = {};
		var formparam = {
			'plural-nominative':'case=nominative|pl=plural',
			'singular-genitive':'case=genitive|pl=singular',
			'plural-genitive':'case=genitive|pl=plural',
			'singular-partitive':'case=partitive|pl=singular',
			'plural-partitive':'case=partitive|pl=plural',
			'singular-inessive':'case=inessive|pl=singular',
			'plural-inessive':'case=inessive|pl=plural',
			'singular-elative':'case=elative|pl=singular',
			'plural-elative':'case=elative|pl=plural',
			'singular-illative':'case=illative|pl=singular',
			'plural-illative':'case=illative|pl=plural',
			'singular-adessive':'case=adessive|pl=singular',
			'plural-adessive':'case=adessive|pl=plural',
			'singular-ablative':'case=ablative|pl=singular',
			'plural-ablative':'case=ablative|pl=plural',
			'singular-allative':'case=allative|pl=singular',
			'plural-allative':'case=allative|pl=plural',
			'singular-essive':'case=essive|pl=singular',
			'plural-essive':'case=essive|pl=plural',
			'singular-translative':'case=translative|pl=singular',
			'plural-translative':'case=translative|pl=plural',
			'plural-instructive':'case=instructive|pl=plural',
// 			'plural-comitative':'case=comitative|pl=plural', // needs alt forms
			'singular-abessive':'case=abessive|pl=singular',
			'plural-abessive':'case=abessive|pl=plural'};

		if (!formparam[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
        entry.head = '{{head|' + params.lang + '|' + (headparam[params.form] || params.pos + ' form') + '}}';
		entry.def = '{{fi-form of|' + params.origin + '|' + formparam[params.form] + '}}';
	};

// French
creation_rules['fr'] =
	function (params, entry)
	{
		var template = {
			'pirjimar':'pirjimar',
			'masculine-plural': 'masculine plural of',
			'feminine-singular':'feminine singular of',
			'feminine-plural': 'feminine plural of'};
		
		if (!template[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		if (params.pos == 'navdêr' && params.form == 'forma pirjimar')
			entry.head = '{{navdêr|' + params.lang + '|form=erê}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.lang + '|' + params.origin + '}}';
	};

// Italian
creation_rules['it'] =
	function (params, entry)
	{
		var template = {
			'pirjimar':'pirjimar',
			'masculine-plural': 'masculine plural of',
			'feminine-singular':'feminine singular of',
			'feminine-plural': 'feminine plural of'};
		
		if (!template[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		entry.def = '{{' + template[params.form] + '|' + params.lang + '|' + params.origin + '}}';
	};

// Turkish
creation_rules['tr'] =
	function (params, entry)
	{
		var formparam = {
			'definite-plural':'def|p',
			'definite-accusative':'def|acc|s',
			'plural-definite-accusative':'def|acc|p',
			'dative':'dat|s',
			'plural-dative':'dat|p',
			'locative':'loc|s',
			'plural-locative':'loc|p',
			'ablative':'abl|s',
			'plural-ablative':'abl|p',
			'genitive':'def|gen|s',
			'plural-genitive':'def|gen|p'};
		
		if (!formparam[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		entry.def = '{{formeke peyvê|' + params.origin + '||' + formparam[params.form] + '|lang=' + params.lang + '}}';
	};

// Others
creation_rules['others'] =
	function (params, entry)
	{
		params.form = params.form.replace(/-/g, ' ');
		params.form += '';
		
		entry.def = '{{' + params.form + '|' + params.lang + '|' + params.origin + '}}';
	};

// </nowiki>