Module:I18n: Difference between revisions
From Bodhicitta
((by SublimeText.Mediawiker)) |
((by SublimeText.Mediawiker)) |
||
| Line 9: | Line 9: | ||
local default = args.default or 'en' | local default = args.default or 'en' | ||
local lang = mw. | -- Get user language preference (fallback to default if not available) | ||
mw.user.getOption('language') or default | local lang = default | ||
if mw.user and mw.user.getOption then | |||
lang = mw.user.getOption('bca-language') or default | |||
end | |||
-- Create the HTML structure | -- Create the HTML structure | ||
| Line 29: | Line 32: | ||
return tostring(html) | return tostring(html) | ||
end | |||
-- Alternative simpler version that just returns the appropriate language | |||
function p.simple(frame) | |||
local args = frame:getParent().args | |||
local en = args.en or args[1] or '' | |||
local tib = args.tib or args[2] or '' | |||
local bo = args.bo or tib | |||
local lang = args.lang or 'en' | |||
if lang == 'bo' and bo ~= '' then | |||
return bo | |||
elseif lang == 'tib' and tib ~= '' then | |||
return tib | |||
else | |||
return en | |||
end | |||
end | |||
-- Function to get current user's language preference | |||
function p.getUserLang(frame) | |||
local default = frame.args.default or 'en' | |||
if mw.user and mw.user.getOption then | |||
return mw.user.getOption('bca-language') or default | |||
end | |||
return default | |||
end | end | ||
return p | return p | ||
Revision as of 17:54, 23 September 2025
Documentation for this module may be created at Module:I18n/doc
-- Module:I18n
local p = {}
function p.text(frame)
local args = frame:getParent().args
local en = args.en or args[1] or ''
local tib = args.tib or args[2] or ''
local bo = args.bo or tib -- Tibetan in Tibetan script
local default = args.default or 'en'
-- Get user language preference (fallback to default if not available)
local lang = default
if mw.user and mw.user.getOption then
lang = mw.user.getOption('bca-language') or default
end
-- Create the HTML structure
local html = mw.html.create('span')
:addClass('i18n-text')
:attr('data-lang-en', en)
:attr('data-lang-tib', tib)
:attr('data-lang-bo', bo)
-- Set initial display based on user preference or default
if lang == 'bo' and bo ~= '' then
html:wikitext(bo)
elseif lang == 'tib' and tib ~= '' then
html:wikitext(tib)
else
html:wikitext(en)
end
return tostring(html)
end
-- Alternative simpler version that just returns the appropriate language
function p.simple(frame)
local args = frame:getParent().args
local en = args.en or args[1] or ''
local tib = args.tib or args[2] or ''
local bo = args.bo or tib
local lang = args.lang or 'en'
if lang == 'bo' and bo ~= '' then
return bo
elseif lang == 'tib' and tib ~= '' then
return tib
else
return en
end
end
-- Function to get current user's language preference
function p.getUserLang(frame)
local default = frame.args.default or 'en'
if mw.user and mw.user.getOption then
return mw.user.getOption('bca-language') or default
end
return default
end
return p