Gebruiker:Annabel/Kladblok/User:Conrad.Irwin/creationrules.js

Let op! Nadat u de veranderingen heeft opgeslagen, moet u de cache van uw browser nog legen om ze daadwerkelijk te zien.

Mozilla (incl. Firefox) Ctrl+Shift+R
Internet Explorer Ctrl+F5
Opera F5
Safari Cmd+R
Konqueror F5
//<br />
//<nowiki>This prevents the parser from processing the file and generating transclusions and categories for it.

/*
 * Language-specific entry generation rules for form-of entries, generated by [[WT:ACCEL]].
 * 
 * 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();
 */

window.creation_rules = {};

// Generate the entry's text
window.get_preload_text = 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;
		
		var entry = {
			lang_header: '{{subst:#invoke:languages/templates|getByCode|' + params.lang + '|getCanonicalName}}',
			pronunc: null,
			pos_header: params.pos.charAt(0).toUpperCase() + params.pos.substr(1),
			head: '{{head|' + params.lang + '|' + pos + ' form' + (params.target != params.target_pagename ? '|head=' + params.target : '') + (params.transliteration ? ('|tr=' + params.transliteration) : '') + '}}',
			def: null,
			inflection: null,
			declension: null,
			conjugation: null };
		
		creation_rules[param](params, entry);
		
		entry_text =
			'==' + entry.lang_header + '==' +
			(entry.pronunc ? '\n\n===Pronunciation===\n' + entry.pronunc : '') +
			'\n\n===' + entry.pos_header + '===' +
			'\n' + entry.head +
			'\n\n' + '# ' + entry.def +
			(entry.inflection ? '\n\n====Inflection====\n' + entry.inflection : '') +
			(entry.declension ? '\n\n====Declension====\n' + entry.declension : '') +
			(entry.conjugation ? '\n\n====Conjugation====\n' + entry.conjugation : '');
		
		return entry_text;
	}
	catch (e)
	{
		if (e instanceof PreloadTextError)
		{
			console.log(e.message);
			return false;
		}
		else
		{
			throw e;
		}
	}
};

// Afrikaans
creation_rules['af'] =
	function (params, entry)
	{
		var template = {
			'plural':'plural of',
			'diminutive': 'diminutive of',
			'present-participle':'present participle of',
			'past-participle':'past participle of'};
		
		if (!template[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		switch (params.form)
		{
			case 'plural':
				entry.head = '{{head|' + params.lang + '|noun plural form}}';
				break;
			case 'diminutive':
				entry.head = '{{af-noun|s}}';
				break;
			default:
				entry.head = '{{head|' + params.lang + '|' + params.form.replace(/-/g, ' ') + '}}';
		}
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + (params.origin_transliteration ? '|tr=' + params.origin_transliteration : '') + '|lang=' + params.lang + '}}';
	};

// Asturian
creation_rules['ast'] =
	function (params, entry)
	{
		var template = {
			'plural':'plural of',
			'masculine-plural': 'masculine plural of',
			'feminine-singular':'feminine singular of',
			'feminine-plural': 'feminine plural of',
			'neuter':'neuter 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 + '}}';
	};

// Azeri
creation_rules['az'] =
	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 = '{{inflection of|' + params.origin + '||' + formparam[params.form] + '|lang=' + params.lang + '}}';
	};

// Bulgarian
creation_rules['bg'] =
	function (params, entry)
	{
		var formparam = {
			'singular-definite':'singular|definite',
			'singular-definite-subject':'singular|definite|subject',
			'singular-definite-object':'singular|definite|object',
			'plural-indefinite': 'plural|indefinite',
			'plural-definite': 'plural|definite',
			'count': 'count',
			'vocative': 'vocative'};
		
		if (!formparam[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		entry.def = '{{bg-noun form of|' + formparam[params.form] + '|noun=' + params.origin + '}}';
	};

// Catalan
creation_rules['ca'] =
	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 + '}}';
	};

// Mandarin pinyin
creation_rules['cmn'] =
	function (params, entry)
	{
		switch (params.form)
		{
			case 'pinyin-ts':
				entry.pos_header = 'Romanization';
				entry.head = '{{cmn-pinyin}}';
				entry.def = '{{pinyin reading of|' + params.origin + '}}';
				break;
			case 'pinyin-t':
				entry.pos_header = 'Romanization';
				entry.head = '{{cmn-pinyin}}';
				// the simplified form is passed through the gender parameter
				entry.def = '{{pinyin reading of|' + params.origin + '|' + params.transliteration + '}}';
				break;
			case 'pinyin-s':
				entry.pos_header = 'Romanization';
				entry.head = '{{cmn-pinyin}}';
				// the traditional form is passed through the gender parameter
				entry.def = '{{pinyin reading of|' + params.transliteration + '|' + params.origin + '}}';
				break;
			default:
				throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		}
	};

// Welsh
creation_rules['cy'] =
	function (params, entry)
	{
		var template = {
			'feminine-singular': 'feminine singular of',
			'plural': 'plural of',
			'equative': 'equative of',
			'comparative': 'comparative of',
			'superlative': 'superlative of',
			'nasal': 'nasal mutation of',
			'soft': 'soft mutation of',
			'aspirate': 'aspirate mutation of',
			'h-prothesis': 'h-prothesis of'
		};

		if (!template[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		if (params.pos == 'noun' && params.form == 'plural'){
			entry.head = '{{head|cy|noun plural form}}';
			entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=cy}}\n\n===Mutation===\n{{cy-mut-auto}}';
		}else if(params.form == 'nasal' || params.form == 'soft' || params.form == 'aspirate' || params.form == 'h-prothesis'){
			entry.head = '{{head|cy|mutated '+params.pos+'}}';
			entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=cy}}\n\n===Mutation===\n{{cy-mut-auto|' + params.origin + '}}';
		}else{
			entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=cy}}\n\n===Mutation===\n{{cy-mut-auto}}';
		}
	};

// Danish
creation_rules['da'] =
	function (params, entry)
	{
		var template = {
			'singular-definite':'singular definite of',
			'plural-indefinite': 'plural indefinite of',
			'plural-definite': 'plural definite of',
			
			'genitive-singular-indefinite':'genitive singular definite of',
			'genitive-singular-definite':'genitive singular definite of',
			'genitive-plural-indefinite': 'genitive plural indefinite of',
			'genitive-plural-definite': 'genitive plural definite of',
			
			'imperative':'imperative of',
			'present':'present tense of',
			'past':'past tense of',
			'past-participle':'past participle of'};
		
		if (!template[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		if (params.form == "imperative")
			entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '|nocat=1}}';
		else
			entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

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

// English
creation_rules['en'] =
	function (params, entry)
	{
		switch (params.form)
		{
			case 'comparative':
				entry.head = '{{head|' + params.lang + '|' + params.pos + ' comparative form}}';
				entry.def = '{{en-comparative of|' + params.origin + (params.pos != 'adjective' ? '|POS=' + params.pos : '') + '}}';
				break;
			case 'superlative':
				entry.head = '{{head|' + params.lang + '|' + params.pos + ' superlative form}}';
				entry.def = '{{en-superlative of|' + params.origin + (params.pos != 'adjective' ? '|POS=' + params.pos : '') + '}}';
				break;
			case 'third-person-singular':
				entry.head = '{{head|' + params.lang + '|verb form}}';
				entry.def = '{{en-third-person singular of|' + params.origin + '}}';
				break;
			case 'present-participle':
				entry.head = '{{head|' + params.lang + '|present participle}}';
				entry.def = '{{present participle of|' + params.origin + '|lang=' + params.lang + '}}';
				break;
			case 'simple-past':
				entry.head = '{{head|' + params.lang + '|verb form}}';
				entry.def = '{{en-simple past of|' + params.origin + '}}';
				break;
			case 'simple-past-and-participle':
				entry.head = '{{head|' + params.lang + '|verb form}}';
				entry.def = '{{en-past of|' + params.origin + '}}';
				break;
			case 'past-participle':
				entry.head = '{{head|' + params.lang + '|past participle}}';
				entry.def = '{{past participle of|' + params.origin + '|lang=' + params.lang + '}}';
				break;
			case 'plural':
				entry.head = '{{head|' + params.lang + '|noun plural form}}';
				entry.def = '{{plural of|' + params.origin + '|lang=' + params.lang + '}}';
				break;
			case 'proper-noun-plural':
				entry.head = '{{head|' + params.lang + '|proper noun plural form}}';
				entry.def = '{{plural of|' + params.origin + '|lang=' + params.lang + '}}';
				break;
			default:
				throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		}
	};

// Esperanto
creation_rules['eo'] =
	function (params, entry)
	{
		var stem = params.origin.substr(0, params.origin.length - 1);
		var ending = params.origin.substr(params.origin.length - 1);
		
		if (ending != 'o' && ending != 'a')
			throw new PreloadTextError('The Esperanto word "' + params.origin + '" does not end in -o or -a.');
		
		var formparam = {
			'uncountable-accusative':'n|unc=yes',
			'plural'                :'j' + (params.pos == 'proper noun' ? '-proper' : ''),
			'accusative'            :'n' + (params.pos == 'proper noun' ? '-properpl' : ''),
			'accusative-plural'     :'jn' + (params.pos == 'proper noun' ? '-properpl' : '')};
		
		if (!formparam[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		if (params.pos != 'proper noun')
			entry.head = '{{eo-head}}';
		
		entry.def = '{{eo-form of|' + stem + '|' + ending + formparam[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 + '}}';
	};

// Persian
creation_rules['fa'] =
	function (params, entry)
	{
		var formparam = {
			'comparative':'c',
			'superlative':'s'};
		
		if (!formparam[params.form] || params.pos != 'adjective')
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		entry.def = '{{fa-adj form of|' + formparam[params.form] + '|' + params.origin + '}}';
	};

// French
creation_rules['fr'] =
	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 + '".');
		
		if (params.pos == 'noun' && params.form == 'plural')
			entry.head = '{{head|' + params.lang + '|noun plural form}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Middle French
creation_rules['frm'] =
	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 + '".');
		
		if (params.pos == 'noun' && params.form == 'plural')
			entry.head = '{{head|' + params.lang + '|noun plural form}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Scottish Gaelic
creation_rules['gd'] =
	function (params, entry)
	{
		switch (params.form)
		{
			case 'plural':
				entry.def = '{{plural of|' + params.origin + '|lang=' + params.lang + '}}';
				break;
			case 'genitive':
				entry.def = '{{genitive singular of|' + params.origin + '|lang=' + params.lang + '}}';
				break;
			case 'genitive-and-plural':
				entry.def =
					'{{genitive singular of|' + params.origin + '|lang=' + params.lang + '}}' +
					'\n# {{plural of|' + params.origin + '|lang=' + params.lang + '}}';
				break;
			default:
				throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		}
	};

// Galician
creation_rules['gl'] =
	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 + '}}';
	};

// Manx
creation_rules['gv'] =
	function (params, entry)
	{
		var template = {
			'plural':'plural of',
			'genitive':'genitive singular 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 + '}}';
	};

// Hebrew
creation_rules['he'] =
	function (params, entry)
	{
		var formparam = {
			'plural':'|n=p|s=i',
			'construct':'|n=s|s=c',
			'plural-construct':'|n=p|s=c'};
		
		if (!formparam[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		entry.def = '{{he-Form of noun|' + params.origin_pagename + (params.origin != params.origin_pagename ? '|wv=' + params.origin : '') + formparam[params.form] + '}}';
	};

// Hungarian
creation_rules['hu'] =
	function (params, entry)
	{
		if (params.form == 'comparative' || params.form == 'superlative')
		{
			entry.head = '{{head|' + params.lang + '|' + params.pos + ' ' + params.form + ' form}}';
			entry.def = '{{' + params.form + ' of' + (params.pos != 'adjective' ? '|POS=' + params.pos : '') + '|' + params.origin + '|lang=' + params.lang + '}}';
		}
		else
		{
			var formparam = {
				'nominative-singular' : 'nom|s',
				'accusative-singular' : 'acc|s',
				'dative-singular' : 'dat|s',
				'instrumental-singular' : 'ins|s',
				'causal-final-singular' : 'cfin|s',
				'translative-singular' : 'tran|s',
				'terminative-singular' : 'term|s',
				'essive-formal-singular' : 'efor|s',
				'essive-modal-singular' : 'emod|s',
				'inessive-singular' : 'ine|s',
				'superessive-singular' : 'spe|s',
				'adessive-singular' : 'ade|s',
				'illative-singular' : 'ill|s',
				'sublative-singular' : 'sbl|s',
				'allative-singular' : 'all|s',
				'elative-singular' : 'ela|s',
				'delative-singular' : 'del|s',
				'ablative-singular' : 'abl|s',
				
				'nominative-plural' : 'nom|p',
				'accusative-plural' : 'acc|p',
				'dative-plural' : 'dat|p',
				'instrumental-plural' : 'ins|p',
				'causal-final-plural' : 'cfin|p',
				'translative-plural' : 'tran|p',
				'terminative-plural' : 'term|p',
				'essive-formal-plural' : 'efor|p',
				'essive-modal-plural' : 'emod|p',
				'inessive-plural' : 'ine|p',
				'superessive-plural' : 'spe|p',
				'adessive-plural' : 'ade|p',
				'illative-plural' : 'ill|p',
				'sublative-plural' : 'sbl|p',
				'allative-plural' : 'all|p',
				'elative-plural' : 'ela|p',
				'delative-plural' : 'del|p',
				'ablative-plural' : 'abl|p'
			};
			
			if (!formparam[params.form])
				throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
			
			entry.def = '{{inflection of|' + params.origin + '||' + formparam[params.form] + '|lang=' + params.lang + '}}';
		}
	};

// Ido
creation_rules['io'] =
	function (params, entry)
	{
		var template = {
			'plural':'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 + '}}';
	};

// Italian
creation_rules['it'] =
	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 + '}}';
	};

// Japanese
creation_rules['ja'] =
	function (params, entry)
	{
		switch (params.form)
		{
			case 'romanized':
				entry.pos_header = 'Romanization';
				entry.head = '{{ja-romaji}}';
				entry.def = '{{ja-romanization of|' + params.origin + '}}';
				break;
			case 'kana-noun':
				entry.pos_header = 'Noun';
				if (params.transliteration)
					entry.head = '{{ja-noun|' + params.transliteration.replace(/-/g," ") + '}}';
				else
					entry.head = '{{ja-noun}}';
				entry.def = '{{ja-def|' + params.origin + '}} [insert definition here]';
				break;
			case 'kana-proper-noun':
				entry.pos_header = 'Proper noun';
				if (params.transliteration)
					entry.head = '{{ja-pos|proper|' + params.transliteration.replace(/-/g," ") + '}}';
				else
					entry.head = '{{ja-pos|proper}}';
				entry.def = '{{ja-def|' + params.origin + '}} [insert definition here]';
				break;
			case 'kana-verb':
				entry.pos_header = 'Verb';
				if (params.transliteration)
					entry.head = '{{ja-verb|' + params.transliteration.replace(/-/g," ") + '}}';
				else
					entry.head = '{{ja-verb}}';
				entry.def = '{{ja-def|' + params.origin + '}} [insert definition here]';
				break;
			case 'kana-adjective':
				entry.pos_header = 'Adjective';
				if (params.transliteration)
					entry.head = '{{ja-adj|' + params.transliteration.replace(/-/g," ") + '}}';
				else
					entry.head = '{{ja-adj}}';
				entry.def = '{{ja-def|' + params.origin + '}} [insert definition here]';
				break;
			case 'kana-adverb':
				entry.pos_header = 'Adverb';
				if (params.transliteration)
					entry.head = '{{ja-pos|adverb|' + params.transliteration.replace(/-/g," ") + '}}';
				else
					entry.head = '{{ja-pos|adverb}}';
				entry.def = '{{ja-def|' + params.origin + '}} [insert definition here]';
				break;
			default:
				throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		}
	};

// Kurdish
creation_rules['ku'] =
	function (params, entry)
	{
		var template = {
			'comparative':'comparative of',
			'superlative':'superlative of'};
		
		if (!template[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		entry.head = '{{head|' + params.lang + '|' + params.pos + ' ' + params.form + ' form}}';
		entry.def = '{{' + template[params.form] + (params.pos != 'adjective' ? '|POS=' + params.pos : '') + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Neapolitan
creation_rules['nap'] =
	function (params, entry)
	{
		var template = {
			'plural': 'plural of',
			'feminine-singular': 'feminine singular of',
			'masculine-plural': 'masculine plural 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 == 'noun' && params.form == 'plural')
			entry.head = '{{head|' + params.lang + '|noun plural form}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Classical Nahuatl
creation_rules['nci'] =
	function (params, entry)
	{
		var template = {
			'plural':'plural of'};
		
		if (!template[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		entry.head = '{{head|' + params.lang + '|noun plural form' + (params.target != params.target_pagename ? '|head=' + params.target : '') + '}}';
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Dutch
creation_rules['nl'] =
	function (params, entry)
	{
		switch (params.form)
		{
			case 'plural':
				entry.head = '{{head|nl|noun plural form}}';
				entry.def = '{{nl-noun form of|pl|' + params.origin + '}}';
				break;
			case 'diminutive':
				entry.head = '{{nl-noun-dim}}';
				entry.def = '{{nl-noun form of|dim|' + params.origin + '}}';
				break;
			default:
				throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		}
	};

// Norwegian
creation_rules['no'] =
	function (params, entry)
	{
		var template = {
			'singular-definite':'singular definite of',
			'plural-indefinite': 'plural indefinite of',
			'plural-definite': 'plural definite of',
			
			'genitive-singular-indefinite':'genitive singular definite of',
			'genitive-singular-definite':'genitive singular definite of',
			'genitive-plural-indefinite': 'genitive plural indefinite of',
			'genitive-plural-definite': 'genitive plural definite of',
			
			'imperative':'imperative of',
			'present':'present tense of',
			'past':'past tense of',
			'past-participle':'past participle of'};
		
		if (!template[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		if (params.form == "imperative")
			entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '|nocat=1}}';
		else
			entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	}

// Bokmål and Nynorsk
creation_rules['nb'] = creation_rules['no']
creation_rules['nn'] = creation_rules['no']

// Occitan
creation_rules['oc'] =
	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 + '".');
		
		if (params.pos == 'noun' && params.form == 'plural')
			entry.head = '{{head|' + params.lang + '|noun plural form}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Polish
creation_rules['pl'] =
	function (params, entry)
	{
		var template = {
			'comparative':'comparative of',
			'superlative':'superlative of'};
		
		if (!template[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		entry.head = '{{head|' + params.lang + '|' + params.pos + ' ' + params.form + ' form}}';
		entry.def = '{{' + template[params.form] + (params.pos != 'adjective' ? '|POS=' + params.pos : '') + '|' + params.origin + '|lang=' + params.lang + '}}';
		entry.pronunc = '* {{pl-IPA-auto}}';
		if (params.pos === 'adjective')
			entry.declension = '{{pl-decl-adj-auto}}'
	};

// Portuguese
creation_rules['pt'] =
	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 + '}}';
	};

// Romansch
creation_rules['rm'] =
	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 + '".');
		
		if (params.pos == 'noun' && params.form == 'plural')
			entry.head = '{{head|' + params.lang + '|noun plural form}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Romanian
creation_rules['ro'] =
	function (params, entry)
	{
		var template = {
			'plural':'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 + '}}';
	};

// Gallo
creation_rules['roa-gal'] =
	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 + '".');
		
		if (params.pos == 'noun' && params.form == 'plural')
			entry.head = '{{head|' + params.lang + '|noun plural form}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Guernésiais
creation_rules['roa-grn'] =
	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 + '".');
		
		if (params.pos == 'noun' && params.form == 'plural')
			entry.head = '{{head|' + params.lang + '|noun plural form}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Jèrriais
creation_rules['roa-jer'] =
	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 + '".');
		
		if (params.pos == 'noun' && params.form == 'plural')
			entry.head = '{{head|' + params.lang + '|noun plural form}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Norman
creation_rules['roa-nor'] =
	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 + '".');
		
		if (params.pos == 'noun' && params.form == 'plural')
			entry.head = '{{head|' + params.lang + '|noun plural form}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Russian
creation_rules['ru'] =
	function (params, entry)
	{
		var template = {
			'comparative':'comparative of',
		}
		
		if (!template[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		if (params.pos == 'adverb' && params.form == 'comparative')
			entry.head = '{{ru-adv|' + params.target + '}}';
		
		entry.def = '{{' + template[params.form] + (params.pos != 'adjective' ? '|POS=' + params.pos : '') + '|' + params.origin + '|lang=' + params.lang + '}}';
		entry.pronunc = '* {{ru-IPA|' + params.target + '}}';
	}

// Sicilian
creation_rules['scn'] =
	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 + '".');
		
		if (params.pos == 'noun' && params.form == 'plural')
			entry.head = '{{head|' + params.lang + '|noun plural form}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Northern Sami
creation_rules['se'] =
	function (params, entry)
	{
		switch (params.form)
		{
			case 'comparative':
			case 'superlative':
				entry.head = '{{head|' + params.lang + "|" + params.pos + ' ' + params.form + ' form}}';
				
				// If there is a comma in the head, assume it has multiple accented variants.
				// Add a link with an alternative display form instead.
				entry.def =
					'{{' + params.form + ' of' +
					(params.pos != 'adjective' ? '|POS=' + params.pos : '') +
					'|' + params.origin +
					'|lang=' + params.lang + '}}';
				
				// If it's an adjective, add an inflection table request
				if (params.pos == 'adjective')
					entry.inflection = '{{rfinfl|' + params.lang + '|adjective}}';
				
				break;
			default:
				throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		}
	}

// Slovene
creation_rules['sl'] =
	function (params, entry)
	{
		switch (params.form)
		{
			case 'comparative':
			case 'superlative':
				entry.pronunc = '{{rfp|lang=sl}}';
				entry.head = '{{sl-' + (params.pos == 'adverb' ? 'adv' : 'adj') + '-' + (params.form == 'comparative' ? 'comp' : 'sup') + '|' + params.target + '}}';
				
				// If there is a comma in the head, assume it has multiple accented variants.
				// Add a link with an alternative display form instead.
				entry.def =
					'{{' + params.form + ' of' +
					(params.pos != 'adjective' ? '|POS=' + params.pos : '') +
					(params.origin.indexOf(',') != -1 ? '|' + params.origin_pagename : '') +
					'|' + params.origin +
					'|lang=sl}}';
				
				// If it's an adjective, add a declension table
				if (params.pos == 'adjective')
				{
					var stem = params.target.substr(0, params.target.length - 1);
					var ending = params.target.substr(params.target.length - 1);
					
					// Adjective comparatives and superlatives must always end in -i
					if (ending != 'i')
						throw new PreloadTextError('The Slovene comparative/superlative "' + params.target + '" does not end in -i.');
					entry.declension = '{{sl-decl-adj|' + stem + '|def=1}}';
				}
				break;
			default:
				throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		}
	}

// Swedish
creation_rules['sv'] =
	function (params, entry)
	{
		var template = {
			'positive/n':'sv-adj-form-abs-indef-n',
			'positive/m':'sv-adj-form-abs-def-m',
			'positive-definite/':'sv-adj-form-abs-def',
			'positive-plural/':'sv-adj-form-abs-pl',
			'comparative/':'sv-' + (params.pos == 'adjective' ? 'adj' : 'adv') + '-form-comp',
			'superlative-attributive/m':'sv-adj-form-sup-attr-m',
			'superlative-attributive-definite/':'sv-adj-form-sup-attr',
			'superlative-attributive-plural/':'sv-adj-form-sup-attr-pl',
			'superlative-predicative/':'sv-adj-form-sup-pred',
			'superlative/':'sv-adv-form-sup'};
		
		if (!template[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		entry.def = '{{' + template[params.form + '/' + params.gender] + '|' + params.origin + '}}';
	}

// Swahili
creation_rules['sw'] =
	function (params, entry)
	{
		var template = {
			'plural':'plural of'};
		
		if (!template[params.form])
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		entry.head = '{{head|' + params.lang + '|noun plural form}}';
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Tajik
creation_rules['tg'] =
	function (params, entry)
	{
		var formparam = {
			'comparative':'c',
			'superlative':'s'};
		
		if (!formparam[params.form] || params.pos != 'adjective')
			throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		
		entry.def = '{{tg-adj form of|' + formparam[params.form] + '|' + 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 = '{{inflection of|' + params.origin + '||' + formparam[params.form] + '|lang=' + params.lang + '}}';
	}

// Venetian
creation_rules['vec'] =
	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 + '".');
		
		if (params.pos == 'noun' && params.form == 'plural')
			entry.head = '{{head|' + params.lang + '|noun plural form}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Volapük
creation_rules['vo'] =
	function (params, entry)
	{
		entry.def = '{{inflection of|' + params.origin + '||' + params.form.replace(/-/g, '|') + '|lang=' + params.lang + '}}';
	};

// Walloon
creation_rules['wa'] =
	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 + '".');
		
		if (params.pos == 'noun' && params.form == 'plural')
			entry.head = '{{head|' + params.lang + '|noun plural form}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Yiddish
creation_rules['yi'] =
	function (params, entry)
	{
		switch (params.form)
		{
			case 'plural':
				entry.head = '{{head|' + params.lang + '|noun plural form' + (params.transliteration ? '|tr=' + params.transliteration : '') + '}}';
				entry.def = '{{plural of|' + params.origin + (params.origin_transliteration ? '|tr=' + params.origin_transliteration : '') + '|lang=' + params.lang + '}}';
				break;
			case 'past-participle':
				entry.head = '{{head|' + params.lang + '|past participle' + (params.transliteration ? '|tr=' + params.transliteration : '') + '}}';
				entry.def = '{{past participle of|' + params.origin + (params.origin_transliteration ? '|tr=' + params.origin_transliteration : '') + '|lang=' + params.lang + '}}';
				break;
			case 'inflected':
				entry.head = '{{head|' + params.lang + '|' + params.pos + ' form' + (params.transliteration ? '|tr=' + params.transliteration : '') + '}}';
				entry.def = '{{yi-inflected form of|' + params.origin + (params.origin_transliteration ? '|tr=' + params.origin_transliteration : '') + '}}';
				break;
			default:
				throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		}
	};

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

//This prevents the parser from processing the file and generating transclusions and categories for it.</nowiki>