This module will generate entry names for Slovincian භාෂාව text. The module should preferably not be called directly from templates or other modules. To use it from a template, use {{entryname}}. Within a module, use Module:languages#Language:makeEntryName.

For testcases, see Module:zlw-slv-entryname/testcases.

Functions

makeEntryName(text, lang, sc)
Generates an entry name for a given piece of text written in the script specified by the code sc, and language specified by the code lang.
When entry name generation fails, returns nil.

local export = {}

-- U+0302 COMBINING CIRCUMFLEX ACCENT
-- U+0301 COMBINING ACUTE ACCENT
-- U+0303 COMBINING TILDE
-- U+030F COMBINING DOUBLE GRAVE ACCENT
-- U+0300 COMBINING GRAVE ACCENT
-- U+030B COMBINING DOUBLE ACUTE ACCENT
local pitch_accent = "[" .. mw.ustring.char(0x0302, 0x301, 0x303, 0x30F, 0x300, 0x30B) .. "]"

function export.makeEntryName(text)
	-- Decompose to permit diacritics to be matched even in composed characters.
	text = mw.ustring.toNFD(text)
	
	text = mw.ustring.gsub(
		text,
		"[aeɛioɵuʉ][" .. mw.ustring.char(0x300) .. "-" .. mw.ustring.char(0x36F) .. "]+",
		function(vowel)
			return mw.ustring.gsub(vowel, pitch_accent, "")
		end)
	
	-- Return back to native MediaWiki normalization.
	text = mw.ustring.toNFC(text)
	
	return text
end

return export
"https://si.wiktionary.org/w/index.php?title=Module:zlw-slv-entryname&oldid=163804" වෙතින් සම්ප්‍රවේශනය කෙරිණි