Module:Infobox multi-lingual name/sandbox: Difference between revisions

Content deleted Content added
Engvar
Tag: Reverted
remove ambiguous references to "_transl"
 
(8 intermediate revisions by 5 users not shown)
Line 2:
TODO:
all non-English text wrapped in {{lang}}?
distingushdistinguish various scripts? Kanji is ja-Hani ...
every child infobox should support translit / transcription parameter(s)
every child infobox should have a literal meaning parameter
Line 10:
 
require('strict');
local data = mw.loadData ('Module:Infobox multi-lingual name/data/sandbox');
local lang_mod = require ('Module:Lang'); -- for various functions and templates provided by Module:Lang
local getArgs = require ('Module:Arguments').getArgs;
Line 122:
 
local function add_transcription (infobox_args, args, idx, show, i, lang)
local special_xscriptions_t = {['bpmf'] = '-Bopo', ['usy'] = '-Cyrl', ['xej'] = '-Arab', ['zh-dungan'] = '-Cyrl'}; -- list of transcriptions not transliterations; TODO move to ~/data?
local special_ipa_t = {['bi'] = true, ['ci'] = true, ['ki'] = true, ['lhasa'] = true, ['li'] = true, ['mi'] = true, ['uipa'] = true,};
infobox_args['header' .. i] = show and data.xscript[idx].header; -- if headers are displayed
i = i + 1; -- bump the enumerator
for _, v in ipairs (data.xscript[idx].t) do -- each label / data pair in the xscript subtable
if special_xscriptions_t[v[2]] then -- special cases for bopomofo, Siril Yëziqi which are transcriptions, not Latn transliterations
i = add_label_data_pair (infobox_args, v[1], is_set (args[v[2]]) and lang_mod._transl ({lang, args[v[2]], italic = 'no'}), i); -- enumerator is bumped here
i = add_label_data_pair (infobox_args, v[1], is_set (args[v[2]]) and lang_mod._lang ({lang .. special_xscriptions_t[v[2]], args[v[2]], italic = 'no'}), i); -- enumerator is bumped here
 
elseif special_ipa_t[v[2]] then
i = add_label_data_pair (infobox_args, v[1], args[v[2]], i); -- enumerator is bumped here
 
else
i = add_label_data_pair (infobox_args, v[1], is_set (args[v[2]]) and lang_mod._transl_xlit ({lang, args[v[2]], italic = 'no'}), i); -- enumerator is bumped here
end
end
Line 229 ⟶ 239:
end
infobox_args['bodyclass'] = 'mw-collapsible mw-collapsed';
infobox_args['bodystyle'] = 'display:inline-table; text-align: left;';
infobox_args['abovestyle'] = 'font-size: 100%; text-align: left;color: #202122; background-color: #f9ffbc;'; -- TODO: #define various colors in a common config ___location; and function?
Line 247 ⟶ 257:
--[[--------------------------< I B O X _ B O I L E R P L A T E >----------------------------------------------
 
boilerplate style settings for the various child infoboxen (not for transcription infoboxen) beausebecause they are
mostly the same child-infobox to child-infobox
 
TODO: |headercolor= is set to its default color in {{Infobox Chinese}}. Better here than there isn't it? less
maintenencemaintenance headache when a default value is set in only one place; override in the highest level appropriate
but leave the default here. in the higher-level template(s) remove |headercolor= default values
 
Line 361 ⟶ 371:
local i = 2;
 
local romanization = 'Romanization'
if args.engvar == 'b' then
romanization = 'Romanisation'
end
i = add_label_data_pair (infobox_args, '[[Arabic]]', is_set (args.arabic) and args.arabic or nil, i)
i = add_label_data_pair (infobox_args, '[[Romanization of Arabic|'..romanization..'Romanization]]', is_set (args.arabic_rom) and args.arabic_rom or nil, i)
i = add_label_data_pair (infobox_args, '[[Help:IPA for Arabic|IPA]]', is_set (args.arabic_ipa) and args.arabic_ipa or nil, i)
i = add_label_data_pair (infobox_args, 'Literal meaning', is_set (args.arabic_lit) and args.arabic_lit or nil, i)
Line 434 ⟶ 440:
i = add_label_data_pair (infobox_args, label, data, i);
local romanization = 'Romanization'
if args.engvar == 'b' then
romanization = 'Romanisation'
end
if is_set (args.lang_rom) and ietf_tag then
i = add_label_data_pair (infobox_args, args.lang_std or romanization'Romanization', lang_mod._transl_xlit ({args.lang, args.lang_rom}), i);
end
i = add_label_data_pair (infobox_args, 'IPA', args.lang_ipa, i);
Line 506 ⟶ 508:
local i = 2;
 
local romanization = '[[Romanization]]'
if args.engvar == 'b' then
romanization = '[[Romanization|Romanisation]]'
end
i = add_label_data_pair (infobox_args, '[[Dungan language|Dungan]]', is_set (args.dungan) and args.dungan or nil, i)
i = add_label_data_pair (infobox_args, '[[Xiao\'erjing]]', is_set (args['dungan-xej']) and args['dungan-xej'] or nil, i)
Line 653 ⟶ 650:
end
else
i = add_label_data_pair (infobox_args, '[[Revised Romanization of Korean|'..romanization..'Revised Romanization]]', is_set (args.rr) and lang_mod._transl_xlit ({'ko', 'rr', args.rr}) or nil, i)
local romanization = 'Revised Romanization'
i = add_label_data_pair (infobox_args, '[[McCune–Reischauer]]', is_set (args.mr) and lang_mod._transl_xlit ({'ko', 'mr', args.mr}) or nil, i)
if args.engvar == 'b' then
romanization = 'Revised Romanisation'
end
i = add_label_data_pair (infobox_args, '[[Revised Romanization of Korean|'..romanization..']]', is_set (args.rr) and lang_mod._transl ({'ko', 'rr', args.rr}) or nil, i)
i = add_label_data_pair (infobox_args, '[[McCune–Reischauer]]', is_set (args.mr) and lang_mod._transl ({'ko', 'mr', args.mr}) or nil, i)
i = add_label_data_pair (infobox_args, '[[Help:IPA/Korean|IPA]]', is_set (args.koreanipa) and args.koreanipa or nil, i)
end
Line 728 ⟶ 721:
local i = 2;
local romanization = 'Romanization'
if args.engvar == 'b' then
romanization = 'Romanisation'
end
i = add_label_data_pair (infobox_args, '[[Manchu alphabet|Manchu script]]', is_set (args.mnc) and frame:expandTemplate ({title='ManchuSibeUnicode', args = {lang='mnc', args.mnc}}) or nil, i)
i = add_label_data_pair (infobox_args, '[[Transliterations of Manchu|'..romanization..'Romanization]]', is_set (args.mnc_rom) and args.mnc_rom or nil, i)
i = add_label_data_pair (infobox_args, '[[Transliterations of Manchu|Abkai]]', is_set (args.mnc_a) and args.mnc_a or nil, i)
i = add_label_data_pair (infobox_args, '[[Transliterations of Manchu|Möllendorff]]', is_set (args.mnc_v) and args.mnc_v or nil, i)
Line 767 ⟶ 755:
local i = 2;
 
i = add_label_data_pair (infobox_args, '[[Burmese language|Burmese]]', is_set (args.my) and lang_mod._lang ({'my', args.my}) or nil, i)
i = add_label_data_pair (infobox_args, '[[Wikipedia:IPA_for_Burmese|IPA]]', is_set (args.bi) and args.bi or nil, i)
 
Line 797 ⟶ 785:
local i = 2;
local romanization = 'Romanization'
if args.engvar == 'b' then
romanization = 'Romanisation'
end
i = add_label_data_pair (infobox_args, '[[Russian language|Russian]]', is_set (args.rus) and lang_mod._lang ({'ru', args.rus}) or nil, i);
i = add_label_data_pair (infobox_args, '[[Romanization of Russian|'..romanization..'Romanization]]', is_set (args.rusr) and lang_mod._lang ({'ru-Latn', args.rusr}) or nil, i); --TODO: use transl instead?
i = add_label_data_pair (infobox_args, '[[Wikipedia:IPA for Russian|IPA]]', is_set (args.rusipa) and args.rusipa or nil, i);
i = add_label_data_pair (infobox_args, 'Literal meaning', is_set (args.ruslit) and args.ruslit or nil, i);
Line 840 ⟶ 823:
local i = 2;
 
local romanization = 'Romanization'
if args.engvar == 'b' then
romanization = 'Romanisation'
end
i = add_label_data_pair (infobox_args, '[[Thai language|Thai]]', (is_set (args.th) or is_set (args.tha)) and lang_mod._lang ({'th', args.th or args.tha}) or nil, i)
i = add_label_data_pair (infobox_args, '[[Royal Thai General System of Transcription|RTGS]]', is_set (args.rtgs) and lang_mod._transl_xlit ({'th', 'rtgs', args.rtgs}) or nil, i)
i = add_label_data_pair (infobox_args, romanization'Romanization', is_set (args.rom) and lang_mod._transl_xlit ({'th', args.rom}) or nil, i)
i = add_label_data_pair (infobox_args, '[[International Phonetic Alphabet|IPA]]', is_set (args.ipa) and args.ipa, i)
i = add_label_data_pair (infobox_args, 'Literal meaning', is_set (args.lit) and args.lit, i)
Line 949 ⟶ 927:
local i = 2;
 
i = add_label_data_pair (infobox_args, '[[Zhuang language|Zhuang]]', is_set (args.zha) and ('<span lang="za" style="font-family: Arial Unicode MS, sans-serif;">' .. args.zha .. '</span>') or nil, i)
i = add_label_data_pair (infobox_args, '[[Zhuang language|1957 orthography]]', is_set (args.zha57) and lang_mod._lang ({'za', args.zha57}) or nil, i)
i = add_label_data_pair (infobox_args, '[[Sawndip]]', is_set (args.sd) and lang_mod._lang ({'za-Hani', args.sd}) or nil, i)
 
return frame:expandTemplate ({title='Infobox', args = infobox_args});
Line 994 ⟶ 972:
image = args.pic,
sizedefault = 'frameless',
-- Make sure image inverts in night theme
class = 'skin-invert',
size = args.picsize,
upright = args.picupright,
Line 1,020 ⟶ 996:
infobox_args['headerstyle'] = 'color: #202122;background-color:' .. h_color;
infobox_args['headerstyle'] = 'width: 50%; white-space: nowrap';
-- always display the background of the image in light mode, see
-- [[Template_talk:Infobox_Chinese#Issue_in_dark_mode_or_inappropriate_use_of_infobox]]
-- FIXME: define new names for image arguments and migrate existing uses
-- to those names, so that we can use skin-invert instead for characters
infobox_args['imagestyle'] = 'background-color: #f8f9fa;'
infobox_args['imageclass'] = 'notheme'
 
return frame:expandTemplate ({title='Infobox', args = infobox_args});