Module:Language/scripts
local p = {}
local gsub = mw.ustring.gsub local length = mw.ustring.len
local data = require("Module:Language/scripts/data")
function p.print(frame) local scriptCode = frame.args[1] local scriptData = scriptCode and data[scriptCode] or "Please supply a valid script code." local characters = scriptData and scriptData.characters or "No characters found for " .. scriptCode .. "." return characters end
local script = {}
-- Based on the Script:countCharacters() function of Module:scripts on Wiktionary local function countCharacters(text, scriptCode) if not data[scriptCode]["characters"] then return 0 else local _, count = gsub(text, "[" .. data[scriptCode]["characters"] .. "]", "") return count end end
function p.isLatn(text) if type(tostring(text)) == "string" then local count = countCharacters(text, "Latn") if count < (length(text) / 4) then -- Only 25% of characters in string are Latin return false else return true end else return nil end end
function p.Latin(frame) local text = frame.args[1] return p.isLatn(text) end
return p