Módulo:Mwlanguage

-- Wrapper for mw.language Lua functions --   https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Language_library -- -- Not implemented --   mw.language.new( code )  local mwlanguage = {}  function table.ipairs(t)   ret = {}   for key, value in ipairs(t) do     ret[key] = value   end   return ret end  function boolean( str )   -- Interpret string as boolean   -- * Returns False if nil, "false" or "0"; returns True otherwise   return not (str == nil or str == "false" or str == "0") end  function mwlanguage.fetchLanguageName(frame)   -- mw.language.fetchLanguageName( code, inLanguage )      code = frame.args["code"] or frame.args[1]   inLanguage = frame.args["inLanguage"] or frame.args[2]      return mw.language.fetchLanguageName( code, inLanguage )   end  function mwlanguage.fetchLanguageNames(frame)   -- mw.language.fetchLanguageNames( inLanguage, include [, reverse, separator, sort] )      inLanguage = frame.args["inLanguage"] or frame.args[1]   include = frame.args["include"] or frame.args[2]   reverse = boolean(frame.args["reverse"] or frame.args[3])   separator = frame.args["separator"] or frame.args[4] or '|'   sort = boolean(frame.args["sort"] or frame.args[5])      ret = {}   for key, value in pairs( mw.language.fetchLanguageNames( inLanguage, include ) ) do     if reverse then       str = value .. '=' .. key     else       str = key .. '=' .. value     end     table.insert( ret, str )   end      if sort then   	table.sort( ret )   end      return table.concat( ret, separator ) end  function mwlanguage.getContentLanguage(frame)   -- mw.language.getContentLanguage():getCode()      return mwlanguage.getCode(frame) end  function mwlanguage.getFallbacksFor(frame)   -- mw.language.getFallbacksFor( code )      code = frame.args["code"] or frame.args[1]      return mw.language.getFallbacksFor( code )   end  function mwlanguage.isKnownLanguageTag(frame)   -- mw.language.isKnownLanguageTag( code )      code = frame.args["code"] or frame.args[1]      return tostring( mw.language.isKnownLanguageTag( code ) ) end  function mwlanguage.isSupportedLanguage(frame)   -- mw.language.isSupportedLanguage( code )      code = frame.args["code"] or frame.args[1]      return tostring( mw.language.isSupportedLanguage( code ) ) end  function mwlanguage.isValidBuiltInCode(frame)   -- mw.language.isValidBuiltInCode( code )      code = frame.args["code"] or frame.args[1]      return tostring( mw.language.isValidBuiltInCode( code ) ) end  function mwlanguage.isValidCode(frame)   -- mw.language.isValidCode( code )      code = frame.args["code"] or frame.args[1]      return tostring( mw.language.isValidCode( code ) ) end  function mwlanguage.getCode(frame)   -- mw.language:getCode   lang = mw.language.getContentLanguage()   return lang:getCode() end  function mwlanguage.getFallbackLanguages(frame)   -- mw.language:getFallbackLanguages   lang = mw.language.getContentLanguage()   return table.concat( lang:getFallbackLanguages(), '|' ) end  function mwlanguage.isRTL(frame)   -- mw.language:isRTL   lang = mw.language.getContentLanguage()   return tostring( lang:isRTL() ) end  function mwlanguage.lc(frame)   -- mw.language:lc( s )   lang = mw.language.getContentLanguage()      s = frame.args["s"] or frame.args[1]      return lang:lc( s ) end  function mwlanguage.lcfirst(frame)   -- mw.language:lcfirst( s )   lang = mw.language.getContentLanguage()      s = frame.args["s"] or frame.args[1]      return lang:lcfirst( s ) end  function mwlanguage.uc(frame)   -- mw.language:uc( s )   lang = mw.language.getContentLanguage()      s = frame.args["s"] or frame.args[1]      return lang:uc( s ) end  function mwlanguage.ucfirst(frame)   -- mw.language:ucfirst( s )   lang = mw.language.getContentLanguage()      s = frame.args["s"] or frame.args[1]      return lang:ucfirst( s ) end  function mwlanguage.caseFold(frame)   -- mw.language:caseFold( s )   lang = mw.language.getContentLanguage()      s = frame.args["s"] or frame.args[1]      return lang:caseFold( s )   end  function mwlanguage.formatNum(frame)   -- mw.language:formatNum( n )   lang = mw.language.getContentLanguage()      n = frame.args["n"] or frame.args[1]      return lang:formatNum( n ) end  function mwlanguage.formatDate(frame)   -- mw.language:formatDate   lang = mw.language.getContentLanguage()      format_ = frame.args["format"] or frame.args[1]   timestamp = frame.args["timestamp"] or frame.args[2]   local_ = boolean(frame.args["local"] or frame.args[3])      return lang:formatDate( format_, timestamp, local_ ) end  function mwlanguage.formatDuration(frame)   -- mw.language:formatDuration( seconds, ... )   lang = mw.language.getContentLanguage()      seconds = frame.args["seconds"]   allowedIntervals = table.ipairs( frame.args )      return lang:formatDuration( seconds, allowedIntervals ) end  function mwlanguage.parseFormattedNumber(frame)   -- mw.language:parseFormattedNumber( s )   lang = mw.language.getContentLanguage()      s = frame.args["s"] or frame.args[1]      return lang:parseFormattedNumber( s ) end  function mwlanguage.convertPlural(frame)   -- mw.language:convertPlural( n, ... )   lang = mw.language.getContentLanguage()      n = frame.args["n"]   forms = table.ipairs( frame.args )      return lang:convertPlural( n, forms ) end  function mwlanguage.plural(frame)   -- mw.language:plural( n, ... )   return mwlanguage.convertPlural( frame ) end  function mwlanguage.convertGrammar(frame)   -- mw.language:convertGrammar( word, case )   lang = mw.language.getContentLanguage()      word = frame.args["word"] or frame.args[1]   case = frame.args["case"] or frame.args[2]      return  lang:convertGrammar( word, case ) end  function mwlanguage.grammar(frame)   -- mw.language:grammar( case, word )   lang = mw.language.getContentLanguage()      case = frame.args["case"] or frame.args[1]   word = frame.args["word"] or frame.args[2]      return  lang:grammar( case, word ) end  function mwlanguage.gender(frame)   -- mw.language:gender( what, masculine, feminine, neutral )   lang = mw.language.getContentLanguage()      what = frame.args["what"] or frame.args[1]   masculine = frame.args["masculine"] or frame.args[2]   feminine = frame.args["feminine"] or frame.args[3]   neutral = frame.args["neutral"] or frame.args[4]      return lang:gender( what, masculine, feminine, neutral ) end  function mwlanguage.getArrow(frame)   -- mw.language:getArrow( direction )   lang = mw.language.getContentLanguage()      direction = frame.args["direction"] or frame.args[1]      return lang:getArrow( direction ) end  function mwlanguage.getDir(frame)   -- mw.language:getDir()   lang = mw.language.getContentLanguage()     return lang:getDir() end  function mwlanguage.getDirMark(frame)   -- mw.language:getDirMark( opposite )   lang = mw.language.getContentLanguage()      opposite = frame.args["opposite"] or frame.args[1]      return lang:getDirMark( opposite ) end  function mwlanguage.getDirMarkEntity(frame)   -- mw.language:getDirMarkEntity( opposite )   lang = mw.language.getContentLanguage()      opposite = frame.args["opposite"] or frame.args[1]      return lang:getDirMarkEntity( opposite ) end  function mwlanguage.getDurationIntervals(frame)   -- mw.language:getDurationIntervals( seconds, allowedIntervals )   lang = mw.language.getContentLanguage()      seconds = frame.args["seconds"]   allowedIntervals = table.ipairs( frame.args )      return table.concat( lang:getDurationIntervals( seconds, allowedIntervals ), '|' ) end  return mwlanguage