Modül:ja-başlıkbaşı
Görünüm
Bu belgeleme Modül:ja-başlıkbaşı/belge (düzenle | geçmiş) sayfasından yansıtılmaktadır. Arayüz düzenleyicilerinin deney yapabilmeleri için ayrıca Modül:ja-başlıkbaşı/deneme tahtası sayfası kullanılabilir.
Bu Lua modülü, şu şablonların çıktısını vermektedir:
local m_ja = require("Modül:ja")
local m_ja_ruby = require('Modül:ja-ruby')
local find = mw.ustring.find
local export = {}
local pos_functions = {}
local lang = require("Modül:diller").getirKodaGore("ja")
local sc = require("Modül:alfabeler").getirKodaGore("Jpan")
local Latn = require("Modül:alfabeler").getirKodaGore("Latn")
local Japonca_symbols = '%ー・=?!。、'
local katakana_range = 'ァ-ヺーヽヾ'
local hiragana_range = 'ぁ-ゖーゞゝ'
local kana_range = katakana_range .. hiragana_range .. Japonca_symbols
local Japonca_scripts_range = kana_range .. '一-鿌・々'
local katakana_pattern = '^[' .. katakana_range .. Japonca_symbols .. ']*$'
local hiragana_pattern = '^[' .. hiragana_range .. Japonca_symbols .. ']*$'
local kana_pattern = '^[' .. kana_range .. ']*$'
local kana_pattern_full = '^[、' .. kana_range .. '%s%.%-%^%%]*$'
local function remove_links(text)
return (text:gsub("%[%[[^|%]]-|", ""):gsub("%[%[", ""):gsub("%]%]", ""))
end
local function detect_kana_script(kana)
if find(kana, katakana_pattern) then
return 'kata'
elseif find(kana, hiragana_pattern) then
return 'hira'
elseif find(kana, kana_pattern) then
return 'both'
else
return nil
end
end
local en_numerals = {
"bir", "iki", "üç", "dört", "beş",
"altı", "yedi", "sekiz", "dokuz", "on",
"on bir", "on iki", "on üç", "on dört", "on beş"
}
local en_grades = {
"birinci sınıf", "ikinci sınıf", "üçüncü sınıf",
"dördüncü sınıf", "beşinci sınıf", "altıncı sınıf",
"orta okul", "jinmeiyō", "hyōgaiji"
}
local aliases = {
['geçişli']='tr', ['trans']='tr',
['geçişsiz']='in', ['intrans']='in', ['intr']='in',
['godan']='1', ['ichidan']='2', ['irregular']='irr'
}
local function kana_to_romaji(kana, veri, args)
-- make adjustments for -u verbs and -i adjectives by placing a period before the last character
-- to prevent romanizing long vowels with macrons
if (veri.soz_kategorisi == "eylemler") or (veri.soz_kategorisi == "ön adlar" and (args["çekim"] == "i" or args["çekim"] == "い" or args["çekim"] == "is")) then
kana = mw.ustring.gsub(kana,'([うい])$','.%1')
end
-- hyphens for prefixes, suffixes, and counters (classifiers)
if veri.soz_kategorisi == "prefixes" then
kana = kana:gsub('%-?$', '-')
elseif veri.soz_kategorisi == "suffixes" or veri.soz_kategorisi == "counters" or veri.soz_kategorisi == "classifiers" then
kana = kana:gsub('^%-?', '-')
end
-- automatic caps for proper nouns, if not already specified
if veri.soz_kategorisi == "proper nouns" then
if not find(kana, '%^') then
kana = mw.ustring.gsub(kana, '^(.)', '^%1')
kana = mw.ustring.gsub(kana, '([%s%-])(.)', '%1^%2')
end
end
kana = m_ja.kana_to_romaji(kana)
return kana
end
local function historical_kana(args, veri, poscat)
local hk = args["hhira"] or args["hkata"]
if hk then
table.insert(veri.cekimler, {
etiket = "geleneksel kana",
"[[" .. hk .. "]]" .. (poscat == "suru verbs" and 'する' or ''),
})
hk = m_ja.kata_to_hira(hk)
if hk:match'ゐ' then
table.insert(veri.kategoriler, "Japonca ゐ karakterini içeren geleneksel sözcükler")
end
if hk:match'ゑ' then
table.insert(veri.kategoriler, "Japonca ゑ karakterini içeren geleneksel sözcükler")
end
if hk:match'を' and not (veri.kana and veri.kana:match'を') then
table.insert(veri.kategoriler, "Japonca を karakterini içeren geleneksel sözcükler")
end
if hk:match'ぢ' and not (veri.kana and veri.kana:match'ぢ') then
table.insert(veri.kategoriler, "Japonca ぢ karakterini içeren geleneksel sözcükler")
end
if hk:match'づ' and not (veri.kana and veri.kana:match'づ') then
table.insert(veri.kategoriler, "Japonca づ karakterini içeren geleneksel sözcükler")
end
end
end
-- adds category Japonca terms spelled with jōyō kanji or Japonca terms spelled with non-jōyō kanji
-- (if it contains any kanji)
local function categorize_by_kanji(veri, PAGENAME)
-- remove non-kanji characters
local onlykanji = mw.ustring.gsub(PAGENAME, '[^一-鿌]', '')
local number_of_kanji = mw.ustring.len(onlykanji)
if number_of_kanji > 0 then
for i=1,mw.ustring.len(onlykanji) do
table.insert(veri.kategoriler, ("Japonca %s kanji harflerini içeren sözcükler"):format(en_grades[m_ja.kanji_grade(mw.ustring.sub(onlykanji,i,i))]))
end
-- categorize by number of kanji
if number_of_kanji == 1 then
table.insert(veri.kategoriler, "Japonca bir Han karakteri içeren sözcükler")
elseif en_numerals[number_of_kanji] then
table.insert(veri.kategoriler, ("Japonca %s Han karakteri içeren sözcükler"):format(en_numerals[number_of_kanji]))
end
end
-- single-kanji terms
if mw.ustring.len(PAGENAME) == 1 and mw.ustring.match(PAGENAME, '[一-鿌]') then
table.insert(veri.kategoriler, "Japonca " .. PAGENAME .. " karakterini içeren sözcükler")
table.insert(veri.kategoriler, "Japonca tek-kanji harfinden oluşan sözcükler")
end
end
-- categorize by the script of the pagename or specific characters contained in it
local function extra_categorization(veri, PAGENAME, katakana_category)
-- if PAGENAME is hiragana, put in that category, same for katakana (but do it at the end)
if detect_kana_script(PAGENAME) == 'hira' then table.insert(veri.kategoriler, "Japonca hiragana") end
if detect_kana_script(PAGENAME) == 'kata' then table.insert(katakana_category, "Japonca katakana") end
if find(PAGENAME, "[^" .. Japonca_scripts_range .. "]") and find(PAGENAME, '[' .. Japonca_scripts_range .. ']') then
table.insert(veri.kategoriler, "Japonca birden fazla okunuşu olan sözcükler") end
for _,character in ipairs({'々','〆','ヶ','ゝ','ゞ','ヽ','ヾ','ゐ','ヰ','ゑ','ヱ','ゔ','ヷ','ヸ','ヹ','ヺ','・','=','゠'}) do
if mw.ustring.match(PAGENAME,character) then
table.insert(veri.kategoriler, ("Japonca %s harfini içeren sözcükler"):format(character))
end
end
if find(PAGENAME, "[ァ-ヺヽヾ]") and find(PAGENAME, "[ぁ-ゖゞゝ]") and veri.soz_kategorisi ~= "proverbs" and veri.soz_kategorisi ~= "phrases" then
table.insert(veri.kategoriler, "Japonca karışık kana harflerini içeren sözcükler")
end
end
-- go through args and build inflections by finding whatever kanas were given to us
local function format_headword(args, veri, head)
local headword_kana_type = detect_kana_script(remove_links(m_ja.remove_ruby_markup(head)))
local allkana, romajis = {}, {}
local rep = {}
local _insert_kana = headword_kana_type and function(k) -- pure-kana-title entry
if k == '' then return end
local key = remove_links(m_ja.remove_ruby_markup(k))
romajis[1] = kana_to_romaji(remove_links(k), veri, args)
if not rep[key] then
table.insert(allkana, k)
rep[key] = true
end
end or function(k) -- non-pure-kana-title entry
if k == '' then return end
local key = m_ja.kana_to_romaji(remove_links(m_ja.remove_ruby_markup(k)))
if not rep[key] then
table.insert(romajis, kana_to_romaji(remove_links(k), veri, args))
table.insert(allkana, k)
rep[key] = true
end
end
if headword_kana_type then
_insert_kana(remove_links(head))
allkana[1] = head
end
for i,arg in ipairs(args[1]) do
if arg and arg ~= "" and find(arg, kana_pattern_full) then _insert_kana(arg) end
end
-- accept "hira" and "kata" but let Lua decide if they are really hiragana or katakana
if args["hira"] and args["hira"] ~= "" then _insert_kana(args["hira"]) end
if args["kata"] and args["kata"] ~= "" then _insert_kana(args["kata"]) end
if args["rom"] then romajis[1] = args["rom"] end
if #allkana == 0 then error('Kana form is required') end
if #romajis == 0 then error('Romaji is required') end
local suru_ending = veri.soz_kategorisi == "suru verbs" and '[[する]]' or ''
for _, kana in ipairs(allkana) do
-- add everything to inflections, except historical hiragana which is next
-- local format_result = headword_kana_type and allkana[i] or format_ruby(PAGENAME, allkana[i], data)
local format_result, format_result_preserved --<ruby> form, []() form
if headword_kana_type then
format_result = m_ja.remove_ruby_markup(kana)
format_result_preserved = remove_links(format_result) .. suru_ending
format_result = format_result .. suru_ending
else
local format_table = m_ja_ruby.parse_text(head, kana, {
try = 'force',
try_force_limit = 10000
})
format_result = m_ja_ruby.to_wiki(format_table, {
break_link = true,
}):gsub('<rt>(..-)</rt>', "<rt>[[" .. remove_links(m_ja.remove_ruby_markup(kana)) .."|%1]]</rt>") .. suru_ending
format_result_preserved = remove_links(m_ja_ruby.to_markup(format_table)) .. suru_ending
end
table.insert(veri.baslar, format_result)
veri.korunan_baslar = veri.korunan_baslar or format_result_preserved
end
suru_ending = veri.soz_kategorisi == "suru verbs" and ' suru' or ''
for _, rom in ipairs(romajis) do
table.insert(veri.alfabecevler, '[[' .. rom .. '#Japonca|' .. rom .. ']]' .. suru_ending)
end
if #romajis > 1 then
table.insert(veri.kategoriler, "Japonca birden fazla okunuşu olan sözcükler")
end
veri.kana = allkana[1] and remove_links(m_ja.remove_ruby_markup(allkana[1]))
end
local function add_transitivity(veri, tr)
tr = aliases[tr] or tr
if tr == "tr" then
table.insert(veri.orta_bilgi, 'geçişli')
table.insert(veri.kategoriler, "Japonca geçişli eylemler")
elseif tr == "in" then
table.insert(veri.orta_bilgi, 'geçişsiz')
table.insert(veri.kategoriler, "Japonca geçişsiz eylemler")
elseif tr == "both" then
table.insert(veri.orta_bilgi, 'geçişli veya geçişsiz')
table.insert(veri.kategoriler, "Japonca geçişli eylemler")
table.insert(veri.kategoriler, "Japonca geçişsiz eylemler")
else
table.insert(veri.kategoriler, "Japonca çatısız eylemler")
end
end
local function add_inflections(veri, inflection_type, cat_suffix)
local lemma = veri.korunan_baslar or veri.baslar[1]
local romaji = remove_links(veri.alfabecevler[1])
inflection_type = aliases[inflection_type] or inflection_type
local function replace_suffix(lemma_from, lemma_to, romaji_from, romaji_to)
-- e.g. 持って来る, lemma = "[持](も)って来(く)る"
-- lemma_from = "くる", lemma_to = {"き","きた"}
local p_kr = katakana_range .. hiragana_range
local lemma_sub
local romaji_sub
local key_pos = {}
local i1, i2
romaji_from = romaji_from or m_ja.kana_to_romaji(lemma_from)
if type(lemma_to) ~= 'table' then lemma_to = {lemma_to} end
if type(romaji_to) ~= 'table' then romaji_to = {romaji_to} end
for i, v in ipairs(lemma_to) do
romaji_to[i] = romaji_to[i] or m_ja.kana_to_romaji(v)
end
lemma_sub = lemma
lemma_from = lemma_from ~= '' and mw.text.split(lemma_from, '') or {} -- lemma_from = {"く","る"}
local len_lemma_from = #lemma_from -- find the last two kana in "[持](も)って来(く)る"
key_pos[len_lemma_from + 1] = {-1}
for i = len_lemma_from, 1, -1 do
i1, _, i2 = mw.ustring.find(lemma_sub, '[' .. m_ja.kata_to_hira(lemma_from[i]) .. m_ja.hira_to_kata(lemma_from[i]) .. ']()[^' .. p_kr .. ']-$')
if not i1 then return nil end
i1 = i1 - 1
key_pos[i] = {i1, i2}
lemma_sub = mw.ustring.sub(lemma_sub, 1, i1)
end
romaji_sub, i1 = romaji:gsub(romaji_from .. '%s*$', '')
if i1 ~= 1 then return nil end
local result = {}
for i, v in ipairs(lemma_to) do
local result_single = {lemma_sub}
for j = 1, len_lemma_from do
table.insert(result_single, mw.ustring.sub(v, j, j))
table.insert(result_single, mw.ustring.sub(lemma, key_pos[j][2], key_pos[j + 1][1]))
end
table.insert(result_single, mw.ustring.sub(v, len_lemma_from + 1))
result[i] = {lemma = table.concat(result_single), romaji = romaji_sub .. romaji_to[i]}
-- "[持](も)って来(" .. "き" .. ")" .. "" .. "" and "[持](も)って来(" .. "き" .. ")" .. "た" .. ""
end
return result -- {{lemma="[持](も)って来(き)",romaji="motteki"},{lemma="[持](も)って来(き)た",romaji="mottekita"}}
end
local function insert_form(label, ...)
-- etiket = "stem" or "past" etc.
-- ... = {lemma=...,romaji=...},{lemma=...,romaji=...}
local labeled_forms = {etiket = label}
for _, v in ipairs{...} do
local table_form = m_ja_ruby.parse_markup(v.lemma)
local form_term = m_ja_ruby.to_wiki(table_form)
if not form_term:find'%[%[.+%]%]' then
form_term = '[[' .. m_ja_ruby.to_text(table_form) .. '#Japonca|' .. form_term .. ']]'
end
table.insert(labeled_forms, {
term = form_term,
translit = v.romaji,
})
end
table.insert(veri.cekimler, labeled_forms)
end
local inflected_forms
if inflection_type == '1' or inflection_type == '1s' then
table.insert(veri.orta_bilgi, '<abbr title="godan (tip I) çekimi">godan</abbr>')
if cat_suffix then
table.insert(veri.kategoriler, "Japonca tip 1 " .. cat_suffix)
if cat_suffix == 'verbs' and veri.alfabecevler[1] and mw.ustring.find(remove_links(veri.alfabecevler[1]), '[ieIEīēĪĒ]ru$') then
table.insert(veri.kategoriler, "Japonca -iru veya -eru ile biten tip 1 eylemler")
end
end
if inflection_type == '1' then
inflected_forms =
replace_suffix('く', {'き', 'いた'}, 'ku', {'ki', 'ita'}) or
replace_suffix('ぐ', {'ぎ', 'いだ'}, 'gu', {'gi', 'ida'}) or
replace_suffix('す', {'し', 'した'}, 'su', {'shi', 'shita'}) or
replace_suffix('つ', {'ち', 'った'}, 'tsu', {'chi', 'tta'}) or
replace_suffix('ぬ', {'に', 'んだ'}, 'nu', {'ni', 'nda'}) or
replace_suffix('ぶ', {'び', 'んだ'}, 'bu', {'bi', 'nda'}) or
replace_suffix('む', {'み', 'んだ'}, 'mu', {'mi', 'nda'}) or
replace_suffix('る', {'り', 'った'}, 'ru', {'ri', 'tta'}) or
replace_suffix('う', {'い', 'った'}, 'u', {'i', 'tta'})
if inflected_forms then
insert_form('stem', inflected_forms[1])
insert_form('past', inflected_forms[2])
else
--require("Modül:debug").track("ja-headword/godan conjugation failed")
end
else
inflected_forms =
replace_suffix('る', {'り', 'った', 'い'}, 'ru', {'ri', 'tta', 'i'}) or --くださる
replace_suffix('いく', {'いき', 'いった'}, 'iku', {'iki', 'itta'}) or --行く
replace_suffix('う', {'い', 'うた'}, 'ou', {'oi', 'ōta'}) --問う
if inflected_forms then
insert_form('stem', inflected_forms[1], inflected_forms[3])
insert_form('past', inflected_forms[2])
else
--require("Modül:debug").track("ja-headword/godan conjugation special failed")
end
end
elseif inflection_type == '2' then
table.insert(veri.orta_bilgi, '<abbr title="ichidan (tip II) çekimi">ichidan</abbr>')
if cat_suffix then table.insert(veri.kategoriler, "Japonca tip 2 " .. cat_suffix) end
inflected_forms = replace_suffix('る', {'', 'た'}, 'ru', {'', 'ta'})
if inflected_forms then
insert_form('stem', inflected_forms[1])
insert_form('past', inflected_forms[2])
else
--require("Modül:debug").track("ja-headword/ichidan conjugation failed")
end
elseif inflection_type == 'suru' then
table.insert(veri.orta_bilgi, '<abbr title="suru (tip III) çekimi">suru</abbr>')
if cat_suffix then table.insert(veri.kategoriler, "Japonca suru " .. cat_suffix) end
inflected_forms =
replace_suffix('する', {'し', 'した'}, 'suru', {'shi', 'shita'}) or
replace_suffix('ずる', {'じ', 'じた'}, 'zuru', {'ji', 'jita'})
if inflected_forms then
insert_form('stem', inflected_forms[1])
insert_form('past', inflected_forms[2])
else
--require("Modül:debug").track("ja-headword/suru conjugation failed")
end
elseif inflection_type == 'kuru' then
table.insert(veri.orta_bilgi, '<abbr title="kuru (tip III) çekimi">kuru</abbr>')
if cat_suffix then table.insert(veri.kategoriler, "Japonca kuru " .. cat_suffix) end
inflected_forms = replace_suffix('くる', {'き', 'きた'}, 'kuru', {'ki', 'kita'})
if inflected_forms then
insert_form('stem', inflected_forms[1])
insert_form('past', inflected_forms[2])
else
--require("Modül:debug").track("ja-headword/kuru conjugation failed")
end
elseif inflection_type == 'i' or inflection_type == 'い' then
table.insert(veri.orta_bilgi, '<abbr title="-i (tip I) çekimi">-i</abbr>')
if cat_suffix then table.insert(veri.kategoriler, "Japonca い-i " .. cat_suffix) end
inflected_forms = replace_suffix('い', {'く'}, 'i', {'ku'})
if inflected_forms then
insert_form('adverbial', inflected_forms[1])
else
--require("Modül:debug").track("ja-headword/-i inflection failed")
end
elseif inflection_type == 'is' then
table.insert(veri.orta_bilgi, '<abbr title="-i (tip I) çekimi">-i</abbr>')
if cat_suffix then table.insert(veri.kategoriler, "Japonca い-i " .. cat_suffix) end
inflected_forms = replace_suffix('いい', {'よく'}, 'ii', {'yoku'})
if inflected_forms then
insert_form('adverbial', inflected_forms[1])
else
--require("Modül:debug").track("ja-headword/slightly irregular -i inflection failed")
end
elseif inflection_type == 'na' or inflection_type == 'な' then
table.insert(veri.orta_bilgi, '<abbr title="-na (tip II) çekimi">-na</abbr>')
if cat_suffix then table.insert(veri.kategoriler, "Japonca な-na " .. cat_suffix) end
inflected_forms = replace_suffix('', {'[[な]]', '[[に]]'}, '', {' na', ' ni'})
insert_form('adnominal', inflected_forms[1])
insert_form('adverbial', inflected_forms[2])
elseif inflection_type == "yo" then
table.insert(veri.orta_bilgi, '<abbr title="yodan çekimi (geleneksel)"><sup><small>†</small></sup>yodan</abbr>')
if cat_suffix then table.insert(veri.kategoriler, "Japonca yodan " .. cat_suffix) end
elseif inflection_type == "kami ni" then
table.insert(veri.orta_bilgi, '<abbr title="kami nidan çekimi (geleneksel)"><sup><small>†</small></sup>nidan</abbr>')
if cat_suffix then table.insert(veri.kategoriler, "Japonca kami nidan " .. cat_suffix) end
elseif inflection_type == "shimo ni" then
table.insert(veri.orta_bilgi, '<abbr title="shimo nidan çekimi (geleneksel)"><sup><small>†</small></sup>nidan</abbr>')
if cat_suffix then table.insert(veri.kategoriler, "Japonca shimo nidan " .. cat_suffix) end
elseif inflection_type == "rahen" then
table.insert(veri.orta_bilgi, '<abbr title="r-special çekimi (geleneksel)"><sup><small>†</small></sup>-ri</abbr>')
elseif inflection_type == "sahen" then
table.insert(veri.orta_bilgi, '<abbr title="s-special çekimi (geleneksel)"><sup><small>†</small></sup>-se</abbr>')
elseif inflection_type == "kahen" then
table.insert(veri.orta_bilgi, '<abbr title="k-special çekimi (geleneksel)"><sup><small>†</small></sup>-ko</abbr>')
elseif inflection_type == "nahen" then
table.insert(veri.orta_bilgi, '<abbr title="n-special çekimi (geleneksel)"><sup><small>†</small></sup>-n</abbr>')
elseif inflection_type == "nari" or inflection_type == "なり" then
table.insert(veri.orta_bilgi, '<abbr title="-nari çekimi (geleneksel)"><sup><small>†</small></sup>-nari</abbr>')
if cat_suffix then table.insert(veri.kategoriler, "Japonca なり-nari " .. cat_suffix) end
elseif inflection_type == 'tari' or inflection_type == 'たり' then
table.insert(veri.orta_bilgi, '<abbr title="-tari çekimi (geleneksel)"><sup><small>†</small></sup>-tari</abbr>')
if cat_suffix then table.insert(veri.kategoriler, "Japonca たり-tari " .. cat_suffix) end
inflected_forms = replace_suffix('', {'[[たる]]', '[[と]]', '[[として]]'}, '', {' taru', ' to', ' toshite'})
insert_form('adnominal', inflected_forms[1])
insert_form('adverbial', inflected_forms[2], inflected_forms[3])
elseif inflection_type == "ka" or inflection_type == "か" then
table.insert(veri.orta_bilgi, '<abbr title="-ka çekimi (yöresel)"><sup><small>†</small></sup>-ka</abbr>')
if cat_suffix then table.insert(veri.kategoriler, "Japonca か-ka " .. cat_suffix) end
elseif inflection_type == 'irr' then
table.insert(veri.orta_bilgi, 'irregular')
if cat_suffix then table.insert(veri.kategoriler, "Japonca düzensiz " .. cat_suffix) end
end
end
pos_functions["eylemler"] = function(args, veri)
add_transitivity(veri, args["tr"])
add_inflections(veri, args["çekim"], 'verbs')
end
pos_functions["son ekler"] = function(args, veri)
add_inflections(veri, args["çekim"])
end
pos_functions["yardımcı eylemler"] = function(args, veri)
table.insert(veri.kategoriler, "Japonca yardımcı eylemler")
add_inflections(veri, args["çekim"])
veri.soz_kategorisi = "eylemler"
end
pos_functions["suru verbs"] = function(args, veri)
add_transitivity(veri, args["tr"])
add_inflections(veri, 'suru', 'eylemler')
veri.soz_kategorisi = "eylemler"
end
pos_functions["ön adlar"] = function(args, veri)
add_inflections(veri, args["çekim"], 'ön adlar')
end
pos_functions["adlar"] = function(args, veri)
-- the counter (classifier) parameter, only relevant for nouns
local counter = args["sayı"] or ""
if counter == "-" then
table.insert(veri.cekimler, {etiket = "sayılamayan"})
elseif counter ~= "" then
table.insert(veri.cekimler, {etiket = "sayısı", counter})
end
end
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
local args = require('Modül:parameters').process(frame:getParent().args, {
[1] = {list = true},
['hira'] = {}, ['kata'] = {},
['rom'] = {},
['ç'] = {},
['çekim'] = {}, ['tip'] = {alias_of = 'cekim'},
['sayı'] = {},
['kyu'] = {}, ['shin'] = {},
['hhira'] = {}, ['hkata'] = {},
['head'] = {}, ['baş'] = {alias_of = 'head'},
['sort'] = {}, ['sıra'] = {alias_of = 'sort'},
['sayfaadı'] = {},
})
args['sayfaadı'] = args['sayfaadı'] or mw.title.getCurrentTitle().text
local veri = {
dil = lang,
alf = sc,
soz_kategorisi = poscat,
kategoriler = {},
alfabecevler = {},
baslar = {},
cekimler = {},
sira_anahtari = nil,
--custom info
orta_bilgi = {},
korunan_baslar = nil,
kana = nil,
}
local katakana_category = {}
-- sort out all the kanas and do the romanization business
format_headword(args, veri, args["head"] or args['sayfaadı'])
-- add certain "inflections" and categories for adjectives, verbs, or nouns
if pos_functions[poscat] then
pos_functions[poscat](args, veri)
end
-- the presence of kyūjitai param indicates that this is shinjitai kanji entry and vice versa
if args["kyu"] then
if veri.soz_kategorisi == "suru verbs" then
table.insert(veri.cekimler, {etiket = "[[Ek:Japonca açıklamaları#kyūjitai|kyūjitai]]", "[[" .. args["kyu"] .. "]][[する]]"})
else
table.insert(veri.cekimler, {etiket = "[[Ek:Japonca açıklamaları#kyūjitai|kyūjitai]]", args["kyu"]})
end
end
if args["shin"] then
table.insert(veri.cekimler, {etiket = "[[Ek:Japonca açıklamaları#kyūjitai|kyūjitai]]"})
if veri.soz_kategorisi == "suru verbs" then
table.insert(veri.cekimler, {etiket = "[[Ek:Japonca açıklamaları#shinjitai|shinjitai]]", "[[" .. args["shin"] .. "]][[する]]"})
else
table.insert(veri.cekimler, {etiket = "[[Ek:Japonca açıklamaları#shinjitai|shinjitai]]", args["shin"]})
end
end
historical_kana(args, veri, poscat)
-- categorize by joyo kanji and number of kanji
categorize_by_kanji(veri, args['sayfaadı'])
-- categorize by the script of the pagename or specific characters contained in it
extra_categorization(veri, args['sayfaadı'], katakana_category)
veri.sira_anahtari = args['sort'] or veri.kana and m_ja.jsort(veri.kana) or nil
return
(veri.kana and '<span id="' .. veri.kana .. '"></span>' or '') ..
require('Modül:başlık başı').tam_baslikbasi(veri)
:gsub('<span class="gender">.-</span>', '<i>'..table.concat(veri.orta_bilgi, ' ')..'</i>') ..
require("Modül:araçlar").format_categories(katakana_category, lang, veri.sira_anahtari and m_ja.hira_to_kata(veri.sira_anahtari))
end
return export