Módulo:Mwlanguage

Fonte: Enciclopédia de conhecimento da Igreja de Deus
Saltar para a navegação Saltar para a pesquisa

A documentação para este módulo pode ser criada na página Módulo:Mwlanguage/doc

-- 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