وحدة:Language/scripts
صُنفت هذه الوحدة على أنها في مرحلة ألفا. تكون الوحدة في هذه المرحلة جاهزة نوعا ما لأن تستخدم من طرف ثالث، أي بمعنى أخر على النطاقات في صفحات التجارب. لكن يجب أن تستخدم في صفحات محددة للغاية وأن لا يوسع إستخدامها ابدا، حتى تنتقل للمرحلة التي بعدها. يجب أن يضاف لهذه الوحدة صفحة توثيق تشرح مدخلاتها وطريقة استخدامها. يجب أن تراقب هذه الوحدة جيدا وملاحظة أي أخطاء قد تحدث والعمل على عزلها وإصلاحها. |
الاستخدام
* {{#invoke:Language/scripts|print|Latn}} * {{#invoke:Language/scripts|print|Grek}} * {{#invoke:Language/scripts|print|Arab}}
- 0-9A-Za-z¡-ͯḀ-ỿ
- ἀ-῾Ͱ-Ͽ
- -ۿݐ-ݿࢠ-ࣿٱ-﷽ ً-لا
* {{#invoke:Language/scripts|Latin|Latin}} * {{#invoke:Language/scripts|Latin|δημοκρατίᾱ}} * {{#invoke:Language/scripts|Latin|язы́к}} * {{#invoke:Language/scripts|Latin|العَرَبِيَّة}} * {{#invoke:Language/scripts|Latin|فارسی}}
- true
- false
- false
- false
- false
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