Modul:Výslovnost češtiny: Porovnání verzí
Vzhled
Smazaný obsah Přidaný obsah
přidána podpora pro slabikotvorné m, komentáře |
oprava náhrad dle diskuse |
||
Řádek 30: | Řádek 30: | ||
-- Konec slova |
-- Konec slova |
||
{"b$", "p"}, |
{"b$", "p"}, |
||
{"b ", "p "}, |
|||
{"d$", "t"}, |
{"d$", "t"}, |
||
{"d ", "t "}, |
|||
{"ď$", "ť"}, |
{"ď$", "ť"}, |
||
{"ď ", "ť "}, |
|||
{"g$", "k"}, |
{"g$", "k"}, |
||
{"g ", "k "}, |
|||
{"h$", "ch"}, |
{"h$", "ch"}, |
||
{"h ", "ch "}, |
|||
{"v$", "f"}, |
{"v$", "f"}, |
||
{"v ", "f "}, |
|||
{"z$", "s"}, |
{"z$", "s"}, |
||
{"z ", "s "}, |
|||
{"ž$", "š"}, |
{"ž$", "š"}, |
||
{"ž ", "š "}, |
|||
-- Slabikotvorné r (priorita kvůli závislosti na kontextu) |
-- Slabikotvorné r (priorita kvůli závislosti na kontextu) |
||
{consonants_group .. "r" .. consonants_group, "%1r̩%2"}, |
{consonants_group .. "r" .. consonants_group, "%1r̩%2"}, |
||
{consonants_group .. "r$", "%1r̩"}, |
{consonants_group .. "r$", "%1r̩"}, |
||
{consonants_group .. "r ", "%1r̩ "}, |
|||
-- Slabikotvorné l (priorita kvůli závislosti na kontextu) |
-- Slabikotvorné l (priorita kvůli závislosti na kontextu) |
||
{consonants_group .. "l" .. consonants_group, "%1l̩%2"}, |
{consonants_group .. "l" .. consonants_group, "%1l̩%2"}, |
||
{consonants_group .. "l$", "%1l̩"}, |
{consonants_group .. "l$", "%1l̩"}, |
||
{consonants_group .. "l ", "%1l̩ "}, |
|||
-- Slabikotvorné m (nižší priorita než r, l kvůli řidčímu výskytu) |
-- Slabikotvorné m (nižší priorita než r, l kvůli řidčímu výskytu) |
||
{consonants_group .. "m" .. consonants_group, "%1m̩%2"}, |
{consonants_group .. "m" .. consonants_group, "%1m̩%2"}, |
||
{consonants_group .. "m$", "%1m̩"}, |
{consonants_group .. "m$", "%1m̩"}, |
||
{consonants_group .. "m ", "%1m̩ "}, |
|||
-- Znělé a neznělé ř (priorita kvůli závislosti na kontextu) |
-- Znělé a neznělé ř (priorita kvůli závislosti na kontextu) |
||
Řádek 56: | Řádek 67: | ||
{"řch", "r̝̊ch"}, |
{"řch", "r̝̊ch"}, |
||
{"ř$", "r̝̊"}, |
{"ř$", "r̝̊"}, |
||
{"ř ", "r̝̊ "}, |
|||
{"ř", "r̝"}, |
{"ř", "r̝"}, |
||
Verze z 28. 8. 2019, 20:52
Dokumentaci tohoto modulu lze vytvořit na stránce Nápověda:Modul:Výslovnost češtiny
p = {}
function Nahrad (a)
local out = mw.ustring.lower(a)
local consonants_group = "([bcdďfghjklmnopqrřsštťvwxzž])"
local voiceless_group = "([ptťkfsščp])"
-- Spíše experimentálně stanovená skupina, nebojte se opravovat
local voiced_assimilation_group = "([bdďghzž])"
local replacements = {
-- Spodoba znělosti
-- Nepřevádí přímo do IPA (kvůli eliminaci konfliktů s dalšími pravidly)
-- Znělá, neznělá -> neznělá, neznělá
{"b" .. voiceless_group, "p%1"},
{"d" .. voiceless_group, "t%1"},
{"ď" .. voiceless_group, "ť%1"},
{"g" .. voiceless_group, "k%1"},
{"h" .. voiceless_group, "ch%1"},
{"v" .. voiceless_group, "f%1"},
{"z" .. voiceless_group, "s%1"},
{"ž" .. voiceless_group, "š%1"},
-- Neznělá, znělá -> znělá, znělá
{"p" .. voiced_assimilation_group, "b%1"},
{"t" .. voiced_assimilation_group, "d%1"},
{"ť" .. voiced_assimilation_group, "ď%1"},
{"k" .. voiced_assimilation_group, "g%1"},
{"ch" .. voiced_assimilation_group, "h%1"},
{"f" .. voiced_assimilation_group, "v%1"},
{"s" .. voiced_assimilation_group, "z%1"},
{"š" .. voiced_assimilation_group, "ž%1"},
-- Konec slova
{"b$", "p"},
{"b ", "p "},
{"d$", "t"},
{"d ", "t "},
{"ď$", "ť"},
{"ď ", "ť "},
{"g$", "k"},
{"g ", "k "},
{"h$", "ch"},
{"h ", "ch "},
{"v$", "f"},
{"v ", "f "},
{"z$", "s"},
{"z ", "s "},
{"ž$", "š"},
{"ž ", "š "},
-- Slabikotvorné r (priorita kvůli závislosti na kontextu)
{consonants_group .. "r" .. consonants_group, "%1r̩%2"},
{consonants_group .. "r$", "%1r̩"},
{consonants_group .. "r ", "%1r̩ "},
-- Slabikotvorné l (priorita kvůli závislosti na kontextu)
{consonants_group .. "l" .. consonants_group, "%1l̩%2"},
{consonants_group .. "l$", "%1l̩"},
{consonants_group .. "l ", "%1l̩ "},
-- Slabikotvorné m (nižší priorita než r, l kvůli řidčímu výskytu)
{consonants_group .. "m" .. consonants_group, "%1m̩%2"},
{consonants_group .. "m$", "%1m̩"},
{consonants_group .. "m ", "%1m̩ "},
-- Znělé a neznělé ř (priorita kvůli závislosti na kontextu)
{voiceless_group .. "ř", "%1r̝̊"},
{"ř" .. voiceless_group, "r̝̊%1"},
{"chř", "chr̝̊"},
{"řch", "r̝̊ch"},
{"ř$", "r̝̊"},
{"ř ", "r̝̊ "},
{"ř", "r̝"},
-- dvojhlásky
{"au", "aʊ̯"},
{"eu", "eʊ̯"},
{"ou", "ᴐʊ̯"},
-- Skupiny samohlásek <ia, ie, ii, io, iu> v cizích slovech
{"ia", "ɪja̯"},
{"ie", "ɪjɛ"},
{"ii", "ɪjɪ̯"},
{"io", "ɪjo̯"},
{"iu", "ɪju̯"},
-- Prioritně nahrazené x, ch a c (pro zamezení konfliktů)
{"x", "ks"},
{"ch", "x"},
{"c", "t͡s"},
-- di, ti, ni
{"di", "ɟɪ"},
{"dí", "ɟiː"},
{"ti", "cɪ"},
{"tí", "ciː"},
{"ni", "ɲɪ"},
{"ní", "ɲiː"},
-- ě
{"bě", "bjɛ"},
{"dě", "ɟɛ"},
{"mě", "mɲɛ"},
{"ně", "ɲɛ"},
{"pě", "pjɛ"},
{"tě", "cɛ"},
{"vě", "vjɛ"},
-- samohlásky
{"a", "a"},
{"á", "aː"},
{"e", "ɛ"},
{"é", "ɛː"},
{"i", "ɪ"},
{"y", "ɪ"},
{"í", "iː"},
{"ý", "iː"},
{"o", "ɔ"},
{"ó", "ɔː"},
{"u", "ʊ"},
{"ú", "uː"},
{"ů", "uː"},
--souhlásky
{"š", "ʃ"},
{"ž", "ʒ"},
{"ň", "ɲ"},
{"ť", "c"},
{"ď", "ɟ"},
{"h", "ɦ"},
{"dz", "d͡z"},
{"č", "t͡ʃ"},
{"dž", "d͡ʒ"},
--[ɱ] je realizací /m/ před /f/ a /v/ (např. ve slově tramvaj)
{"mf", "ɱf"},
{"mv", "ɱv"},
--[ŋ] je realizací /n/ před /k/ a /g/ (např. ve slově banka)
{"nk", "ŋk"},
{"ng", "ŋg"},
}
for _, replacement in ipairs(replacements) do
out = mw.ustring.gsub(out, replacement[1], replacement[2])
end
return out
end
function p.print (frame)
if frame.args[1] and frame.args[1] ~= "" then
return Nahrad (frame.args[1])
elseif not frame.args[1] then
return "Chyba: Nic nezadáno"
elseif frame.args[1] == "" then
return "Chyba: Prázdný argument"
else
return "Neznámá chyba"
end
end
function p.test (frame)
local arg = {}
local nArg = 0
for a in pairs (frame:getParent().args) do
nArg = nArg + 1
table.insert (arg, frame:getParent().args[nArg])
end
local out = "TESTOVACÍ REŽIM automatické vyslovnosti pro češtinu - verze 0.03<br />"
out = out .. "<hr />"
if nArg == 1 then
out = out .. "Zadáno: <b>" .. arg[1] .. "</b> IPA: <i>" .. Nahrad (arg[1]) .. "</i><br />"
elseif nArg >1 then
out = out .. "<table class=\"wikitable sortable\">"
out = out .. "<th>zadáno</th><th>IPA</th>"
for n in pairs (arg) do
out = out .. "<tr><td>" .. arg[n] .. "</td><td>" .. Nahrad (arg[n]) .. "</td></tr>"
end
out = out .. "</table>"
end
return out
end
return p