Difference between revisions of "Module:Sandbox/Erutuon/random"
< Module:Sandbox | Erutuon
Jump to navigation
Jump to search
blackwiki>Erutuon (convenient output class) |
m (31 revisions imported) |
||
| (5 intermediate revisions by 2 users not shown) | |||
| Line 4: | Line 4: | ||
Out_mt.__index = Out_mt | Out_mt.__index = Out_mt | ||
| − | function Out_mt:add( | + | function Out_mt:add(...) |
| − | self.i = self.i + 1 | + | for i = 1, select('#', ...) do |
| − | + | self.i = self.i + 1 | |
| + | self[self.i] = select(i, ...) | ||
| + | end | ||
end | end | ||
| Line 21: | Line 23: | ||
function p.show(frame) | function p.show(frame) | ||
local out = Out() | local out = Out() | ||
| − | out:add(' | + | |
| + | local language_data = require 'Module:Language/data' | ||
| + | local Wiktionary = { | ||
| + | name_to_code = require 'Module:Language/Wiktionary name to code', | ||
| + | code_to_name = require 'Module:Language/Wiktionary code to name', | ||
| + | } | ||
| + | |||
| + | for code, data in require 'Module:TableTools'.sortedPairs(language_data.languages) do | ||
| + | if not Wiktionary.code_to_name[code] then | ||
| + | out:add(code) | ||
| + | local Wiktionary_code = data.name and Wiktionary.name_to_code[data.name] | ||
| + | if Wiktionary_code then | ||
| + | out:add(' → ', Wiktionary_code) | ||
| + | local MediaWiki_name = mw.language.fetchLanguageName(Wiktionary_code, 'en') | ||
| + | if MediaWiki_name ~= data.name then | ||
| + | out:add(' (MediaWiki: ', | ||
| + | MediaWiki_name ~= '' and MediaWiki_name or '<none>', | ||
| + | ', Wiktionary: ', data.name, ')') | ||
| + | end | ||
| + | end | ||
| + | out:add('\n* ') | ||
| + | elseif data.name and data.name == mw.language.fetchLanguageName(code, 'en') then | ||
| + | out:add(code, ' (', data.name, ')') | ||
| + | out:add('\n* ') | ||
| + | end | ||
| + | end | ||
| + | |||
return out | return out | ||
end | end | ||
return p | return p | ||
Latest revision as of 09:46, 27 September 2020
Test
- Lua error in package.lua at line 80: module 'Module:Language/Wiktionary name to code' not found.
local p = {}
local Out_mt = {}
Out_mt.__index = Out_mt
function Out_mt:add(...)
for i = 1, select('#', ...) do
self.i = self.i + 1
self[self.i] = select(i, ...)
end
end
function Out_mt:__tostring()
return table.concat(self)
end
function Out()
local o = setmetatable({}, Out_mt)
o.i = 0
return o
end
function p.show(frame)
local out = Out()
local language_data = require 'Module:Language/data'
local Wiktionary = {
name_to_code = require 'Module:Language/Wiktionary name to code',
code_to_name = require 'Module:Language/Wiktionary code to name',
}
for code, data in require 'Module:TableTools'.sortedPairs(language_data.languages) do
if not Wiktionary.code_to_name[code] then
out:add(code)
local Wiktionary_code = data.name and Wiktionary.name_to_code[data.name]
if Wiktionary_code then
out:add(' → ', Wiktionary_code)
local MediaWiki_name = mw.language.fetchLanguageName(Wiktionary_code, 'en')
if MediaWiki_name ~= data.name then
out:add(' (MediaWiki: ',
MediaWiki_name ~= '' and MediaWiki_name or '<none>',
', Wiktionary: ', data.name, ')')
end
end
out:add('\n* ')
elseif data.name and data.name == mw.language.fetchLanguageName(code, 'en') then
out:add(code, ' (', data.name, ')')
out:add('\n* ')
end
end
return out
end
return p