"ഘടകം:Languages" എന്ന താളിന്റെ പതിപ്പുകൾ തമ്മിലുള്ള വ്യത്യാസം

969 ബൈറ്റുകൾ കൂട്ടിച്ചേർത്തിരിക്കുന്നു ,  2 മേയ്
cleanup simplifying some things
(ചെ.) (ഒരു പതിപ്പ് ഇറക്കുമതി ചെയ്തു)
 
(cleanup simplifying some things)
വരി 14: വരി 14:


]=]
]=]
function language_subpages( frame, transform, options )
local function language_subpages( frame, transform, options )
     local args, pargs, options = frame.args, ( frame:getParent() or {} ).args or {}, options or {};
     local args, pargs, options = frame.args, ( frame:getParent() or {} ).args or {}, options or {};
     local title = args.page or args[1] or pargs.page or pargs[1] or "";
     local title = args.page or args[1] or pargs.page or pargs[1] or "";
വരി 79: വരി 79:
end
end


function cloneArgs(frame)
local function cloneArgs(frame)
     local args, pargs = {}, {}
     local args, pargs = {}, {}
     for k,v in pairs( frame.args ) do args[k] = v end
     for k,v in pairs( frame.args ) do args[k] = v end
വരി 85: വരി 85:
         for k,v in pairs( frame:getParent().args ) do pargs[k] = v end
         for k,v in pairs( frame:getParent().args ) do pargs[k] = v end
     end
     end
     return args, pargs;
     return args, pargs
end
end


വരി 97: വരി 97:
]=]
]=]
function p.internal(frame)
function p.internal(frame)
     pages = language_subpages( frame, function( title, page, code, name )
     return table.concat(
        return mw.ustring.format( '<span lang="%s" xml:lang="%s" class="language lang-%s"><bdi>[[%s/%s|%s]]</bdi></span>',
        language_subpages( frame,
            code, code, code, title, page, name
            function( title, page, code, name )
        );
                return mw.ustring.format(
    end);
                    '<bdi class="language lang-%s" lang="%s">[[%s/%s|%s]]</bdi>',
    return table.concat( pages, '&nbsp;·&nbsp;' );
                    code, code,
                    title, page,
                    name
                );
            end
        ),
        '&nbsp;<b>·</b>&#32;'
    );
end
end


വരി 110: വരി 117:
]=]
]=]
function p.external(frame)
function p.external(frame)
     pages = language_subpages( frame, function( title, page, code, name )
     return table.concat(
        return mw.ustring.format( '<span lang="%s" xml:lang="%s" class="language lang-%s"><bdi>[%s/%s %s]</bdi></span>',
        language_subpages( frame,
            code, code, code, tostring( mw.uri.fullUrl( title ) ), page:gsub( ' ', '_' ), name
            function( title, page, code, name )
        );
                return mw.ustring.format(
    end);
                    '<bdi class="language lang-%s" lang="%s">[%s/%s %s]</bdi>',
    return table.concat( pages, '&nbsp;| ' );
                    code, code,
                    tostring( mw.uri.fullUrl( title ) ), page:gsub( ' ', '_' ),
                    name
                );
            end
        ),
        '&nbsp;<b>·</b>&#32;'
    );
end
end


വരി 160: വരി 174:
-- =p.forEachLanguage({ args= { pattern = "$lc - $lnTrP\n", inLang = "en" } })
-- =p.forEachLanguage({ args= { pattern = "$lc - $lnTrP\n", inLang = "en" } })
function p.forEachLanguage(frame)
function p.forEachLanguage(frame)
     local l = require( "Module:Languages/List" )
     local l = require("Module:Languages/List")


     local ret = {}
     local ret = {}
വരി 180: വരി 194:
     local l = mw.language.fetchLanguageNames() -- autonyms
     local l = mw.language.fetchLanguageNames() -- autonyms
     local lTr
     local lTr
     local lcIdList = require( 'Module:Languages/List' ).getSortedList( l )
     local lcIdList = require('Module:Languages/List').getSortedList( l )


     if langNameTranslatedReq then
     if langNameTranslatedReq then
വരി 231: വരി 245:
--[=[
--[=[
  Provide logic for [[Template:Lle]] (Language Links external, to be substituted, language names written exactly as #language would provide them)
  Provide logic for [[Template:Lle]] (Language Links external, to be substituted, language names written exactly as #language would provide them)
Warning: may expands too many costly #ifexist without limitation (if not substituted into a separate "/lang" template)
]=]
]=]
function p.lle(frame)
function p.lle(frame)
     local ret
     return frame:preprocess(
    local pattern = "{{<includeonly/>subst:#ifexist:{{{1}}}/$lc|[{{fullurl:{{{1}}}/$lc}} $lnP]&nbsp;{{<includeonly/>subst:!}} <!--\n-->}}"
        p.forEachLanguage({
    ret = p.forEachLanguage({ args= { pattern = pattern } })
            args = {
     ret = frame:preprocess(ret)
                pattern = '{{subst:#ifexist:{{{1}}}/$lc|[{{subst:fullurl:{{{1}}}/$lc}} <bdi class="language lang-$lc" lang="$lc">$lnP</bdi>]&nbsp;<b>∙</b>&#32;<!--\n-->}}'
    return ret
            }
        })
     )
end
end


--[=[
--[=[
  Provide logic for [[Template:Ll]] (Language Links, to be substituted)
  Provide logic for [[Template:Ll]] (Language Links internal, to be substituted, language names written exactly as #language would provide them)
Warning: may expands too many costly #ifexist without limitation (if not substituted into a separate "/lang" template)
]=]
]=]
function p.ll(frame)
function p.ll(frame)
     local ret
     return frame:preprocess(
    local pattern = "{{<includeonly/>subst:#ifexist:{{{1}}}/$lc|[[{{{1}}}/$lc{{<includeonly/>subst:!}}$lnUC1]]&nbsp;{{<includeonly/>subst:!}} <!--\n-->}}"
        p.forEachLanguage({
    ret = p.forEachLanguage({ args= { pattern = pattern } })
            args = {
     ret = frame:preprocess(ret)
                pattern = '{{subst:#ifexist:{{{1}}}/$lc|[[{{{1}}}/$lc|<bdi class="language lang-$lc" lang="$lc">$lnP</bdi>]]&nbsp;<b>∙</b>&#32;<!--\n-->}}'
    return ret
            }
        })
     )
end
end


വരി 274: വരി 294:
         frame = mw.getCurrentFrame()
         frame = mw.getCurrentFrame()
     end
     end
    --[==[
--[==[
     local options = { abort= { time=3.5, on=function()
     local options = {
            pages2 = p.forEachLanguage({ args= { pattern = '{{#ifexist:' .. title .. '/$lc|[[' .. title .. '/$lc|$lnUC1]]&nbsp;&#124;&#32;}}' } })
        abort = {
         end } }
            time = 3.5,
     local pages = language_subpages( frame, function( basepagename, subpagename, code, langname )
            on = function()
        return mw.ustring.format( '<span lang="%s" xml:lang="%s" class="language lang-%s" style="white-space:nowrap"><bdi>[[%s/%s|%s]]</bdi></span>&nbsp;| ',
                pages2 = p.forEachLanguage({
            code, code, code, basepagename, subpagename, contentLangInstance:ucfirst( langname ) )
                    args = {
    end, options );
                      pattern = '{{#ifexist:' .. title .. '/$lc|[[' .. title .. '/$lc|<bdi lang="$lc">$lnP</bdi>]]&nbsp;<b>∙</b>&#32;}}'
                    }
                })
            end
         }
    }
     local pages = language_subpages( frame,
        function( title, page, code, langname )
            return mw.ustring.format(
                '[[%s/%s|<bdi lang="%s">%s</bdi>]]</span>&nbsp;<b></b>&#32;',
                title, page, code, langname
            )
        end, options );
     return pages2 and frame:preprocess(pages2) or table.concat(pages, '');
     return pages2 and frame:preprocess(pages2) or table.concat(pages, '');
    ]==]
--]==]
     return frame:preprocess( p.forEachLanguage({ args= { pattern = '{{#ifexist:' .. title .. '/$lc|[[' .. title .. '/$lc|$lnUC1]]&nbsp;&#124;&#32;}}' } }) )
     return frame:preprocess(
        p.forEachLanguage( {
            args = {
                pattern = '{{#ifexist:' .. title .. '/$lc|[[' .. title .. '/$lc|<bdi lang="$lc">$lnP</bdi>]]&nbsp;<b>∙</b>&#32;}}'
            }
        })
    )
end
end


വരി 309: വരി 347:
     end
     end
     local base = args.base
     local base = args.base
     local userlang = frame:preprocess( '{{int:lang}}' )
     local userlang = frame:callParserFunction('int', 'lang')
     local tl, tlns = 'Template:', 10
     local tl, tlns = 'Template:', 10
     local tlb, fallback1, currenttemplate
     local tlb, fallback1, currenttemplate, currenttemplatepage
     local fallback, contentlang = mw.text.split( userlang, '-', true )[1], mw.language.getContentLanguage():getCode()
     local fallback, contentlang = mw.text.split( userlang, '-', true )[1], mw.language.getContentLanguage():getCode()


     local createReturn = function(title)
     local function createReturn(title)
         local ret
         local ret
         local tlargs = {}
         local tlargs = {}
വരി 328: വരി 366:


     currenttemplate = tlb .. userlang
     currenttemplate = tlb .. userlang
     local ok, exists = pcall( function()
     currenttemplatepage = mw.title.new( currenttemplate, tlns )
        return mw.title.new( currenttemplate, tlns ).exists
     if currenttemplatepage and currenttemplatepage.exists then
    end )
     if ok and exists then
         return createReturn(currenttemplate)
         return createReturn(currenttemplate)
     end
     end
വരി 341: വരി 377:


     currenttemplate = tlb .. fallback
     currenttemplate = tlb .. fallback
     local ok, exists = pcall( function()
     currenttemplatepage = mw.title.new( currenttemplate, tlns )
        return mw.title.new( currenttemplate, tlns ).exists
     if currenttemplatepage and currenttemplatepage.exists then
    end )
     if ok and exists then
         return createReturn(currenttemplate)
         return createReturn(currenttemplate)
     end
     end


     currenttemplate = tlb .. contentlang
     currenttemplate = tlb .. contentlang
     local ok, exists = pcall( function()
     currenttemplatepage = mw.title.new( currenttemplate, tlns )
        return mw.title.new( currenttemplate, tlns ).exists
     if currenttemplatepage and currenttemplatepage.exists then
    end )
     if ok and exists then
         return createReturn(currenttemplate)
         return createReturn(currenttemplate)
     end
     end
വരി 374: വരി 406:
     local ext_start, _ = string.find( original, '\.%w+$' )
     local ext_start, _ = string.find( original, '\.%w+$' )
     local file_ext = string.sub( original, ext_start )
     local file_ext = string.sub( original, ext_start )
     original = string.sub( original, 0, ext_start-1 )
     original = string.sub( original, 0, ext_start - 1 )
     return frame:preprocess('<gallery>\n'..(table.concat(M_link.forEachLink( p.forEachLanguage( { args= { pattern = '[[$lc]]' } } ),
     return frame:preprocess(
        function(linkInfo)
        '<gallery>\n' ..
            local filename = mw.ustring.format( pattern, original, linkInfo.text ) .. file_ext
        (table.concat(
            local ok, exists = pcall( function()
            M_link.forEachLink(
                return mw.title.new( filename, 6 ).exists
                p.forEachLanguage({
            end )
                    args = { pattern = '[[$lc]]' }
            if ok and exists then
                }),
                return mw.ustring.format( '%s|%s', filename, contentLangInstance:ucfirst( mw.language.fetchLanguageName( linkInfo.text ) ) )
                function( linkInfo )
            else
                    local filename = mw.ustring.format( pattern, original, linkInfo.text ) .. file_ext
                return nil
                    local filepage = mw.title.new( filename, 6 )
            end
                    if filepage and filepage.exists then
        end
                        return mw.ustring.format( '%s|%s',
    ), '\n'))..'\n</gallery>')
                            filename,
                            mw.language.fetchLanguageName( linkInfo.text )
                        )
                    else
                        return nil
                    end
                end
            ), '\n'
        )) ..
        '\n</gallery>'
    )
end
end


function p.runTests()
function p.runTests()
     return p.langLinksNonExpensive({ args= { page='Module:Languages/testcases/test' }, getParent=function() end }) == "[[Module:Languages/testcases/test/de|Deutsch]]&nbsp;&#124;&#32;[[Module:Languages/testcases/test/en|English]]&nbsp;&#124;&#32;"
     return p.langLinksNonExpensive({
        args = {
            page = 'Module:Languages/testcases/test'
        },
        getParent = function() end
    }) ==
        '[[Module:Languages/testcases/test/de|<bdi lang="de">Deutsch</bdi>]]&nbsp;<b>∙</b>&#32;' ..
        '[[Module:Languages/testcases/test/en|<bdi lang="en">English</bdi>]]&nbsp;<b>∙</b>&#32;'
end
end


return p;
return p;
അജ്ഞാത ഉപയോക്താവ്
"https://schoolwiki.in/പ്രത്യേകം:മൊബൈൽവ്യത്യാസം/2540062" എന്ന താളിൽനിന്ന് ശേഖരിച്ചത്