Anonymous
Not logged in
Talk
Contributions
Create account
Log in
Search
Editing
Module:Autotranslate
From MEpedia, a crowd-sourced encyclopedia of ME and CFS science and history
Namespaces
Module
Discussion
More
More
Page actions
Read
Edit source
History
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
--[[ __ __ _ _ _ _ _ _ _ | \/ | ___ __| |_ _| | ___ _ / \ _ _| |_ ___ | |_ _ __ __ _ _ __ ___| | __ _| |_ ___ | |\/| |/ _ \ / _` | | | | |/ _ (_) / _ \| | | | __/ _ \| __| '__/ _` | '_ \/ __| |/ _` | __/ _ \ | | | | (_) | (_| | |_| | | __/_ / ___ \ |_| | || (_) | |_| | | (_| | | | \__ \ | (_| | || __/ |_| |_|\___/ \__,_|\__,_|_|\___(_)_/ \_\__,_|\__\___/ \__|_| \__,_|_| |_|___/_|\__,_|\__\___| Authors and maintainers: * User:Zolo - original version * User:Jarekt ]] -- local function to help normalize input arguments local function normalize_input_args(input_args, output_args) for name, value in pairs( input_args ) do if value ~= '' then -- nuke empty strings if type(name)=='string' then name=string.lower(name) end -- convert to lower case output_args[name] = value end end return output_args end -- initialize object to be returned local p = {} --[[ autotranslate This function is the core part of the Autotranslate template. Usage from a template: {{#invoke:autotranslate|autotranslate|base=|lang= }} Parameters: frame.args.base - base page name frame.args.lang - desired language (often user's native language) Error Handling: ]] function p.autotranslate(frame) -- switch to lowercase parameters to make them case independent local args = {} args = normalize_input_args(frame:getParent().args, args) args = normalize_input_args(frame.args, args) -- get language fallback list if not args.lang or not mw.language.isSupportedLanguage(args.lang) then args.lang = frame:callParserFunction( "int", "lang" ) -- get user's chosen language end local langList = mw.language.getFallbacksFor(args.lang) table.insert(langList,1,args.lang) -- find base page local base = args.base args.base = nil assert(base and #base>0, 'Base page not provided for autotranslate' ) if not mw.ustring.find(base,':') then -- if base page does not indicate namespace base = 'Template:' .. base -- than assume it is a template end -- find base template language subpage local page = args.default -- default page if provided or nil otherwise for _, language in ipairs(langList) do if mw.title.new(base .. '/' .. language).exists then page = base .. '/' .. language -- returns only the page break end end assert(page, string.format('No fallback page found for autotranslate (base=[[%s]], lang=%s)', base, args.lang)) -- Transclude {{page |....}} with template arguments the same as the ones passed to {{autotranslate}} template. return frame:expandTemplate{ title = page, args = args} end return p
Summary:
Please make sure your edits are consistent with
MEpedia's guidelines
.
By saving changes, you agree to the
Terms of use
, and you irrevocably agree to release your contribution under the
CC BY-SA 3.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:LangSwitch
(
edit
)
Template:Module rating
(
edit
)
Template:Module rating/i18n
(
edit
)
Template:Ombox
(
edit
)
Template:Tl
(
edit
)
Template:Uselang
(
edit
)
Module:Arguments
(
edit
)
Module:Autotranslate/doc
(
edit
)
Module:Message box
(
edit
)
Module:Message box/configuration
(
edit
)
Module:No globals
(
edit
)
Module:Yesno
(
edit
)
This page is a member of a hidden category:
Category:Modules for general use
Navigation
Navigation
Skip to content
Main page
Browse
Become an editor
Random page
Popular pages
Abbreviations
Glossary
About MEpedia
Links for editors
Contents
Guidelines
Recent changes
Pages in need
Search
Help
Wiki tools
Wiki tools
Special pages
Page tools
Page tools
User page tools
More
What links here
Related changes
Page information
Page logs