Bước tới nội dung

Mô đun:Tfng-translit

Từ điển mở Wiktionary

Mô đun này có chức năng chuyển tự văn bản trong Chữ Tifinagh. Nó được sử dụng để phiên âm tiếng Ghadames, tiếng Ghomara, tiếng Numidia, tiếng Tarifit, tiếng Tashelhit, tiếng Tachawit, tiếng Tetserret, tiếng Tamazight Trung Atlas, tiếng Zenaga, and tiếng Tamazight Maroc chuẩn. Lưu ý, không nên gọi mô đun này trực tiếp trong các bản mẫu hoặc mô đun khác. Để sử dụng trong một bản mẫu, hãy dùng {{xlit}}. Còn trong một mô đun, hãy dùng Mô đun:languages#Language:transliterate.

Đối với trường hợp kiểm thử, xem Module:Tfng-translit/testcases.

Chức năng

[sửa]
tr(text, lang, sc)
Chuyển tự một text (văn bản) được đưa ra và viết bằng chữ viết được xác định bởi mã sc, và ngôn ngữ được xác định bởi mã lang.
Nếu chuyển tự thất bại, nó sẽ gọi giá trị nil.
local export = {}

local tt = {}

tt["Tfng"] = {
	["common"] = {
		["ⴰ"] = "a",
		["ⴱ"] = "b",
		["ⴲ"] = "ḇ",
		["ⴳ"] = "g",
		["ⴴ"] = "g",
		["ⴵ"] = "ǧ",
		["ⴶ"] = "ǧ",
		["ⴷ"] = "d",
		["ⴸ"] = "ḏ",
		["ⴹ"] = "ḍ",
		["ⴺ"] = "ḍ",
		["ⴻ"] = "e",
		["ⴼ"] = "f",
		["ⴽ"] = "k",
		["ⴾ"] = "k",
		["ⴿ"] = "k",
		["ⵀ"] = "h", -- tmh, thv, taq, ttq, thz: "b"
		["ⵁ"] = "h",
		["ⵂ"] = "h",
		["ⵃ"] = "ḥ",
		["ⵄ"] = "ɛ",
		["ⵅ"] = "x",
		["ⵆ"] = "x",
		["ⵇ"] = "q",
		["ⵈ"] = "q",
		["ⵉ"] = "i",
		["ⵊ"] = "j",
		["ⵋ"] = "j",
		["ⵌ"] = "j",
		["ⵍ"] = "l",
		["ⵎ"] = "m",
		["ⵏ"] = "n",
		["ⵐ"] = "ny",
		["ⵑ"] = "ng",
		["ⵒ"] = "p",
		["ⵓ"] = "u", -- tmh, thv, taq, ttq, thz: "w"
		["ⵔ"] = "r",
		["ⵕ"] = "ṛ",
		["ⵖ"] = "ɣ",
		["ⵗ"] = "ɣ",
		["ⵘ"] = "j", -- thz: "ɣ"
		["ⵙ"] = "s",
		["ⵚ"] = "ṣ",
		["ⵛ"] = "š",
		["ⵜ"] = "t",
		["ⵝ"] = "ṯ",
		["ⵞ"] = "č",
		["ⵟ"] = "ṭ",
		["ⵠ"] = "v",
		["ⵡ"] = "w",
		["ⵢ"] = "y",
		["ⵣ"] = "z",
		["ⵤ"] = "z",
		["ⵥ"] = "ẓ",
		["ⵦ"] = "e",
		["ⵧ"] = "o",
		["ⵯ"] = "ʷ",
		["⵰"] = ".",
		["⵿"] = ""
	},
	["tmh"] = {["ⵀ"] = "b", ["ⵓ"] = "w"},
	["thv"] = {["ⵀ"] = "b", ["ⵓ"] = "w"},
	["taq"] = {["ⵀ"] = "b", ["ⵓ"] = "w"},
	["ttq"] = {["ⵀ"] = "b", ["ⵓ"] = "w"},
	["thz"] = {["ⵀ"] = "b", ["ⵓ"] = "w", ["ⵘ"] = "ɣ"}
}

tt["Latn"] = {
	["common"] = {
		["a"] = "ⴰ",
		["ā"] = "ⴰⴰ",
		["b"] = "ⴱ",
		["ḇ"] = "ⴲ",
		["ǧ"] = "ⴵ",
		["g"] = "ⴳ",
		["d"] = "ⴷ",
		["ḏ"] = "ⴸ",
		["ḍ"] = "ⴹ",
		["e"] = "ⴻ",
		["f"] = "ⴼ",
		["k"] = "ⴽ",
		["h"] = "ⵀ",
		["ḥ"] = "ⵃ",
		["ɛ"] = "ⵄ",
		["x"] = "ⵅ",
		["q"] = "ⵇ",
		["i"] = "ⵉ",
		["j"] = "ⵊ",
		["l"] = "ⵍ",
		["m"] = "ⵎ",
		["n"] = "ⵏ",
		["p"] = "ⵒ",
		["u"] = "ⵓ",
		["r"] = "ⵔ",
		["ṛ"] = "ⵕ",
		["ɣ"] = "ⵖ",
		["s"] = "ⵙ",
		["ṣ"] = "ⵚ",
		["š"] = "ⵛ",
		["t"] = "ⵜ",
		["ṯ"] = "ⵝ",
		["č"] = "ⵞ",
		["ṭ"] = "ⵟ",
		["v"] = "ⵠ",
		["w"] = "ⵡ",
		["y"] = "ⵢ",
		["z"] = "ⵣ",
		["ẓ"] = "ⵥ",
		["o"] = "ⵧ",
		["ʷ"] = "ⵯ",
		["."] = "⵰",
	},
	["tmh"] = {["b"] = "ⵀ", ["w"] = "ⵓ"},
	["thv"] = {["b"] = "ⵀ", ["w"] = "ⵓ"},
	["taq"] = {["b"] = "ⵀ", ["w"] = "ⵓ"},
	["ttq"] = {["b"] = "ⵀ", ["w"] = "ⵓ"},
	["thz"] = {["b"] = "ⵀ", ["w"] = "wⵓ", ["ɣ"] = "ⵘ"}
}

function export.tr_alt(text, lang, sc)
	if not sc then
		sc = require("Module:languages").getByCode(lang or "ber"):findBestScript(text):getCode()
	end

	if sc == "Latn" then
		text = mw.ustring.lower(text)
		if tt[sc][lang] then
			text = mw.ustring.gsub(text, '.', tt[sc][lang])
		end
		text = mw.ustring.gsub(text, '.', tt[sc]["common"])
	else
		text = nil
	end

	return text
end

function export.tr(text, lang, sc)
	if not sc then
		sc = require("Module:languages").getByCode(lang or "ber"):findBestScript(text):getCode()
	end

	if sc ~= "Tfng" then
		text = nil
	else
		if tt[sc][lang] then
			text = mw.ustring.gsub(text, '.', tt[sc][lang])
		end
		text = mw.ustring.gsub(text, '.', tt[sc]["common"])
	end

	return text
end

return export