text:
Module:User:Catonif/szl-IPA

local export = {}

local m_IPA = require("Module:IPA") local lang = require("Module:languages").getByCode("szl")

local V = "aãõɛeɔoɨui";

local di = { ["cz"]="t_ʂ", ["rz"]="ꙮ", ["sz"]="ʂ", ["dz"]="d_z", }

local phon = { ["a"]="a",		["ã"]="ã",		["b"]="b", ["c"]="t_s",	["ć"]="t_ɕ",	["d"]="d",	["e"]="ɛ",	["é"]="e", ["f"]="f",		["g"]="ɡ",		["h"]="x", ["i"]="i",		["j"]="j",		["k"]="k",	["l"]="l", ["ł"]="w",		["m"]="m",		["n"]="n",	["ń"]="ɲ", ["o"]="ɔ",		["ŏ"]="ɔW",		["ō"]="o",	["ô"]="wɔ", -- õ is dealt with later on	["p"]="p",		["r"]="r",		["s"]="s",	["ś"]="ɕ",	["t"]="t", ["u"]="u",		["w"]="v",		["y"]="ɨ", ["z"]="z",		["ż"]="ʐ",		["ź"]="ʑ", }

local function phonemic(text)

local ante = false; local unstressed = false;

if (text:find('^*')) then unstressed = true; text = text:sub(2); elseif (text:find('^%^')) then ante = true; text = text:sub(2); end

function rsub(s, r) text = mw.ustring.gsub(text, s, r); end

text = mw.ustring.lower(text);

rsub('ch', 'x'); rsub('[crsd]z', di); rsub('dż', 'd_ʐ'); -- handle digraphs rsub(".", phon) -- basic orthographical rules rsub('au', 'aW'); rsub("n([kɡx])", "ŋ%1"); -- (is this really phonemic?)

-- palatalisation -- palatilisation by <-i-> local C_palat_by_I = 'bdfɡxklwmnprstvzʐʂ' rsub("([" .. C_palat_by_I .. "])i([" .. V .. "])", function (c, v)		return (({			['n'] = 'ɲ',			['s'] = 'ɕ', ['z'] = 'ʑ',		})[c] or c .. 'I') .. v;	end); -- palatalisation by front vowels local C_palat_by_F = 'bdfɡxklwmnprstvzʐʂ'; local F = 'eéiy'; rsub('(['..C_palat_by_F..'])([' .. F .. '])', function (c, v)		return (({			['n'] = 'ɲ',			['s'] = 'ɕ', ['ʃ'] = 'ɕ',			['z'] = 'ʑ', ['ʒ'] = 'ʑ',		})[c] or c .. 'J') .. v;	end);

-- voicing and devoicing local T = 'ptsʂɕkx'; local D = 'bdzʐʑɡ';

rsub('(['..T..'])v', '%1f'); rsub('(['..T..'])ꙮ', '%1ʂ'); rsub('ꙮ', 'ʐ');

local function arr_list(x) local r = ''; for i in pairs(x) do r = r..i; end return r; end local devoice = { ['b'] = 'p', ['d'] = 't', ['ɡ'] = 'k', ['z'] = 's', ['v'] = 'f', ['ʒ'] = 'ʃ', ['ʑ'] = 'ɕ', ['ʐ'] = 'ʂ', };	rsub('['..arr_list(devoice)..']$', devoice);

local voice = {}; for i, v in pairs(devoice) do voice[v] = i; end

local arr_list_devoice = arr_list(devoice); local arr_list_voice = arr_list(voice);

for _ = 0, 5 do rsub('(['..arr_list_devoice..'])(['..T..'])', function (a, b) return devoice[a] .. b; end) rsub('(['..arr_list_voice..'])(['..D..'])', function (a, b) return voice[a] .. b; end) end

rsub("t([sɕ])", "t_%1"); rsub("d([zʑ])", "d_%1"); -- affricates

-- hyphenation rsub('%.', '!'); for _ = 0, 1 do		rsub('(['..V..'W])([^'..V..'W!.]*)(['..V..'])', function (a, b, c)			local function find(x) return mw.ustring.find(b, x); end			if ((mw.ustring.len(b) < 2) or find('^([td]_.)$')) then				b = '.'..b;			else				local i = 2;				if (find('^([td]_.)')) then i = 4; end				if (mw.ustring.sub(b, i, i):find('^[rlwIJ]$')) then					b = '.'..b;				else					b = mw.ustring.sub(b, 0, i - 1)..'.'..mw.ustring.sub(b, i);				end			end			return a..b..c;		end); end rsub('!', '.')

-- stress if (not unstressed) then if (ante) then rsub('%.([^.]+%.[^.]+%.[^.]+)$', 'ˈ%1'); else rsub('%.([^.]+%.[^.]+)$', 'ˈ%1'); end if (not mw.ustring.find(text, 'ˈ')) then text = 'ˈ' .. text; end end

-- this should best happen at the end becase <ɔ̃> is two characters long and would -- mess up with bracket catching. in practice it would work as well without this -- but it looks bodge-y. rsub('õ', 'ɔ̃'); rsub('_', '͡'); rsub('I', 'j'); rsub('J', 'ʲ');

text = mw.ustring.lower(text);

return text

end

local function multiword(term) if (term:find(' ')) then local s = ''; for v in term:gmatch('[^ ]+') do			s = s..phonemic(v)..' '; end return s:sub(0, -2); else return phonemic(term); end end

-- for testcases function export.testcase(text) return multiword(text); end

function export.IPA(frame) local terms = {}

local args = frame:getParent.args;

for _, term in ipairs(args) do		table.insert(terms, term) end

if #terms == 0 then terms = {mw.title.getCurrentTitle.text} end

local IPA_results = {}

for _, term in ipairs(terms) do table.insert(IPA_results, { pron = "/" .. multiword(term) .. "/" }) end

return m_IPA.format_IPA_full { lang = lang, items = IPA_results } end

return export

title: Module:User:Catonif/szl-IPA


text:
chevalier errant

Noun

 * 1) knight-errant a knight in a medieval romance who wanders in search of adventure and opportunities to prove his chivalry

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: chevalier errant


text: Тегусігальпа

title: Тегусігальпа


text:
Module:User:Catonif/szl-IPA/testcases

local tests = require('Module:UnitTests') local m_IPA = require("Module:User:Catonif/szl-IPA") local lang = require("Module:languages").getByCode("szl")

local function tag_IPA(IPA) return ' ' .. IPA .. ' ' end

local options = { display = tag_IPA } function tests:check_ipa(word, expected, respelling) self:equals(		require("Module:links").full_link({ term = word, lang = lang }, nil, true) .. (respelling and (" (respelled " .. respelling .. ")") or ""),		m_IPA.testcase(respelling or word),		expected, options	) end

function tests:test_ipa local examples = { {'klacz', 'ˈklat͡ʂ'}, {'trzeba', 'ˈt͡ʂɛ.ba'}, {'potrzebować', 'po.tʂɛˈbo.vat͡ɕ'}, {'dodrzyć', 'ˈdo.dʐɨt͡ɕ'}, {'strzoda', 'ˈst͡ʂɔ.da'}, {'abdukcyjŏ', 'abˈduk.t͡sɨ.jɔw', '^abdukcyjŏ'}, {'to', 'tɔ', '*to'}, {'abkracer', 'apˈkra.t͡sɛr'}, {'aeropōnika', 'a.ɛ.rɔ.poˈɲi.ka'}, {'abōniyrować', 'a.bo.ɲɨˈrɔ.vat͡ɕ'}, {'trochã', 'ˈtrɔ.xã'}, {'aikōniczny', 'a.i.koˈɲit͡ʂ.nɨ'}, {'modrõ', 'ˈmɔd.rɔ̃'}, {'także', 'ˈtaɡ.ʐɛ'}, {'przeblykać', 'pʂɛˈblɨ.kat͡ɕ', 'prze.blykać'}, {'twardy', 'ˈtfar.dɨ'}, {'bab', 'ˈbap'}, {'angelski', 'aŋˈɡɛl.skʲi'}, {'ôkynko', 'wɔˈkɨŋ.kɔ'}, {'ciynżki', 'ˈt͡ɕɨn.ʂkʲi'}, {'dziyń', 'ˈd͡ʑɨɲ'}, {'sjechać', 'ˈsjɛ.xat͡ɕ'}, {'ausflug', 'ˈaws.fluk'}, {'zjawisko', 'zjaˈvʲis.kɔ'}, {'ciekawość', 't͡ɕɛˈka.vɔɕt͡ɕ'}, {'dziadek', 'ˈd͡ʑa.dɛk'}, {'zalyjtować', 'za.lɨjˈtɔ.vat͡ɕ'}, {'bardzo', 'ˈbar.d͡zɔ'}, {'chciéć', 'ˈxt͡ɕet͡ɕ'}, {'chcieć', 'ˈxt͡ɕɛt͡ɕ'}, {'dziédzina', 'd͡ʑeˈd͡ʑi.na'}, {'dziedzina', 'd͡ʑɛˈd͡ʑi.na'}, {'biedro', 'ˈbjɛ.drɔ'}, {'powiedzieć', 'pɔˈvjɛ.d͡ʑɛt͡ɕ'}, {'prŏwda', 'ˈprɔwv.da'}, {'brukflŏster', 'brukˈflɔws.tɛr'}, {'brzyg', 'ˈbʐɨk'}, {'dźwiyrze', 'ˈd͡ʑvjɨ.ʐɛ'}, {'kerz', 'ˈkɛʂ'}, {'postrzodek', 'pɔˈst͡ʂɔ.dɛk', 'po.strzodek'}, {'przecã', 'ˈpʂɛ.t͡sã'}, {'brać udział', 'brat͡ɕ ˈu.d͡ʑaw', '*brać udział'}, }

self:iterate(examples, "check_ipa") end

return tests

title: Module:User:Catonif/szl-IPA/testcases


text: Module:User:Catonif/szl-IPA/testcases/documentation


text: Sta. María

title: Sta. María


text: Category:uk:Cities in Australia

title: Category:uk:Cities in Australia


text: Веллінгтон

title: Веллінгтон


text: puncture-wallahs

title: puncture-wallahs


text: sand yachting

title: sand yachting


text: sand yacht

title: sand yacht


text: sand yachts

title: sand yachts


text:
land yachting

Noun

 * 1) The practice of travelling in a land yacht.

title: land yachting


text: sail wagon

title: sail wagon


text: sail wagons

title: sail wagons


text:
Erlanger's gazelle

Etymology
, who travelled to East Africa with, who first described the species.

Noun

 * , a small dark gazelle with a stout body and short legs, found in Saudi Arabia and Yemen.

title: Erlanger's gazelle


text:
Neumann's gazelle

Etymology
, who first described the species.

title: Neumann's gazelle


text:
Floreana

Etymology
From, from , from Ecuadorian president  + , a name bestowed in 1832 upon Ecuador's annexation of the Galapagos Islands.

Translations

 * Marathi: फ्लोरेआना
 * Spanish: Floreana, Floreana

title: Floreana


text: parquisite

title: parquisite


text: parquisites

title: parquisites


text:
Reconstruction:Proto-West Germanic/framainsamōn

Etymology
Equivalent to or.

Verb

 * 1) to banish, excommunicate


text:
Reconstruction:Proto-West Germanic/gamainsamōn

Etymology
Equivalent to or.

Verb

 * 1) to join, gather
 * 2) to communicate with


text:
Reconstruction:Proto-West Germanic/uʀmainsamōn

Etymology
Equivalent to or.

Verb

 * 1) to banish, excommunicate


text:
Reconstruction:Proto-West Germanic/mainsamōn

Etymology
Equivalent to.

Verb

 * 1) to join, gather
 * 2) to communicate with
 * 3) to have sexual intercourse with


text:
San Cristobal

Etymology
From, various places named in honor of Saint Christopher, q.v..

Proper noun

 * , surrounding the island.
 * , surrounding the island.

Hyponyms

 * ,, , San Cristobal,

Translations

 * Marathi: सान क्रिस्तोबाल
 * Spanish:

title: San Cristobal


text:
буяти

Etymology
From.

Verb

 * 1) to flourish, to proliferate, to develop rapidly
 * 2) to luxuriate, to bush out, to grow abundantly/exuberantly
 * 3) to rage, to rampage
 * 4) to soar, to hover

title: буяти


text:
Neumann's hartebeest

Noun

 * 1) A cross between the Lelwel hartebeest and Swayne's hartebeest.

title: Neumann's hartebeest


text: drawes

title: drawes


text: drewe

title: drewe


text:
Reconstruction:Proto-Japonic/nama

Adjective

 * 1) raw

Descendants

 * Northern Ryukyuan:
 * Northern Ryukyuan:
 * Northern Ryukyuan:
 * Northern Ryukyuan:

title: Reconstruction:Proto-Japonic/nama


text:
pitch mining

Noun

 * 1)  The mining of steeply inclined seams of coal.

Coordinate terms

 * drift mining

title: pitch mining


text:
pitch moth

Noun

 * 1) Any of various small moths whose caterpillars feed on pines, causing the trees to shed resin in pitch-like masses.

title: pitch moth


text: pitch moths

title: pitch moths


text:
lámať

Etymology
, iterative of, from.

Verb

 * 1)  to break
 * 2)  to refract to cause (light) to change direction
 * 3)  to break a record
 * 4)  to speak a broken language to speak with faulty grammar, especially about non-native speakers
 * 5)  to be breaking
 * 1)  to speak a broken language to speak with faulty grammar, especially about non-native speakers
 * 2)  to be breaking
 * 1)  to be breaking

title: lámať


text: pitch-penny

title: pitch-penny


text:
Reconstruction:Proto-Slavic/mъrgoda

Noun

 * 1) scowl facial gesture of displeasure or disapproval

Descendants

 * South Slavic:

title: Reconstruction:Proto-Slavic/mъrgoda


text:
ピーラー

Etymology
.

Noun

 * 1) peeler

title: ピーラー


text:
મધુ

Etymology
..

Adjective

 * 1) sweet

Noun

 * 1) honey

title: મધુ


text: Category:pl:Places in Alaska, USA

title: Category:pl:Places in Alaska, USA


text: Category:cs:Places in Alaska, USA

title: Category:cs:Places in Alaska, USA


text: Category:pl:Alaska, USA

title: Category:pl:Alaska, USA


text: Category:cs:Alaska, USA

title: Category:cs:Alaska, USA


text:
pohjasteeppeni

Etymology
From.

Noun

 * 1)  positive degree

title: pohjasteeppeni


text:
ધૂમ્રપાન

Etymology
.

Noun

 * 1) smoking

title: ધૂમ્રપાન


text: Nysius

title: Nysius


text:
pitmirk

Adjective

 * 1) pitch-dark

title: pitmirk


text:
wheat bug

Noun

 * 1) A seed bug of species, native to New Zealand but introduced to Europe, that is a pest on cereals and crucifers.

title: wheat bug


text: pitty-pat

title: pitty-pat


text: pitty-patting

title: pitty-patting


text: pitty-pats

title: pitty-pats


text: pitty-patted

title: pitty-patted


text:
feohtling

Etymology
From.

Noun

 * 1) fighter

title: feohtling


text:
Rhymes:English/ɔːlstɒk

Pronunciation
,

Two syllables

 * ballstock
 * smallstock

title: Rhymes:English/ɔːlstɒk


text: pkge

title: pkge


text: pkges

title: pkges


text: Rhymes:English/ɔːls...

title: Rhymes:English/ɔːls...


text:
珓杯

Noun

 * 1)  moon blocks

title: 珓杯


text:
Rhymes:English/ɔːltlaɪk

Pronunciation
,

Two syllables

 * fault-like, faultlike
 * malt-like, maltlike
 * salt-like, saltlike
 * vault-like, vaultlike

Three syllables

 * assault-like, assaultlike
 * basalt-like, basaltlike

Three syllables

 * asphalt-like, asphaltlike
 * basalt-like, basaltlike
 * cobalt-like, cobaltlike

Four syllables

 * somersault-like, somersaultlike

title: Rhymes:English/ɔːltlaɪk


text:
ચાંદની

Etymology
/.

Noun

 * 1) moonlight

title: ચાંદની


text: Rhymes:English/ɔːltl...

title: Rhymes:English/ɔːltl...


text: amnestical

title: amnestical


text:
Rhymes:English/ɒʒɒk

Pronunciation
,

Two syllables

 * Cojoc
 * Rozhok
 * rozhok

title: Rhymes:English/ɒʒɒk


text: Rhymes:English/ɒʒ...

title: Rhymes:English/ɒʒ...


text:
સ્વર્ગ

Etymology
..

Noun

 * 1) paradise, heaven
 * 2)  svarga
 * 1)  svarga

title: સ્વર્ગ


text:
uprend

Etymology
en

Verb

 * 1)  To tear up; to uproot.

Verb

 * 1)  give up; render up; yield

title: uprend


text: uprent

title: uprent


text: uprends

title: uprends


text: uprending

title: uprending


text:
сеульський

Etymology
From. Compare 🇨🇬, 🇨🇬, 🇨🇬.

Adjective

 * 1)  Seoulite

title: сеульський


text: scariants

title: scariants


text: Nalvarte

title: Nalvarte


text:
જન્નત

Etymology
, from. Compare 🇨🇬.

Noun

 * 1)  paradise, heaven

title: જન્નત


text:
dusky knight

Noun

 * 1) The butterfly, family , of Australia and New Guinea.

title: dusky knight


text: dusky knights

title: dusky knights


text:
Rum Cay

Etymology
From the loss of a vessel transporting rum on its reefs. Its identity with 's is disputed.

title: Rum Cay


text:
slesiano

Etymology
From.

title: slesiano


text:
માશાલ્લાહ

Etymology
.

Interjection

 * 1) mashallah

title: માશાલ્લાહ


text:
ખુદા

Etymology
.

Noun

 * 1)  Allah, God

title: ખુદા


text: Апіа

title: Апіа