„Modul:Nyelvtani modul” változatai közötti eltérés
[ellenőrzött változat] | [ellenőrzött változat] |
Tartalom törölve Tartalom hozzáadva
lista jav. |
a No globals |
||
1. sor: | 1. sor: | ||
require"Modul:No globals" |
|||
local p = {} |
local p = {} |
||
local lang = mw.getContentLanguage() |
local lang = mw.getContentLanguage() |
||
-- allow to call functions with a single string or number parameter |
-- allow to call functions with a single string or number parameter |
||
function getArgs(frame, options) |
local function getArgs(frame, options) |
||
if type(frame) ~= "table" then frame = { frame } end |
if type(frame) ~= "table" then frame = { frame } end |
||
return require('Modul:Arguments').getArgs(frame, options) |
return require('Modul:Arguments').getArgs(frame, options) |
||
9. sor: | 10. sor: | ||
-- needed to be called from pcall |
-- needed to be called from pcall |
||
function formatDateLocal(form, tstamp, loc) |
local function formatDateLocal(form, tstamp, loc) |
||
return lang:formatDate('n', dateStr, loc) |
return lang:formatDate('n', dateStr, loc) |
||
end |
end |
||
15. sor: | 16. sor: | ||
-- returns "a" or "az" depending on the first character of the word passed to the template |
-- returns "a" or "az" depending on the first character of the word passed to the template |
||
function p.az(frame) |
function p.az(frame) |
||
str = getArgs(frame)[1] |
local str = getArgs(frame)[1] |
||
if not str then return "a(z)" end |
if not str then return "a(z)" end |
||
firstChar = mw.ustring.sub(str, 1, 1) |
local firstChar = mw.ustring.sub(str, 1, 1) |
||
firstCharLower = mw.ustring.lower(firstChar) |
local firstCharLower = mw.ustring.lower(firstChar) |
||
if (nil ~= mw.ustring.find("aáeéiíoóöőuúüű", firstCharLower, 1, true)) then |
if (nil ~= mw.ustring.find("aáeéiíoóöőuúüű", firstCharLower, 1, true)) then |
||
42. sor: | 43. sor: | ||
-- returns month name in Hungarian + "ából" / "jából" / "éből" / "jéből" accordingly |
-- returns month name in Hungarian + "ából" / "jából" / "éből" / "jéből" accordingly |
||
function p.fromMonthSuffix(frame) |
function p.fromMonthSuffix(frame) |
||
dateStr = getArgs(frame)[1] |
local dateStr = getArgs(frame)[1] |
||
suffixes = { |
local suffixes = { |
||
[1] = "jából", |
[1] = "jából", |
||
[2] = "jából", |
[2] = "jából", |
||
60. sor: | 61. sor: | ||
if (pcall(formatDateLocal, 'n', dateStr)) then |
if (pcall(formatDateLocal, 'n', dateStr)) then |
||
monthIndex = lang:formatDate('n', dateStr) |
local monthIndex = lang:formatDate('n', dateStr) |
||
return lang:formatDate('Y F', dateStr)..suffixes[tonumber(monthIndex)] |
return lang:formatDate('Y F', dateStr)..suffixes[tonumber(monthIndex)] |
||
else |
else |
||
70. sor: | 71. sor: | ||
-- returns month name in Hungarian + "i" |
-- returns month name in Hungarian + "i" |
||
function p.ofMonthSuffix(frame) |
function p.ofMonthSuffix(frame) |
||
dateStr = getArgs(frame)[1] |
local dateStr = getArgs(frame)[1] |
||
if (pcall(formatDateLocal, 'n', dateStr)) then |
if (pcall(formatDateLocal, 'n', dateStr)) then |
||
82. sor: | 83. sor: | ||
-- returns number + "-s" / "-as" / "-es" / "-os" / "-ós" / "-ös" |
-- returns number + "-s" / "-as" / "-es" / "-os" / "-ós" / "-ös" |
||
function p.hanyas(frame) |
function p.hanyas(frame) |
||
str = getArgs(frame)[1]; |
local str = getArgs(frame)[1]; |
||
if (nil == str) then |
if (nil == str) then |
||
88. sor: | 89. sor: | ||
end |
end |
||
number = tonumber(str) |
local number = tonumber(str) |
||
if (nil == number) then |
if (nil == number) then |
||
number = mw.ustring.match(str, "%d*$") |
number = mw.ustring.match(str, "%d*$") |
||
end |
end |
||
suffixesNonRound = { |
local suffixesNonRound = { |
||
[1] = "es", |
[1] = "es", |
||
[2] = "es", |
[2] = "es", |
||
105. sor: | 106. sor: | ||
} |
} |
||
suffixesRoundBelow100 = { |
local suffixesRoundBelow100 = { |
||
[1] = "es", |
[1] = "es", |
||
[2] = "as", |
[2] = "as", |
||
117. sor: | 118. sor: | ||
} |
} |
||
lastChar = mw.ustring.sub(str, -1) |
local lastChar = mw.ustring.sub(str, -1) |
||
suffixIndex = tonumber(lastChar) |
local suffixIndex = tonumber(lastChar) |
||
if (nil ~= suffixIndex) then |
if (nil ~= suffixIndex) then |
||
169. sor: | 170. sor: | ||
-- returns number + "-ban" / "-ben" |
-- returns number + "-ban" / "-ben" |
||
function p.hanyban(frame) |
function p.hanyban(frame) |
||
str = getArgs(frame)[1]; |
local str = getArgs(frame)[1]; |
||
if (nil == str) then |
if (nil == str) then |
||
175. sor: | 176. sor: | ||
end |
end |
||
number = tonumber(str) |
local number = tonumber(str) |
||
if (nil == number) then |
if (nil == number) then |
||
number = mw.ustring.match(str, "%d*$") |
number = mw.ustring.match(str, "%d*$") |
||
end |
end |
||
suffixesNonRound = { |
local suffixesNonRound = { |
||
[1] = "ben", |
[1] = "ben", |
||
[2] = "ben", |
[2] = "ben", |
||
192. sor: | 193. sor: | ||
} |
} |
||
suffixesRoundBelow100 = { |
local suffixesRoundBelow100 = { |
||
[1] = "ben", |
[1] = "ben", |
||
[2] = "ban", |
[2] = "ban", |
||
204. sor: | 205. sor: | ||
} |
} |
||
lastChar = mw.ustring.sub(str, -1) |
local lastChar = mw.ustring.sub(str, -1) |
||
suffixIndex = tonumber(lastChar) |
local suffixIndex = tonumber(lastChar) |
||
if (nil ~= suffixIndex) then |
if (nil ~= suffixIndex) then |
A lap 2015. június 23., 13:08-kori változata
Nyelvtani modul[mi ez?] • [dokumentáció: mutat, ] • [tesztek: Lua-hiba a(z) package.lua modulban a(z) 80. sorban: module 'Modul:No globals' not found (részletek)]
Előfordulások
- startsWithAz: Sablon:Iskola infobox
require"Modul:No globals"
local p = {}
local lang = mw.getContentLanguage()
-- allow to call functions with a single string or number parameter
local function getArgs(frame, options)
if type(frame) ~= "table" then frame = { frame } end
return require('Modul:Arguments').getArgs(frame, options)
end
-- needed to be called from pcall
local function formatDateLocal(form, tstamp, loc)
return lang:formatDate('n', dateStr, loc)
end
-- returns "a" or "az" depending on the first character of the word passed to the template
function p.az(frame)
local str = getArgs(frame)[1]
if not str then return "a(z)" end
local firstChar = mw.ustring.sub(str, 1, 1)
local firstCharLower = mw.ustring.lower(firstChar)
if (nil ~= mw.ustring.find("aáeéiíoóöőuúüű", firstCharLower, 1, true)) then
return "az"
elseif (nil ~= mw.ustring.find("bcdfghjklmnpqrstvwxyz", firstCharLower, 1, true)) then
return "a"
else
return "a(z)"
end
end
-- Return true if first argument starts with A or Az, otherwise empty string.
function p.startsWithAz(frame)
local s = getArgs(frame)[1]
return (s == nil and '') or tostring(mw.ustring.upper(mw.ustring.sub(s, 1, 2)) == 'A '
or mw.ustring.upper(mw.ustring.sub(s, 1, 3)) == 'AZ '
or ''
)
end
-- returns month name in Hungarian + "ából" / "jából" / "éből" / "jéből" accordingly
function p.fromMonthSuffix(frame)
local dateStr = getArgs(frame)[1]
local suffixes = {
[1] = "jából",
[2] = "jából",
[3] = "ából",
[4] = "ából",
[5] = "ából",
[6] = "ából",
[7] = "ából",
[8] = "ából",
[9] = "éből",
[10] = "éből",
[11] = "éből",
[12] = "éből"
}
if (pcall(formatDateLocal, 'n', dateStr)) then
local monthIndex = lang:formatDate('n', dateStr)
return lang:formatDate('Y F', dateStr)..suffixes[tonumber(monthIndex)]
else
return dateStr
end
end
-- returns month name in Hungarian + "i"
function p.ofMonthSuffix(frame)
local dateStr = getArgs(frame)[1]
if (pcall(formatDateLocal, 'n', dateStr)) then
return lang:formatDate('Y F', dateStr).."i"
else
return dateStr
end
end
-- returns number + "-s" / "-as" / "-es" / "-os" / "-ós" / "-ös"
function p.hanyas(frame)
local str = getArgs(frame)[1];
if (nil == str) then
return ""
end
local number = tonumber(str)
if (nil == number) then
number = mw.ustring.match(str, "%d*$")
end
local suffixesNonRound = {
[1] = "es",
[2] = "es",
[3] = "as",
[4] = "es",
[5] = "ös",
[6] = "os",
[7] = "es",
[8] = "as",
[9] = "es"
}
local suffixesRoundBelow100 = {
[1] = "es",
[2] = "as",
[3] = "as",
[4] = "es",
[5] = "es",
[6] = "as",
[7] = "es",
[8] = "as",
[9] = "es"
}
local lastChar = mw.ustring.sub(str, -1)
local suffixIndex = tonumber(lastChar)
if (nil ~= suffixIndex) then
if (0 ~= suffixIndex) then
return str.."-"..suffixesNonRound[suffixIndex]
else
if (0 == tonumber(str) or 0 == tonumber(number)) then
-- return the parameter value + "-s" if
-- the parameter value is exactly 0 or
-- a NaN ending with a number that evaluates to 0 (like "M0" or "dsdadsa000")
return str.."-s"
elseif (0 ~= (number % 100)/10) then
suffixIndex = (number % 100)/10
return str.."-"..suffixesRoundBelow100[suffixIndex]
elseif (0 ~= (number % 1000)/100) then
return str.."-as"
elseif (0 == number % 10^36) then
return str.."-s"
elseif (0 == number % 10^33) then
return str.."-os"
elseif (0 == number % 10^30) then
return str.."-s"
elseif (0 == number % 10^27) then
return str.."-os"
elseif (0 == number % 10^24) then
return str.."-s"
elseif (0 == number % 10^21) then
return str.."-os"
elseif (0 == number % 10^18) then
return str.."-s"
elseif (0 == number % 10^15) then
return str.."-os"
elseif (0 == number % 10^12) then
return str.."-s"
elseif (0 == number % 10^9) then
return str.."-os"
elseif (0 == number % 10^6) then
return str.."-s"
elseif (0 == number % 10^3) then
return str.."-es"
end
end
end
return str
end
-- returns number + "-ban" / "-ben"
function p.hanyban(frame)
local str = getArgs(frame)[1];
if (nil == str) then
return ""
end
local number = tonumber(str)
if (nil == number) then
number = mw.ustring.match(str, "%d*$")
end
local suffixesNonRound = {
[1] = "ben",
[2] = "ben",
[3] = "ban",
[4] = "ben",
[5] = "ben",
[6] = "ban",
[7] = "ben",
[8] = "ban",
[9] = "ben"
}
local suffixesRoundBelow100 = {
[1] = "ben",
[2] = "ban",
[3] = "ban",
[4] = "ben",
[5] = "ben",
[6] = "ban",
[7] = "ben",
[8] = "ban",
[9] = "ben"
}
local lastChar = mw.ustring.sub(str, -1)
local suffixIndex = tonumber(lastChar)
if (nil ~= suffixIndex) then
if (0 ~= suffixIndex) then
return str.."-"..suffixesNonRound[suffixIndex]
else
if (0 == tonumber(str) or 0 == tonumber(number)) then
-- return the parameter value + "-s" if
-- the parameter value is exactly 0 or
-- a NaN ending with a number that evaluates to 0 (like "M0" or "dsdadsa000")
return str.."-ban"
elseif (0 ~= (number % 100)/10) then
suffixIndex = (number % 100)/10
return str.."-"..suffixesRoundBelow100[suffixIndex]
elseif (0 ~= (number % 1000)/100) then
return str.."-ban"
elseif (0 == number % 10^6) then
return str.."-ban"
elseif (0 == number % 10^3) then
return str.."-ben"
end
end
end
return str
end
-- creates a list from (any number of) unnamed arguments using separators
-- in named arguments ("elválasztó" and "utolsó" for last) or default values
-- with Scribunto function mw.text.listToText()
function p.lista(frame)
local args = getArgs(frame)
local list = {}
for n, v in pairs(args) do
if type(n) == 'number' then table.insert(list, v) end -- insert unnamed parameters into the table
end
return mw.text.listToText(list, args['elválasztó'], args['utolsó'])
end
return p