モジュール:ga-mutation

出典: フリー多機能辞典『ウィクショナリー日本語版(Wiktionary)』
ナビゲーションに移動 検索に移動

このモジュールについての説明文ページを モジュール:ga-mutation/doc に作成できます

local m_links = require("モジュール:links")

local lang = require("モジュール:languages").getByCode("ga")

local export = {}


local function repl(forms, param)
	if param ~= "normal" and forms[param] == forms["normal"] then
		return "''変化なし''"
	end
	
	local ret = m_links.full_link({lang = lang, term = forms[param]})
	
	if param == "len" and forms.an ~= forms.normal then
		ret = ret .. "<br/>''" .. m_links.full_link({lang = lang, alt = "an"}) .. "の後で'' " .. m_links.full_link({lang = lang, term = forms.an})
	end
	
	return ret
end


local table_cons = [=[
{| border="1" cellpadding="4" cellspacing="0" class="inflection-table" style="align: left; margin: 0.5em 0 0 0; border-style: solid; border: 1px solid #7f7f7f; border-right-width: 2px; border-bottom-width: 2px; border-collapse: collapse; background-color: #F8F8F8; font-size: 95%;"
|-
! colspan="3" | アイルランド語の緩音現象
|-
! 語根
! 緩音化
! 暗音化
|-
| {{{normal}}}
| {{{len}}}
| {{{ecl}}}
|-
| colspan="3" | <small style="font-size:85%;">''Note:'' この形の幾つかは仮定に基づいたものである可能性があり<br />全ての変化が実際に起こるとは限らない。</small>
|}]=]


function export.mut_cons(frame)
	local params = {
		[1] = {required = true, default = "{{{1}}}"},
		[2] = {required = true, default = "{{{2}}}"},
		}
	
	local args = require("モジュール:parameters").process(frame:getParent().args, params)
	
	local forms = require("モジュール:ga-common").mutations(args[1] .. args[2])
	
	return (mw.ustring.gsub(table_cons, "{{{([a-z0-9_]+)}}}", function(param) return repl(forms, param) end))
end


local table_vowel = [=[
{| border="1" cellpadding="4" cellspacing="0" class="inflection-table" style="align: left; margin: 0.5em 0 0 0; border-style: solid; border: 1px solid #7f7f7f; border-right-width: 2px; border-bottom-width: 2px; border-collapse: collapse; background-color: #F8F8F8; font-size: 95%;"
|-
! colspan="4" | アイルランド語の緩音現象
|-
! 語根 !! 暗音化 !! 語頭音h添加 !! 語頭音t添加
|-
| {{{normal}}}
| {{{ecl}}}
| {{{hpro}}}
| {{{tpro}}}
|-
| colspan="4" | <small style="font-size:85%;">''Note:'' この形の幾つかは仮定に基づいたものである可能性があり<br />全ての変化が実際に起こるとは限らない。</small>
|}]=]


function export.mut_vowel(frame)
	local params = {
		["uc"] = {type = "boolean"},
		}
	
	local args = require("モジュール:parameters").process(frame:getParent().args, params)
	
	local forms = require("モジュール:ga-common").mutations(mw.title.getCurrentTitle().subpageText, "msn")
	
	return (mw.ustring.gsub(table_vowel, "{{{([a-z0-9_]+)}}}", function(param) return repl(forms, param) end))
end


function export.mut(frame)
	local params = {
		[1] = {},
		}
	
	local args = require("モジュール:parameters").process(frame:getParent().args, params)
	
	local forms = require("モジュール:ga-common").mutations(mw.title.getCurrentTitle().subpageText, args[1])
	local wikicode = mw.ustring.find(mw.ustring.lower(mw.title.getCurrentTitle().subpageText), "^[aeiouáéíóú]") and table_vowel or table_cons
	
	return (mw.ustring.gsub(wikicode, "{{{([a-z0-9_]+)}}}", function(param) return repl(forms, param) end))
end

return export