Module:jbo-etym
- The following documentation is located at Module:jbo-etym/documentation. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
This module jbo-etym requires
- the "Module:languages" and uses the getByCode function to get the Canonical name for the language.
- the "Module:links" and uses the full_link function to
- form strings if '_t' is passed as the last argument.
- form strings if "_s" is passed as an argument
- form strings if "_tr" is passed as an argument
The Module jbo-etym is called by the template jbo-etym The module is given an argument which is indexed by one of six strings, which are the six(6) strings used to identify the language that are in the etymology of the Lojban word for this page. These languages are: "zh" (Chinese) "en" (English) "hi" () "es" (Spanish) "ru" (Russian) "ar" (Arabic).
Initially the function export.show retrieves its arguments from the stack from the call to Template:jbo-etym (using frame:getParent().args ) and passes each table element to the function "append" with the language name associated with that argument.
The function append creates a string with the proper format to show the list of languages, and which string in those languages contributed to this lojban entity.
local export = {}
function export.show(frame)
local args = frame:getParent().args
return
"''In Lojbanized spelling.''" ..
append(args, "zh") ..
append(args, "en") ..
append(args, "hi") ..
append(args, "es") ..
append(args, "ru") ..
append(args, "ar")
end
function append(args, code)
local ret = ""
if args[code] then
local lang = require("Module:languages").getByCode(code)
ret = ret .. "\n* " .. lang:getCanonicalName() .. ": " .. args[code]
if args[code .. '_t'] then
local m_links = require("Module:links")
ret = ret .. " — ".. m_links.full_link({lang = lang, term = args[code .. '_t'], tr = (args[code..'_tr'] and "")}, nil, true)
-- It seems full_link({term="類"}) now produces something like "類/类" already,
-- and this is causing jbo-etym to emit simplified forms twice, like "類/类/类 (lèi) (lèi)"
-- so let's try skipping handling of '_s'.
-- if args[code .. '_s'] then
-- ret = ret .. "/" .. m_links.full_link({lang = lang, term = args[code .. '_s']}, nil, true)
-- end
if args[code..'_tr'] then
if mw.ustring.find(args[code .. '_tr'],'[%[%](){}]') then error('unauthorized characters') end
ret = ret .. " (" .. args[code .. '_tr'] .. ")"
end
end
end
return ret
end
return export