fbpx
วิกิพีเดีย

มอดูล:In lang/sandbox

คู่มือการใช้งานมอดูล[สร้าง]
require ('Module:No globals');   --[[--------------------------< _ I N _ L A N G >--------------------------------------------------------------  implements {{in lang}}  Module entry point from another module  |link=yes - creates wikilinked language names |template=<template name> - customizes error messages created by Module:lang |list-cats=yes - documentation tool returns language-category names of cats populated by this template  <span class="languageicon">(in <language>)</span>  ]]  local function _in_lang (args)  local synonym_table = mw.loadData ('Module:Lang/ISO 639 synonyms'); -- ISO 639-2/639-2T code translation to 639-1 code  local list_cats = 'yes' == args['list-cats']; -- make a boolean  local list = {};  local cats = {};  local maint_msgs = {};   if not args[1] then  local template = (args['template'] and table.concat ({'{{', args['template'], '}}: '})) or ''; -- make template name (if provided by the template)  return table.concat ({'<span style=\"font-size:100%; font-style:normal;\" class=\"error\">error: ', template, 'missing language tag</span>'});  end   local module = 'Module:Lang' .. (mw.getCurrentFrame():getTitle():match ('/sandbox') or ''); -- if this module is the sandbox,   local name_from_tag = require (module)._name_from_tag; -- use Module:Lang/sandbox; Module:Lang else   local namespace = mw.title.getCurrentTitle().namespace; -- used for categorization  local this_wiki_lang = mw.language.getContentLanguage().code; -- get this wiki's language code   for i, lang in ipairs (args) do  local code = args[i]:lower();  local t = {code, ['link'] = args['link'], ['template'] = args['template']}; -- build an 'args' table  lang = name_from_tag (t) -- get the language name  table.insert (list, lang) -- add this language or error message to the list   if 'ca-valencia' ~= code then -- except for valencian  code = code:match ('^%a%a%a?%f[^%a]'); -- strip off region, script, and variant tags so that they aren't used to make category names  end  if synonym_table[code] then -- if 639-2/639-2T code has a 639-1 synonym  if (0 == namespace) and not list_cats then -- when listing cats don't include this cat; TODO: right choice?  table.insert (cats, table.concat ({'[[Category:Lang and lang-xx code promoted to ISO 639-1|', code ..']]'}));  end  table.insert (maint_msgs, ' <span class="lang-comment" style="font-style:normal; display:none; color:#33aa33; margin-left:0.3em">')  table.insert (maint_msgs, table.concat ({'code: ', code, ' promoted to code: ', synonym_table[code]}));  table.insert (maint_msgs, '</span>;');  code = synonym_table[code]; -- use the synonym  end   if (0 == namespace) or list_cats then -- when in article space  if lang:find ('error') then -- add error category (message provided by Module:Lang)  if not list_cats then -- don't include this cat when listin cats; TODO: right choice?  table.insert (cats, '[[Category:in lang template errors]]');  end  elseif this_wiki_lang ~= code then -- categorize article only when code is not this wiki's language code  if lang:match ('%[%[.-|.-%]%]') then -- wikilinked individual language name  lang = lang:match ('%[%[.-|(.-)%]%]');  elseif lang:match ('%[%[.-%]%]') then -- wikilinked collective languages name  lang = lang:match ('%[%[(.-)%]%]');  end -- neither of these then plain-text language name   if lang:find ('languages') then -- add appropriate language-name category  table.insert (cats, table.concat ({'[[Category:Articles with ', lang, '-collective sources (', code, ')]]'}));  else  table.insert (cats, table.concat ({'[[Category:Articles with ', lang, '-language sources (', code, ')]]'}));  end  end  end  end   if list_cats then  local cats = table.concat (cats, ', '):gsub ('[%[%]]', ''); -- make a string of categories and then strip wikilink markup  return cats  end   local result = {'<span class="languageicon">('}; -- opening span and (  table.insert (result, 'yes' == args['cap'] and 'In ' or 'in '); -- add capitalized or uncapitalized 'in'  table.insert (result, mw.text.listToText (list, ', ', (2 < #list) and ', and ' or ' and ' )); -- and concatenate the language list   table.insert (result, ')</span>'); -- add closing ) and closing span  table.insert (result, table.concat (maint_msgs) or ''); -- add maint messages, if any  table.insert (result, table.concat (cats)); -- add categories  return table.concat (result); -- make a big string and done end   --[[--------------------------< I N _ L A N G >----------------------------------------------------------------  implements {{in lang}}  Module entry point from an {{#invoke:lang/utilities/sanbox|in_lang|<code>|<code2>|<code3>|<code...>|link=yes|template=in lang|list-cats=yes}}  ]]  local function in_lang (frame)  local args = require ('Module:Arguments').getArgs (frame);  return _in_lang (args);  end   --[[--------------------------< N A T I V E _ N A M E _ L A N G >----------------------------------------------  experimental code; may not be retained  implements combined is_ietf_tag() and tag_from_name() in Module:Lang for various infoboxen that support a  |native_name_lang= parameter.  if {{{1}}} is a valid ietf language tag, returns that tag; if {{{1}}} is a properly spelled (case agnostic) language name, returns the ietf language tag associated with that name error messages else  entry point from an {{#invoke:Lang/utilities/sandbox|native_name_lang|<language name or tag>|template=<template name>}}  ]]  local function native_name_lang (frame)  local lang_module = require ('Module:Lang/sandbox');  local getArgs = require ('Module:Arguments').getArgs;  local args = getArgs(frame);   if lang_module._is_ietf_tag (args[1]) then  return args[1]; -- if a tag, return the tag  else  return lang_module._tag_from_name (args); -- not a tag, attempt to get a tag from the args[1] input value; return tag or error message  end end   --[[--------------------------< C A T _ T E S T >--------------------------------------------------------------  temporary test code to be deleted  support for {{Category articles containing non-English-language text}} that tests the language parameters provided to that template against the category name.  {{#invoke:Lang/utilities/sandbox|cat_test}}  ]]  local function cat_test (frame)  local lang_module = require ('Module:Lang');  local args = require ('Module:Arguments').getArgs (frame);  local err = false; -- boolean set true when an error is detected; one error message only  local cat_page_title = mw.title.getCurrentTitle().text; -- get the category title  local lang_name;  local index; -- positional parameter index  local lc_lang_name, lc_lang_name_col; -- individual and collective cat names are different  local lc_title;   for i, v in ipairs (args) do -- pairs because ipairs stops at nil value (empty positional parameter)  if 'number' == type (i) and args[i] then -- only positional parameters and only when they have a value  if lang_module._is_ietf_tag (v) then -- see if this thing 'v' is an ietf tag  local t = {v}; -- it is so make an args table for _name_from_tag()  lang_name = lang_module._name_from_tag (t); -- get the language name  else  lang_name = v; -- not a valid tag so presume it is a name  end mw.logObject (lang_name, 'lang_name')  lc_lang_name = table.concat ({ -- build a string to match category name form for individual and macro languages  'containing ',  mw.ustring.lower (lang_name); -- to lowercase for comparisons  '-language',  }); mw.logObject (lc_lang_name, 'lc_lang_name')  lc_lang_name_col = table.concat ({ -- build a string to match category name form for collective languages  'the ',  mw.ustring.lower (lang_name); -- to lowercase for comparisons  ' ', -- next word is languages which is included in the name retrieved from Module:lang  }); mw.logObject (lc_lang_name_col, 'lc_lang_name_col')   lc_title = mw.ustring.lower (cat_page_title);   if not mw.ustring.find (lc_title, lc_lang_name, 1, true) and -- if lang name not found in cat title  not mw.ustring.find (lc_title, lc_lang_name_col, 1, true) then  err = true; -- set a flag  index = i; -- remember which positional param failed the test  break; -- abandon the search on first error  end  end  end  -- create error message and done  return err and table.concat ({  '<span style=\"font-size:100%; font-style:normal;\" class=\"error\">error: language: ',  lang_name, -- the thing that we think is the language name  ' from {{{',  index, -- the positional parameter index: 1 in {{{1}}}  '}}} (',  args[index], -- the content of the positional parameter  ') does not match category title.</span>[[Category:Lang and lang-xx template errors]]'  }) or nil; end  --[[--------------------------< E X P O R T E D F U N C T I O N S >------------------------------------------ ]]  return {  in_lang = in_lang, -- module entry from {{#invoke:}}  native_name_lang = native_name_lang, -- experimental code; may not be retained   _in_lang = _in_lang, -- module entry from another module   cat_test = cat_test, -- temporary test code to be deleted  } 

มอด, lang, sandbox, อหน, ากระบะทรายมอด, ลของ, มอด, lang, ความแตกต, าง, อการใช, งานมอด, สร, าง, ณอาจจะต, องการสร, างค, อการใช, งานของมอด, ลน, เข, ยนสามารถทำการทดลองได, กระบะทราย, แก, ความแตกต, าง, และช, ดทดสอบ, สร, าง, ของมอด, ลน, โปรดเพ, มหมวดหม, ไปท, หน, าย, . nikhuxhnakrabathraymxdulkhxng mxdul In lang dukhwamaetktang khumuxkarichnganmxdul srang khunxaccatxngkarsrangkhumuxkarichngankhxngmxdulniphuekhiynsamarththakarthdlxngidthikrabathray aek dukhwamaetktang aelachudthdsxb srang khxngmxdulnioprdephimhmwdhmuipthihnayxy doc hnayxykhxngmxdulnirequire Module No globals lt I N L A N G gt implements in lang Module entry point from another module link yes creates wikilinked language names template lt template name gt customizes error messages created by Module lang list cats yes documentation tool returns language category names of cats populated by this template lt span class languageicon gt in lt language gt lt span gt local function in lang args local synonym table mw loadData Module Lang ISO 639 synonyms ISO 639 2 639 2T code translation to 639 1 code local list cats yes args list cats make a boolean local list local cats local maint msgs if not args 1 then local template args template and table concat args template or make template name if provided by the template return table concat lt span style font size 100 font style normal class error gt error template missing language tag lt span gt end local module Module Lang mw getCurrentFrame getTitle match sandbox or if this module is the sandbox local name from tag require module name from tag use Module Lang sandbox Module Lang else local namespace mw title getCurrentTitle namespace used for categorization local this wiki lang mw language getContentLanguage code get this wiki s language code for i lang in ipairs args do local code args i lower local t code link args link template args template build an args table lang name from tag t get the language name table insert list lang add this language or error message to the list if ca valencia code then except for valencian code code match a a a f a strip off region script and variant tags so that they aren t used to make category names end if synonym table code then if 639 2 639 2T code has a 639 1 synonym if 0 namespace and not list cats then when listing cats don t include this cat TODO right choice table insert cats table concat Category Lang and lang xx code promoted to ISO 639 1 code end table insert maint msgs lt span class lang comment style font style normal display none color 33aa33 margin left 0 3em gt table insert maint msgs table concat code code promoted to code synonym table code table insert maint msgs lt span gt code synonym table code use the synonym end if 0 namespace or list cats then when in article space if lang find error then add error category message provided by Module Lang if not list cats then don t include this cat when listin cats TODO right choice table insert cats Category in lang template errors end elseif this wiki lang code then categorize article only when code is not this wiki s language code if lang match then wikilinked individual language name lang lang match elseif lang match then wikilinked collective languages name lang lang match end neither of these then plain text language name if lang find languages then add appropriate language name category table insert cats table concat Category Articles with lang collective sources code else table insert cats table concat Category Articles with lang language sources code end end end end if list cats then local cats table concat cats gsub make a string of categories and then strip wikilink markup return cats end local result lt span class languageicon gt opening span and table insert result yes args cap and In or in add capitalized or uncapitalized in table insert result mw text listToText list 2 lt list and and or and and concatenate the language list table insert result lt span gt add closing and closing span table insert result table concat maint msgs or add maint messages if any table insert result table concat cats add categories return table concat result make a big string and done end lt I N L A N G gt implements in lang Module entry point from an invoke lang utilities sanbox in lang lt code gt lt code2 gt lt code3 gt lt code gt link yes template in lang list cats yes local function in lang frame local args require Module Arguments getArgs frame return in lang args end lt N A T I V E N A M E L A N G gt experimental code may not be retained implements combined is ietf tag and tag from name in Module Lang for various infoboxen that support a native name lang parameter if 1 is a valid ietf language tag returns that tag if 1 is a properly spelled case agnostic language name returns the ietf language tag associated with that name error messages else entry point from an invoke Lang utilities sandbox native name lang lt language name or tag gt template lt template name gt local function native name lang frame local lang module require Module Lang sandbox local getArgs require Module Arguments getArgs local args getArgs frame if lang module is ietf tag args 1 then return args 1 if a tag return the tag else return lang module tag from name args not a tag attempt to get a tag from the args 1 input value return tag or error message end end lt C A T T E S T gt temporary test code to be deleted support for Category articles containing non English language text that tests the language parameters provided to that template against the category name invoke Lang utilities sandbox cat test local function cat test frame local lang module require Module Lang local args require Module Arguments getArgs frame local err false boolean set true when an error is detected one error message only local cat page title mw title getCurrentTitle text get the category title local lang name local index positional parameter index local lc lang name lc lang name col individual and collective cat names are different local lc title for i v in ipairs args do pairs because ipairs stops at nil value empty positional parameter if number type i and args i then only positional parameters and only when they have a value if lang module is ietf tag v then see if this thing v is an ietf tag local t v it is so make an args table for name from tag lang name lang module name from tag t get the language name else lang name v not a valid tag so presume it is a name end mw logObject lang name lang name lc lang name table concat build a string to match category name form for individual and macro languages containing mw ustring lower lang name to lowercase for comparisons language mw logObject lc lang name lc lang name lc lang name col table concat build a string to match category name form for collective languages the mw ustring lower lang name to lowercase for comparisons next word is languages which is included in the name retrieved from Module lang mw logObject lc lang name col lc lang name col lc title mw ustring lower cat page title if not mw ustring find lc title lc lang name 1 true and if lang name not found in cat title not mw ustring find lc title lc lang name col 1 true then err true set a flag index i remember which positional param failed the test break abandon the search on first error end end end create error message and done return err and table concat lt span style font size 100 font style normal class error gt error language lang name the thing that we think is the language name from index the positional parameter index 1 in 1 args index the content of the positional parameter does not match category title lt span gt Category Lang and lang xx template errors or nil end lt E X P O R T E D F U N C T I O N S gt return in lang in lang module entry from invoke native name lang native name lang experimental code may not be retained in lang in lang module entry from another module cat test cat test temporary test code to be deleted ekhathungcak https th wikipedia org w index php title mxdul In lang sandbox amp oldid 9252012, wikipedia, วิกิ หนังสือ, หนังสือ, ห้องสมุด,

บทความ

, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม