Pergi ke kandungan

Modul:pendokumenan/functions/zh data

Daripada Wikikamus
return function (title, cats)
	local output = require("Module:array")()
	
	local function zh_link(lang, word)
		return require("Module:links").full_link{
			lang = lang,
			term = word,
			tr = "-"
		}
	end
	
	local zh_data_subpage, lang_code, reconstruction, last_segment =
		mw.ustring.match(title.fullText,
			"^Modul:zh/data/((%l%l%l)%-pron%-?([^/]-))/(.+)$")
	if zh_data_subpage == "ltc-pron" or zh_data_subpage == "och-pron-BS"
			or zh_data_subpage == "och-pron-ZS" then
		require('Module:zh-track').track_data_module(title.fullText)
		
		local lang = require "Module:languages".getByCode(lang_code)
		
		local characters, extra
		-- Last segment is either a Han character or three hexadecimal digits
		-- (the first three digits of the code point).
		if mw.ustring.len(last_segment) == 1 then
			characters = zh_link(lang, last_segment)
			extra = ""
		else
			local code_point_prefix = last_segment
			local function make_code_point(digit)
				return tonumber(code_point_prefix .. (digit):rep(6 - #code_point_prefix), 16)
			end
			characters = (("aksara dalam julat U+%04X–U+%04X"):format(
				make_code_point("0"), make_code_point("F")))
			
			extra = " ini merupakan suatu percubaan dan tidak digunakan. Ia"
		end
		output:insert(('Modul%s mengandungi data berkenaan sebutan %s')
			:format(extra, characters))
		
		local see_also_link
		if reconstruction == "BS" then
			see_also_link = 'Wikikamus:Garis panduan entri bahasa Cina-Tibet Purba#Rekonstruksi Baxter-Sagart (2014)'
		elseif reconstruction == "ZS" then
			see_also_link = 'Wikikamus:Garis panduan entri bahasa Cina-Tibet Purba#Rekonstruksi Zhengzhang (2003)'
		else
			reconstruction = nil
		end
		
		local lang_link = lang:makeCategoryLink()
		if reconstruction then
			output:insert(("menurut rekonstruksi bahasa %s oleh %s.")
				:format(lang_link, reconstruction == "BS" and "Baxter-Sagart" or "Zhengzhang"))
		else
			output:insert(("menurut %s."):format(lang_link))
		end
		
		if see_also_link then
			output:insert("Lihat " .. require("Module:links").section_link(see_also_link)
				.. " untuk maklumat lanjut.")
		end
		
		return output:concat(" ") .. "\n\nJika anda nampak ada ralat, sila hantar "
			.. "permintaan sunting di [[WT:Kedai Kopi|Kedai Kopi]]."
	end
end