Jump to content
Toggle menu
  • 8 articles
  • 75 files
  • 7 users
  • 37.8K edits
Neodyland Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Languages: Difference between revisions

From Neodyland Wiki
m
m space instead of   for after bar
Line 38: Line 38:
         );
         );
     end);
     end);
     return table.concat( pages, ' | ' );
     return table.concat( pages, ' | ' );
end
end


return p;
return p;

Revision as of 23:41, 29 April 2013

Module documentation[ create · purge ]
This documentation is transcluded from Module:Languages/doc.
function language_subpages( frame, transform )
    local args, pargs = frame.args, ( frame:getParent() or {} ).args or {};
    local title = args.page or args[1] or pargs.page or pargs[1] or "";
    local tt = type( transform );
    local page = require( 'Module:Page' );
    
    title = page.clean(title);
    
    if tt == 'function' or ( tt == 'table' and getmetatable(transform).__call ) then
        local fetch, pages, langcode, langname = mw.language.fetchLanguageName, {};
        for pg in page.subpages( title ) do
            langcode = string.lower( pg );
            langname = fetch( langcode );
            if langname ~= '' then
                table.insert( pages, transform( title, pg, langcode, langname ) );
            end
        end
        return pages;
    end
    return {};
end

p = {};

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

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

return p;
Cookies help us deliver our services. By using our services, you agree to our use of cookies.