ผู้ใช้:ZilentFyld/creatrule.js
หมายเหตุ: หลังเผยแพร่ คุณอาจต้องล้างแคชเว็บเบราว์เซอร์ของคุณเพื่อดูการเปลี่ยนแปลง
- ไฟร์ฟอกซ์ / ซาฟารี: กด Shift ค้างขณะคลิก Reload หรือกด Ctrl-F5 หรือ Ctrl-R (⌘-R บนแมค)
- กูเกิล โครม: กด Ctrl-Shift-R (⌘-Shift-R บนแมค)
- อินเทอร์เน็ตเอกซ์พลอเรอร์ และ Edge: กด Ctrl ค้างขณะคลิก Refresh หรือกด Ctrl-F5
- โอเปร่า: กด 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 = 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;
var entry = {
pronunc: null,
pos_header: params.pos.charAt(0).toUpperCase() + params.pos.substr(1),
head: '{{head|' + params.lang + '|รูปผัน' + pos + (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);
return entry;
}
catch (e)
{
if (e instanceof PreloadTextError)
{
console.log(e.message);
return false;
}
else
{
throw e;
}
}
};
//Dutch
creation_rules['nl'] =
function (params, entry)
{
switch (params.form)
{
case 'plural':
entry.head = '{{head|nl|รูปผันคำนามพหูพจน์}}';
entry.def = '{{plural of|' + params.origin + '|lang=nl}}';
break;
case 'diminutive':
entry.head = '{{nl-noun-dim}}';
entry.def = '{{diminutive of|' + params.origin + '|lang=nl}}';
break;
default:
throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
}
};
// English
creation_rules['en'] =
function (params, entry)
{
switch (params.form)
{
case 'comparative':
entry.head = '{{head|' + params.lang + '|รูปผันคำกริยา}}';
entry.def = '{{en-comparative of|' + params.origin + (params.pos != 'adjective' ? '|POS=' + params.pos : '') + '}}';
break;
case 'superlative':
entry.head = '{{head|' + params.lang + '|รูปผันคำกริยา}}';
entry.def = '{{en-superlative of|' + params.origin + (params.pos != 'adjective' ? '|POS=' + params.pos : '') + '}}';
break;
case 'third-person-singular':
entry.head = '{{head|' + params.lang + '|รูปผันคำกริยา}}';
entry.def = '{{infl of|en|' + params.origin + '||s-verb-form}}';
break;
case 'present-participle':
entry.head = '{{head|' + params.lang + '|รูปผันคำกริยา}}';
entry.def = '{{infl of|en|' + params.origin + '||ing-form}}';
break;
case 'simple-past':
entry.head = '{{head|' + params.lang + '|รูปผันคำกริยา}}';
entry.def = '{{infl of|en|' + params.origin + '||spart}}';
break;
case 'simple-past-and-participle':
entry.head = '{{head|' + params.lang + '|รูปผันคำกริยา}}';
entry.def = '{{infl of|en|' + params.origin + '||ed-form}}';
break;
case 'past-participle':
entry.head = '{{head|' + params.lang + '|รูปผันคำกริยา}}';
entry.def = '{{infl of|en|' + params.origin + '|past|part}}';
break;
case 'plural':
entry.head = '{{head|' + params.lang + '|รูปผันคำนามพหูพจน์}}';
entry.def = '{{plural of|' + params.origin + '|lang=' + params.lang + '}}';
break;
case 'proper-noun-plural':
entry.head = '{{head|' + params.lang + '|รูปผันคำวิสามานยนาม}}';
entry.def = '{{plural of|' + params.origin + '|lang=' + params.lang + '}}';
break;
default:
throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
}
};
//Esperanto
// Esperanto
creation_rules['eo'] =
function (params, entry)
{
var index = params.origin.indexOf(' de ');
var word = (index != -1)? params.origin.substr(0, index) : params.origin;
var stem = word.substr(0, word.length - 1);
var ending = word.substr(word.length - 1);
if (ending == 'j'){
stem = 'original=' + params.origin + '|';
ending = word.substr(word.length - 2, 1);
}
if (index != -1)
stem = 'original=' + params.origin + '|';
if (ending != 'o' && ending != 'a' && ending != 'i')
throw new PreloadTextError('The Esperanto word "' + params.origin + '" does not end in -o or -a or -i or -oj or -aj (index = ' + index + ', word = ' + word + ', stem = ' + stem + ', ending = ' + ending + ').');
if (ending == 'i')
ending = '';
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' : ''),
'present' :'as',
'past' :'is',
'future' :'os',
'conditional' :'us',
'volitive' :'u',
};
var inflection = formparam[params.form];
if (!inflection)
inflection = params.form
if (params.pos != 'proper noun')
entry.head = '{{eo-head}}';
// if inflection:match("^[aio]n?t[aeo]$") then
if( inflection.length > 0 && ((inflection.charAt(0) == 'a') || (inflection.charAt(0) == 'i') || (inflection.charAt(0) == 'o')) ){
if( inflection.length > 1 && ((inflection.charAt(1) == 'n')) ){
if( inflection.length > 2 && ((inflection.charAt(2) == 't')) ){
if( inflection.length > 3 && ((inflection.charAt(3) == 'a') || (inflection.charAt(3) == 'e') || (inflection.charAt(3) == 'o')) ){
switch(inflection.charAt(3)){
case 'a':
entry.pos_header = 'คำคุณศัพท์';
break;
case 'e':
entry.pos_header = 'คำกริยาวิเศษณ์';
break;
case 'o':
entry.pos_header = 'คำนาม';
break;
}
entry.head = '{{eo-part}}';
// elseif inflection:match("^[aio]n?t[aeo]j?n?$") then
if( inflection.length > 4 && ((inflection.charAt(4) == 'j'))){
if( inflection.length > 5 && ((inflection.charAt(5) == 'n'))){
entry.head = '{{eo-part-form}}';
}else if( inflection.length == 5 ){
entry.head = '{{eo-part-form}}';
}
}else if( inflection.length > 4 && ((inflection.charAt(4) == 'n'))){
entry.head = '{{eo-part-form}}';
}
}
}
}else{
if( inflection.length > 1 && ((inflection.charAt(1) == 't')) ){
if( inflection.length > 2 && ((inflection.charAt(2) == 'a') || (inflection.charAt(2) == 'e') || (inflection.charAt(2) == 'o')) ){
switch(inflection.charAt(2)){
case 'a':
entry.pos_header = 'คำคุณศัพทื';
break;
case 'e':
entry.pos_header = 'คำกริยาวิเศษณ์';
break;
case 'o':
entry.pos_header = 'คำนาม';
break;
}
entry.head = '{{eo-part}}';
// elseif inflection:match("^[aio]n?t[aeo]j?n?$") then
if( inflection.length > 3 && ((inflection.charAt(3) == 'j'))){
if( inflection.length > 4 && ((inflection.charAt(4) == 'n'))){
entry.head = '{{eo-part-form}}';
}else if( inflection.length == 4 ){
entry.head = '{{eo-part-form}}';
}
}else if( inflection.length > 3 && ((inflection.charAt(3) == 'n'))){
entry.head = '{{eo-part-form}}';
}
}
}
}
}
entry.pronunc = '{{eo-IPA}}';
entry.def = '{{eo-form of|' + stem + '|' + ending + inflection + '}}';
};
// Greek
creation_rules['el'] =
function (params, entry)
{
switch (params.form)
{
case 'nom-singular':
entry.def = '{{inflection of|' + params.origin + '||nom|s|lang=el}}';
break;
case 'nom-plural':
entry.def = '{{inflection of|' + params.origin + '||nom|p|lang=el}}';
break;
case 'gen-singular':
entry.def = '{{inflection of|' + params.origin + '||gen|s|lang=el}}';
break;
case 'gen-plural':
entry.def = '{{inflection of|' + params.origin + '||gen|p|lang=el}}';
break;
case 'acc-singular':
entry.def = '{{inflection of|' + params.origin + '||acc|s|lang=el}}';
break;
case 'acc-plural':
entry.def = '{{inflection of|' + params.origin + '||acc|p|lang=el}}';
break;
case 'voc-singular':
entry.def = '{{inflection of|' + params.origin + '||voc|s|lang=el}}';
break;
case 'voc-plural':
entry.def = '{{inflection of|' + params.origin + '||voc|p|lang=el}}';
break;
default:
entry.head = '{{head|' + params.lang + '|รูปผันคำนาม}}';
throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
}
};
/*
// German
creation_rules['de'] =
function (params, entry)
{
var headparam = {};
var formparam = {
'plural':'nom|pl',
'genitive':'gen|s',
'genitive-plural':'gen|p',
'dative':'dat|s',
'dative-plural':'dat|p',
'accusative':'acc|s',
'accusative-plural':'acc|p',
'pres-part':'pres|part'};
switch (params.form)
{
case 'plural' || 'genitive' || 'genitive-plural' || 'dative' || 'dative-plural' || 'accusative' || 'accusative-plural':
entry.head = '{{head|' + params.lang + '|รูปผันคำนาม}}';
entry.def = '{{inflection of|' + params.origin + '||' + formparam[params.form] + '|lang=de}}';
break;
case 'pres-part':
entry.head = '{{head|' + params.lang + '|รูปผันคำกริยา}}';
entry.def = '{{inflection of|' + params.origin + '||' + formparam[params.form] + '|lang=de}}';
break;
}
};
*/
// French
creation_rules['fr'] =
function (params, entry)
{
var change = {
'f|s':'s|f',
'm|p':'p|m',
'f|p':'p|f',
'plural':'p'
}
if (params.pos == 'คำนาม' && params.form == 'plural')
entry.head = '{{head|' + params.lang + '|รูปผันคำนามพหูพจน์}}';
entry.def = '{{inflection of|'+params.lang+'|' + params.origin + '||' + change[params.form] +'}}';
};
// Finnish
creation_rules['fi'] =
function (params, entry)
{
var headparam = {};
var formparam = {
'plural-nominative':'nom|p',
'singular-genitive':'gen|s',
'plural-genitive':'gen|p',
'singular-partitive':'par|s',
'plural-partitive':'par|p',
'singular-inessive':'ine|s',
'plural-inessive':'ine|p',
'singular-elative':'ela|s',
'plural-elative':'ela|p',
'singular-illative':'ill|s',
'plural-illative':'ill|p',
'singular-adessive':'ade|s',
'plural-adessive':'ade|p',
'singular-ablative':'abl|s',
'plural-ablative':'abl|p',
'singular-allative':'all|s',
'plural-allative':'all|p',
'singular-essive':'ess|s',
'plural-essive':'ess|p',
'singular-translative':'tra|s',
'plural-translative':'tra|p',
'plural-instructive':'ins|p',
'plural-comitative':'com|p',
'singular-abessive':'abe|s',
'plural-abessive':'abe|p'};
if (!formparam[params.form])
throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
entry.pronunc = '{{fi-pronunciation}}'
entry.head = '{{head|' + params.lang + '|' + (headparam[params.form] || 'รูปผันคำนาม') + '}}';
entry.def = '{{inflection of|' + params.origin + '||' + formparam[params.form] + '|lang=fi}}';
};
// Icelandic
creation_rules['is'] =
function (params, entry)
{
var headparam = {};
var formparam = {
'noms':'nom|s|indf',
'nomsd':'nom|s|defn',
'nomp':'nom|p|indf',
'nompd':'nom|p|defn',
'accs':'acc|s|indf',
'accsd':'acc|s|defn',
'accp':'acc|p|indf',
'accpd':'acc|p|defn',
'dats':'dat|s|indf',
'datsd':'dat|s|defn',
'datp':'dat|p|indf',
'datpd':'dat|p|defn',
'gens':'gen|s|indf',
'gensd':'gen|s|defn',
'genp':'gen|p|indf',
'genpd':'gen|p|defn'};
if (!formparam[params.form])
throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
entry.head = '{{head|' + params.lang + '|' + (headparam[params.form] || 'รูปผันคำนาม') + '}}';
entry.def = '{{inflection of|' + params.origin + '||' + formparam[params.form] + '|lang=' + params.lang + '}}';
};
// Japanese
creation_rules['ja'] =
function (params, entry)
{
switch (params.form)
{
case 'romanized':
entry.head = '{{' + params.lang + '-romaji}}';
entry.def = '{{ja-romanization of|' + params.origin + '}}';
break;
case 'kana-คำนา�':
entry.head = '{{' + params.lang + '-noun}}';
entry.def = '{{ja-def|' + params.origin + '}} ';
break;
case 'kana-คำกริย�':
entry.head = '{{' + params.lang + '-noun}}';
entry.def = '{{ja-def|' + params.origin + '}} ';
break;
default:
throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
}
};
//Latin
creation_rules['la'] =
function (params, entry)
{
entry.pronunc= '* {{la-IPA|'+params.target+'}}'
params.form = params.form.replace(/-/g, ' ');
params.form += ' of';
entry.def = '{{' + params.form + '|' + params.origin + '|lang=' + params.lang + '}}';
};
// Polish
creation_rules['pl'] =
function (params, entry)
{
var headparam = {};
var formparam = {
'noms':'nom|s',
'nomp':'nom|p',
'gens':'gen|s',
'genp':'gen|p',
'dats':'dat|s',
'datp':'dat|p',
'accs':'acc|s',
'accp':'acc|p',
'inss':'ins|s',
'insp':'ins|p',
'locs':'loc|s',
'locp':'loc|p',
'vocs':'voc|s',
'vocp':'voc|p',};
if (!formparam[params.form])
throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
entry.pronunc = '* {{pl-IPA}}'
entry.head = '{{head|' + params.lang + '|' + (headparam[params.form] || 'รูปผันคำนาม') + '}}';
entry.def = '{{inflection of|' + params.origin + '||' + formparam[params.form] + '|lang=' + params.lang + '}}';
};
// Romanian
creation_rules['ro'] =
function (params, entry)
{
var headparam = {};
var formparam = {
'nsi':'nom|and|acc|s|indf',
'nsd':'nom|and|acc|s|defn',
'npi':'nom|and|acc|p|indf',
'npd':'nom|and|acc|p|defn',
'gsi':'gen|and|dat|s|indf',
'gsd':'gen|and|dat|s|defn',
'gpi':'gen|and|dat|p|indf',
'gpd':'gen|and|dat|p|defn',
'vs':'voc|s',
'vp':'voc|p'};
if (!formparam[params.form])
throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
entry.head = '{{head|' + params.lang + '|' + (headparam[params.form] || 'รูปผันคำนาม') + '}}';
entry.def = '{{inflection of|' + params.origin + '||' + formparam[params.form] + '|lang=' + params.lang + '}}';
};
// Russian
creation_rules['ru'] =
function (params, entry)
{
var headparam = {};
var formparam = {
'nom-s':'nom|s',
'nom-p':'nom|p',
'gen-s':'gen|s',
'gen-p':'gen|p',
'dat-s':'dat|s',
'dat-p':'dat|p',
'acc-s':'acc|s',
'acc-p':'acc|p',
'acc-s-an':'acc|s|an',
'acc-p-an':'acc|p|an',
'acc-s-inan':'acc|s|in',
'acc-p-inan':'acc|p|in',
'ins-s':'ins|s',
'ins-p':'ins|p',
'pre-s':'pre|s',
'pre-p':'pre|p'};
if (!formparam[params.form])
throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
entry.head = '{{head|' + params.lang + '|' + (headparam[params.form] || 'รูปผันคำนาม') + '}}';
entry.def = '{{inflection of|' + params.origin + '||' + formparam[params.form] + '|lang=ru}}';
};
// Serbo-Croatian
creation_rules['sh'] =
function (params, entry)
{
var headparam = {};
var formparam = {
'nom-s':'nom|s',
'nom-p':'nom|p',
'gen-s':'gen|s',
'gen-p':'gen|p',
'dat-s':'dat|s',
'dat-p':'dat|p',
'acc-s':'acc|s',
'acc-p':'acc|p',
'ins-s':'ins|s',
'ins-p':'ins|p',
'loc-s':'loc|s',
'loc-p':'loc|p',
'voc-s':'voc|s',
'voc-p':'voc|p',};
if (!formparam[params.form])
throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
entry.head = '{{head|' + params.lang + '|' + (headparam[params.form] || 'รูปผันคำนาม') + '}}';
entry.def = '{{inflection of|' + params.origin + '||' + formparam[params.form] + '|lang=sh}}';
};
// Swedish
creation_rules['sv'] =
function (params, entry)
{
var headparam = {};
var formparam = {
'sv-indf-nom-sg':'nom|s|indf',
'sv-defn-nom-sg':'nom|s|defn',
'sv-indf-nom-pl':'nom|p|indf',
'sv-defn-nom-pl':'nom|p|defn',
'sv-indf-gen-sg':'gen|s|indf',
'sv-defn-gen-sg':'gen|s|defn',
'sv-indf-gen-pl':'gen|p|indf',
'sv-defn-gen-pl':'gen|p|defn'};
if (!formparam[params.form])
throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
entry.head = '{{head|' + params.lang + '|' + (headparam[params.form] || 'รูปผันคำนาม') + '}}';
entry.def = '{{inflection of|' + params.origin + '||' + formparam[params.form] + '|lang=sv}}';
};
// Southern Thai
creation_rules['sou'] =
function (params, entry)
{
switch (params.form)
{
case 'abstract-noun':
entry.pos_header = 'คำอาการนาม';
entry.etym = '{{อุปสรรค|' + params.lang + '|ก่าน|' + params.origin + '}}';
entry.head = '{{' + params.lang + '-noun}}';
entry.def = '{{abstract noun of|' + params.origin + '|lang=' + params.lang + '}}';
break;
case 'abstract-noun-adj':
entry.pos_header = 'คำอาการนาม';
entry.etym = '{{อุปสรรค|' + params.lang + '|ขว่าม|' + params.origin + '}}';
entry.head = '{{' + params.lang + '-noun}}';
entry.def = '{{abstract noun of|' + params.origin + '|lang=' + params.lang + '}}';
break;
default:
throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
}
};
// Hungarian
creation_rules['hu'] =
function (params, entry)
{
var headparam = {};
var formparam = {
'nominative-plural':'nom|p',
'accusative-singular':'acc|s',
'accusative-plural':'acc|p',
'dative-singular':'dat|s',
'dative-plural':'dat|p',
'instrumental-singular':'ins|s',
'instrumental-plural':'ins|p',
'causal-final-singular':'cfin|s',
'causal-final-plural':'cfin|p',
'translative-singular':'tra|s',
'translative-plural':'tra|p',
'terminative-singular':'ter|s',
'terminative-plural':'ter|p',
'essive-formal-singular':'efor|s',
'essive-formal-plural':'efor|p',
'essive-modal-singular':'emod|s',
'essive-modal-plural':'emod|p',
'inessive-singular':'ine|s',
'inessive-plural':'ine|p',
'superessive-singular':'spe|s',
'superessive-plural':'spe|p',
'adessive-singular':'ade|s',
'adessive-plural':'ade|p',
'illative-singular':'ill|s',
'illative-plural':'ill|p',
'sublative-singular':'sub|s',
'sublative-plural':'sub|p',
'allative-singular':'all|s',
'allative-plural':'all|p',
'elative-singular':'ela|s',
'elative-plural':'ela|p',
'delative-singular':'del|s',
'delative-plural':'del|p',
'ablative-singular':'abl|s',
'ablative-plural':'abl|p'};
if (!formparam[params.form])
throw new PreloadTextError('No rule for "' + params.form + '" in language "' + params.lang + '".');
entry.pronunc = '* {{hu-IPA}}'
entry.head = '{{head|' + params.lang + '|' + (headparam[params.form] || 'รูปผันคำนาม') + '}}';
entry.def = '{{inflection of|' + params.origin + '||' + formparam[params.form] + '|lang=' + 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 + '}}';
};