User:Jimregan/creationrules.js

Note – after saving, you may have to bypass your browser’s cache to see the changes.

  • Mozilla / Firefox / Safari: hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (Command-R on a Macintosh);
  • Konqueror and Chrome: click Reload or press F5;
  • Opera: clear the cache in Tools → Preferences;
  • Internet Explorer: hold Ctrl while clicking Refresh, or press Ctrl-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
	{
		if (!creation_rules[params.lang])
			return false;
		
		var entry = {
			lang_header: '<strong class="error"><span class="scribunto-error" id="mw-scribunto-error-0">Lua error in Module:languages/templates at line 28: The language code "' + params.lang + '" is not valid.</span></strong>',
			pronunc: null,
			pos_header: params.pos.charAt(0).toUpperCase() + params.pos.substr(1),
			head: '{{head|' + params.lang + '|' + params.pos + ' form' + (params.target != params.target_pagename ? '|head=' + params.target : '') + (params.transliteration ? ('|tr=' + params.transliteration) : '') + '}}',
			def: null,
			declension: null,
			conjugation: null };
		
		creation_rules[params.lang](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.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 + '|plural}}';
				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 + '|lang=' + params.lang + '}}';
	};

// Asturian
creation_rules['ast'] =
	function (params, entry)
	{
		var template = {
			'plural':'plural of',
			'masculine-plural': 'masculine plural of',
			'feminine':'feminine 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':'definite|p',
			'definite-accusative':'definite|acc|s',
			'plural-definite-accusative':'definite|acc|p',
			'dative':'dat|s',
			'plural-dative':'dat|p',
			'locative':'loc|s',
			'plural-locative':'loc|p',
			'ablative':'abl|s',
			'plural-ablative':'abl|p',
			'genitive':'definite|gen|s',
			'plural-genitive':'definite|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':'feminine 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 + '".');
		}
	};

// 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 + '".');
		
		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 + '}}';
	};

// 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 + '|verb form}}';
				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 + '|verb form}}';
				entry.def = '{{past participle of|' + params.origin + '|lang=' + params.lang + '}}';
				break;
			case 'plural':
				entry.head = '{{head|' + params.lang + '|plural}}';
				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':'feminine 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':'feminine 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 + '|plural}}';
		
		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':'feminine 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 + '|plural}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

// Irish
creation_rules['ga'] =
	function (params, entry)
	{
		switch (params.form)
		{
			case 'plural':
				entry.def = '{{plural of|' + params.origin + '|lang=' + params.lang + '}}';
				break;
			case 'genitive':
				entry.def = '{{genitive of|' + params.origin + '|lang=' + params.lang + '}}';
				break;
			case 'genitive-and-plural':
				entry.def =
					'{{genitive 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 + '".');
		}
	};

// 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 of|' + params.origin + '|lang=' + params.lang + '}}';
				break;
			case 'genitive-and-plural':
				entry.def =
					'{{genitive 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':'feminine 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 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' : 'sup|s',
				'adessive-singular' : 'ade|s',
				'illative-singular' : 'ill|s',
				'sublative-singular' : 'sub|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' : 'sup|p',
				'adessive-plural' : 'ade|p',
				'illative-plural' : 'ill|p',
				'sublative-plural' : 'sub|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 = '{{hu-inflection of' + (params.pos != 'noun' ? '|pos=' + params.pos : '') + '|' + params.origin + '|' + formparam[params.form] + '}}';
		}
	};

// 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 + '}}';
	};

// 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';
				entry.head = '{{ja-noun}}';
				entry.def = '{{ja-def|' + params.origin + '}} ';
				break;
			case 'kana-proper-noun':
				entry.pos_header = 'Proper noun';
				entry.head = '{{ja-pos|proper}}';
				entry.def = '{{ja-def|' + params.origin + '}} ';
				break;
			case 'kana-verb':
				entry.pos_header = 'Verb';
				entry.head = '{{ja-verb}}';
				entry.def = '{{ja-def|' + params.origin + '}} ';
				break;
			case 'kana-adjective':
				entry.pos_header = 'Adjective';
				entry.head = '{{ja-adj}}';
				entry.def = '{{ja-def|' + params.origin + '}} ';
				break;
			case 'kana-adverb':
				entry.pos_header = 'Adverb';
				entry.head = '{{ja-pos|adverb}}';
				entry.def = '{{ja-def|' + params.origin + '}} ';
				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 + '}}';
	};

// 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 + '|plural' + (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 + '".');
		
		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':'feminine 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 + '|plural}}';
		
		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':'feminine 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':'feminine 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 + '|plural}}';
		
		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':'feminine 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 + '|plural}}';
		
		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':'feminine 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 + '|plural}}';
		
		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':'feminine 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 + '|plural}}';
		
		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':'feminine 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 + '|plural}}';
		
		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 + '}}';
	}

// Sicilian
creation_rules['scn'] =
	function (params, entry)
	{
		var template = {
			'plural':'plural of',
			'masculine-plural': 'masculine plural of',
			'feminine':'feminine 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 + '|plural}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + 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 + '|plural}}';
		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':'definite|p',
			'definite-accusative':'definite|acc|s',
			'plural-definite-accusative':'definite|acc|p',
			'dative':'dat|s',
			'plural-dative':'dat|p',
			'locative':'loc|s',
			'plural-locative':'loc|p',
			'ablative':'abl|s',
			'plural-ablative':'abl|p',
			'genitive':'definite|gen|s',
			'plural-genitive':'definite|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':'feminine 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 + '|plural}}';
		
		entry.def = '{{' + template[params.form] + '|' + params.origin + '|lang=' + params.lang + '}}';
	};

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

// Vilamovian
creation_rules['wym'] =
	function (params, entry)
	{
		var template = {
			'plural':'plural of',
			'diminutive':'diminutive of',
			'masculine-plural': 'masculine plural of',
			'feminine-plural': 'feminine plural of',
			'neuter-plural': 'neuter 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 + '|plural}}';
		
		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 + '|plural' + (params.transliteration ? '|tr=' + params.transliteration : '') + '}}';
				entry.def = '{{plural of|' + params.origin + '|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 + '|lang=' + params.lang + '}}';
				break;
			default:
				throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
		}
	};

// </nowiki>