ماڈیول:A or an
Appearance
دستاویز [تخلیق]
شاید آپ اس اسکریبنٹو ماڈیول کا دستاویزی صفحہ تخلیق کرنا چاہتے ہیں۔ صارفین ماڈیول کے تختہ مشق (تخلیق | آئینہ) اور ثابتات (تخلیق) میں تجربات کرسکتے ہیں۔ براہ کرم /دستاویز کے ذیلی صفحہ پر زمرہ جات شامل فرمائیں۔ اس ماڈیول کے ذیلی صفحات۔ |
local p = {}
local words = mw.loadData('Module:A or an/words')
local find = mw.ustring.find
local gsub = mw.ustring.gsub
local lower = mw.ustring.lower
local match = mw.ustring.match
local lcVChars = 'aeiouà-æè-ïò-öø-üāăąēĕėęěĩīĭįıijōŏőœũūŭůűų'
local ucVvChars = 'AEFHILMNORSXÀ-ÆÈ-ÏÒ-ÖØĀĂĄĒĔĖĘĚĨĪĬĮıIJŌŎŐŒÑĤĦĹĻĽĿŁŃŅŇŊŔŖŘŚŜŞ'
local function findWord(s, t)
for i, v in ipairs(t) do
if find(s, '^' .. v .. '$') then
return true
end
end
end
function p._main(args)
local s = args[1] and mw.text.trim(args[1])
local pron = 'ایک'
local ret = ''
if s and s ~= '' then
local origStr = s
s = gsub(s, '</?[A-Za-z][^>]->', '') -- Remove HTML tags
s = gsub(s, '%[%[[^%|]+%|(..-)%]%]', '%1') -- Remove wikilinks
s = gsub(gsub(s, '%[%[', ''), '%]%]', '')
s = gsub(s, '^["%$\'%(<%[%{¢-¥₠-₿]+', '') -- Strip some symbols at the beginning
s = match(s, '^%.?[0-9%u%l]+') or s -- Extract the first word
if find(s, '^[0-9]') then -- It begins with a number
s = match(s, '^[0-9]+') -- Extract the number
if findWord(s, words['vNums']) then -- '18' etc.
pron = 'ایک'
end
elseif match(s, '^[0-9%u]+$') then -- It looks like an acronym
if find(s, '^[' .. ucVvChars .. ']')
and not findWord(s, words['cvAcronyms']) -- Exclude 'NASA' etc.
then
pron = 'ایک'
end
else
s = lower(s) -- Uncapitalize
if find(s, '^['.. lcVChars .. ']') then -- It begins with a vowel
if not findWord(s, words['vcWords']) -- Exclude 'euro' etc.
or findWord(s, words['vvWords']) -- But not 'Euler' etc.
then
pron = 'ایک'
end
elseif args.variety and lower(args.variety) == 'us' -- 'herb' etc.
and findWord(s, words['cvWordsUS'])
or findWord(s, words['cvWords']) -- 'hour' etc.
then
pron = 'ایک'
end
end
ret = pron .. ' ' .. origStr
end
return ret
end
function p.main(frame)
return p._main(frame:getParent().args)
end
return p