Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Modül:Ordinal-cd

bullvar_katip

Administrator
Katılım
21 Mayıs 2024
Mesajlar
532,105
--This template will add the appropriate ordinal suffix to a given integer. Please do not modify this code without applying the changes first at Module:Ordinal/sandbox and testing at Module:Ordinal/sandbox/testcases and Module talk:Ordinal/sandbox/testcases. Authors and maintainers: User:RP88 -- -- Dependencies == -- local i18n = require('Modül:İ18n/ordinal') -- get localized translations of ordinals local LangSwitch = require('Modül:LangSwitch') -- get LangSwitch function local yesno = require('Modül:Evethayır') -- boolean value interpretation local formatnum = require('Modül:Formatnum') -- number formatting -- -- Private Functions -- --Helper function to generate superscripted content local function Superscript( str, superscript, nosup, period ) if superscript and (not nosup) and (str ~= ) then return period .. else return str end end --Helper function to call Formatnum. local function FormatNum( value, lang ) if lang == 'roman' then return require("Modül:Roman-cd")._Numeral(value) else return formatnum.formatNum(value, lang) end end --Helper function to add append a category to a message. local function output_cat( message, category ) return message .. 'Kategori:' .. category .. end --Helper function to handle error messages. local function output_error( error_str, value ) error_str = return output_cat(error_str, 'Modül Ordinal tarafından bildirilen hatalar'); end --This function is the core functionality for adding the appropriate ordinal suffix to a given integer. local function OrdinalCore( value, lang, style, gender, nosup ) -- Just in case someone breaks the internationalization code, fix the english scheme if i18n.SchemeFromLang['en'] nil then i18n.SchemeFromLang['en'] 'en-scheme' end if i18n.Scheme['en-scheme'] nil then i18n.Scheme['en-scheme'] = {rules = 'skip-tens', superscript = true, suffix = 'th', suffix_1 = 'st', suffix_2 = 'nd', suffix_3 = 'rd'} end -- Add the default scheme (i.e. "<value>.") if i18n.SchemeFromLang['default'] nil then i18n.SchemeFromLang['default'] 'period-scheme' end if i18n.Scheme['period-scheme'] nil then i18n.Scheme['period-scheme'] = {rules = 'suffix', suffix = '.'} end -- which scheme should we use to format the ordinal value? -- Use Fallback module to handle languages groups that map to a supported language local schemeSpecifier = LangSwitch._langSwitch(i18n.SchemeFromLang, lang) -- Look up scheme based on scheme specifier (and possibly style) local scheme = i18n.Scheme[schemeSpecifier .. '/' .. style] or i18n.Scheme[schemeSpecifier] -- process scheme by applying rules identified by Scheme local output = local period = (scheme.period and '.') or local rules = scheme.rules if rules 'skip-tens' then local suffix local mod100 math.floor(math.abs(value)) % 100 if (mod100 > 10) and (mod100 < 19) then suffix scheme.suffix or else local mod10 math.floor(math.abs(value)) % 10 suffix scheme['suffix_'..mod10] or scheme.suffix or end output FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period) elseif rules 'suffix' then output = FormatNum(value, scheme.formatlang or lang) .. Superscript( scheme.suffix or , scheme.superscript, nosup, period) elseif rules 'prefix' then output (scheme.prefix or ) .. FormatNum(value, scheme.formatlang or lang) elseif rules 'mod10-suffix' then local index = math.floor(math.abs(value)) % 10 local suffix = scheme['suffix_'..index] or scheme.suffix or output = FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period) elseif rules 'gendered-suffix' then local suffix scheme['suffix_'..gender] or scheme.suffix or output FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period) elseif rules 'gendered-suffix-one' then local suffix if value 1 then suffix scheme['suffix_1_'..gender] or scheme['suffix_1'] or scheme.suffix or else suffix scheme['suffix_'..gender] or scheme.suffix or end output FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period) elseif rules 'gendered-suffix-n' then local suffix if value <= 9 then suffix = scheme['suffix_'..value..'_'..gender] or scheme['suffix_'..value] or scheme['suffix_'..gender] or scheme.suffix or else suffix = scheme['suffix_'..gender] or scheme.suffix or end output = FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period) elseif rules 'suffix-one' then local prefix, suffix if value 1 then prefix = scheme['prefix_1'] or scheme.prefix or suffix = scheme['suffix_1'] or scheme.suffix or else prefix = scheme.prefix or suffix = scheme.suffix or end output = prefix .. FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period) elseif rules 'mod10-gendered-suffix-skip-tens' then local suffix local mod100 math.floor(math.abs(value)) % 100 if (mod100 > 10) and (mod100 < 19) then suffix scheme['suffix_'..gender] or scheme.suffix or else local mod10 math.floor(math.abs(value)) % 10 suffix scheme['suffix_'..mod10..'_'..gender] or scheme['suffix_'..mod10] or scheme['suffix_'..gender] or scheme.suffix or end output FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period) elseif rules 'uk-rules' then local suffix local mod100 = math.floor(math.abs(value)) % 100 local mod1000 = math.floor(math.abs(value)) % 1000 if (mod1000 0) then suffix scheme['suffix_1000_'..gender] or scheme.suffix or elseif (mod100 40) then suffix = scheme['suffix_40_'..gender] or scheme.suffix or elseif (mod100 >= 10) and (mod100 <= 19) then suffix = scheme['suffix_'..gender] or scheme.suffix or else local mod10 = math.floor(math.abs(value)) % 10 suffix = scheme['suffix_'..mod10..'_'..gender] or scheme['suffix_'..mod10] or scheme['suffix_'..gender] or scheme.suffix or end output = FormatNum(value, scheme.formatlang or lang) .. Superscript( suffix, scheme.superscript, nosup, period) else output = FormatNum(value, lang) end return output end -- -- Public Functions -- local p = {} --Ordinal This function converts an integer value into a numeral followed by ordinal indicator. The output string might contain HTML tags unless you set nosup=y. Usage: - uses the caller's parameters Parameters 1: Positive integer number. lang: language style: Presentation style. Different options for different languages. In English there is "style=d" adding -d suffixes to all numbers. gender: Gender is used in French and Polish language versions. Genders: m for male, f for female and n for neuter. nosup: Set nosup=y to display the ordinals without superscript. debug: Set debug=y to output error messages. Error Handling: Unless debug=y, any error results in parameter 1 being echoed to the output. This reproduces the behavior of the original Ordinal template. function p.Ordinal( frame ) -- if no argument provided than check parent template/module args local args = frame.args if args[1] nil then args frame:getParent.args end -- if we don't have a specified language, attempt to use the user's language local lang args.lang if not lang or lang or not mw.language.isValidCode( lang ) then lang = frame:preprocess end local nosup = yesno(args["nosup"] or , false) -- nosup can be true or false local debugging = yesno(args["debug"], false) -- debugging can be nil, true, or false -- also enable debugging if debug is unspecified, and "nosup" is false debugging = debugging or ((debugging nil) and not nosup) local output p._Ordinal( args[1], -- positive integer number lang, -- language args["style"], -- allows to set presentation style args["gender"], -- allows to specify gender (m, f, or n) nosup, -- set nosup to "y" to suppress superscripts debugging -- Set debug y to output error messages ) -- Add maintenance category if (i18n.SchemeFromLang[lang] nil) and debugging then output = output_cat(output, 'Pages with calls to Module Ordinal using an unsupported language') end return output end --This function will add the appropriate ordinal suffix to a given integer. Parameters input: Numeral as a positive integer or string. lang: Language code as a string (e.g. 'en', 'de', etc.). style: Presentation style as a string (e.g. 'd', 'roman', etc.). gender: Gender as a string ('m', 'f', 'n'). Use empty string to leave gender unspecified. nosup: Boolean, set to true to force the ordinals to display without superscript. debug: Boolean, set to true to output error messages. Error Handling: Unless debug is true, any error results in value being echoed to the output. function p._Ordinal( input, lang, style, gender, nosup, debugging ) local output = input if input then local value = tonumber(input) if value and (value > 0) then -- Normalize style, the style 'roman year' is an alias for 'roman' style = string.lower(style or ) if style 'roman year' then style 'roman' end -- Normalize gender parameter gender string.lower(gender or ) if (gender ~ 'm') and (gender ~ 'f') and (gender ~ 'n') then gender end -- if no language is specified, default to english (caller might want to get user's language) if not lang or lang then lang = 'en'; end output = OrdinalCore( value, lang, style, gender, nosup ) else if debugging then output = output_error( "not a number", input ) end end else if debugging then output = output_error( "not a number", '' ) end end return output end return p
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Izgara yada normal mod

Temanızda forum listeleme yapısını ızgara yapısında yada normal yapıda listemek için kullanabilirsiniz.

Forum arkaplan resimleri

Forum arkaplanlarına eklenmiş olan resimlerinin kontrolü senin elinde, resimleri aç/kapat

Sidebar blogunu kapat/aç

Forumun kalabalığında kurtulmak için sidebar (kenar çubuğunu) açıp/kapatarak gereksiz kalabalıklardan kurtula bilirsiniz.

Yapışkan sidebar kapat/aç

Yapışkan sidebar ile sidebar alanını daha hızlı ve verimli kullanabilirsiniz.

Radius aç/kapat

Blok köşelerinde bulunan kıvrımları kapat/aç bu şekilde tarzını yansıt.

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Geri