Modul:S ali z: Razlika med redakcijama
Videz
Izbrisana vsebina Dodana vsebina
Brez povzetka urejanja Oznaka: vrnjeno |
Brez povzetka urejanja Oznaka: ročna vrnitev |
||
(17 vmesnih redakcij istega uporabnika ni prikazanih) | |||
Vrstica 2: | Vrstica 2: | ||
local words = mw.loadData('Modul:S ali z/besede') |
local words = mw.loadData('Modul:S ali z/besede') |
||
local lcSChars = ' |
local lcSChars = 'aeioubdgjlmnrvzž' |
||
local ucSvChars = ' |
local ucSvChars = 'AEIOUBDGJLMNRVZŽ' |
||
local function findWord(s, t) |
local function findWord(s, t) |
||
Vrstica 15: | Vrstica 15: | ||
function p._main(args) |
function p._main(args) |
||
local s = args[1] and mw.text.trim(args[1]) |
local s = args[1] and mw.text.trim(args[1]) |
||
local pron = ' |
local pron = 's' |
||
local ret = '' |
local ret = '' |
||
Vrstica 24: | Vrstica 24: | ||
s = mw.ustring.gsub(s, '%[%[[^%|]+%|(..-)%]%]', '%1') -- Odstrani wikipovezave |
s = mw.ustring.gsub(s, '%[%[[^%|]+%|(..-)%]%]', '%1') -- Odstrani wikipovezave |
||
s = mw.ustring.gsub(mw.ustring.gsub(s, '%[%[', ''), '%]%]', '') |
s = mw.ustring.gsub(mw.ustring.gsub(s, '%[%[', ''), '%]%]', '') |
||
s = mw.ustring.gsub(s, '^["%$\'%(<%[%{¢-¥₠-₿]+', '') -- Odstrani simbole na začetku |
|||
s = mw.ustring.match(s, '^%.?[0-9%u%l]+') or s -- Izvleci prvo besedo |
s = mw.ustring.match(s, '^%.?[0-9%u%l]+') or s -- Izvleci prvo besedo |
||
if mw.ustring.find(s, '^[0-9]') then -- Če se začne s številko |
if mw.ustring.find(s, '^[-+]?[0-9]') then -- Če se začne s številko |
||
s = mw.ustring.match(s, '^[0-9]+') -- Izvleci številko |
s = mw.ustring.match(s, '^[-+]?[0-9]+') -- Izvleci številko |
||
if findWord(s, words.vNumsZ) then -- Številke |
if findWord(s, words.vNumsZ) then -- Številke z z |
||
pron = 'z' |
pron = 'z' |
||
end |
end |
||
Vrstica 35: | Vrstica 34: | ||
if mw.ustring.find(s, '^[' .. ucSvChars .. ']') |
if mw.ustring.find(s, '^[' .. ucSvChars .. ']') |
||
then |
then |
||
pron = ' |
pron = 'z' |
||
end |
end |
||
else |
else |
||
Vrstica 43: | Vrstica 42: | ||
or findWord(s, words.vvWords) -- But not 'Euler' etc. |
or findWord(s, words.vvWords) -- But not 'Euler' etc. |
||
then |
then |
||
pron = ' |
pron = 'z' |
||
end |
end |
||
end |
end |
Trenutna redakcija s časom 05:55, 25. februar 2023
Zgornja dokumentacija je vključena iz Modul:S ali z/dok. (uredi | zgodovina) Urejevalci lahko preizkušate ta modul v peskovniku (ustvari | mirror) in testnihprimerih (ustvari). Prosimo, da dodate kategorije v /dok podstran. Podstrani te predloge. |
local p = {}
local words = mw.loadData('Modul:S ali z/besede')
local lcSChars = 'aeioubdgjlmnrvzž'
local ucSvChars = 'AEIOUBDGJLMNRVZŽ'
local function findWord(s, t)
for i, v in ipairs(t) do
if mw.ustring.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 = 's'
local ret = ''
if s and s ~= '' then
local origStr = s
s = mw.ustring.gsub(s, '</?[A-Za-z][^>]->', '') -- Odstrani HTML-oznake
s = mw.ustring.gsub(s, '%[%[[^%|]+%|(..-)%]%]', '%1') -- Odstrani wikipovezave
s = mw.ustring.gsub(mw.ustring.gsub(s, '%[%[', ''), '%]%]', '')
s = mw.ustring.match(s, '^%.?[0-9%u%l]+') or s -- Izvleci prvo besedo
if mw.ustring.find(s, '^[-+]?[0-9]') then -- Če se začne s številko
s = mw.ustring.match(s, '^[-+]?[0-9]+') -- Izvleci številko
if findWord(s, words.vNumsZ) then -- Številke z z
pron = 'z'
end
elseif mw.ustring.match(s, '^[0-9%u]+$') then -- It looks like an acronym
if mw.ustring.find(s, '^[' .. ucSvChars .. ']')
then
pron = 'z'
end
else
s = mw.ustring.lower(s) -- Uncapitalize
if mw.ustring.find(s, '^['.. lcSChars .. ']') then -- Črka s
if not findWord(s, words.vcWords) -- Exclude 'euro' etc.
or findWord(s, words.vvWords) -- But not 'Euler' etc.
then
pron = 'z'
end
end
end
ret = pron .. ' ' .. origStr
end
return ret
end
function p.main(frame)
return p._main(frame:getParent().args)
end
return p