Skip to content

#invoke dispatch doesn't recognize localized aliases (e.g. Urdu's #استدعا) #414

Description

@AngledLuffa

callParserFunction() dispatches on a hardcoded function #invoke rather than checking against the wiki's actual configured aliases for the invoke magic word. On Urdu Wikipedia, Template:Lang's body resolves to {{safesubst:#استدعا:لغات|...}} - #استدعا is Urdu's alias for #invoke, and since it never matches the hardcoded check, it's never recognized as a module invocation at all. It falls through to an ordinary template-title lookup for the literal string #استدعا:لغات, which of course doesn't exist, silently producing empty output. Reproduced via doc 726616 (علی اکبر معین فر), whose infobox name field disappears as a result.

This is the same shape of problem as the redirect-keyword localization already fixed (رجوع_مکرر, چوريو) — the parser-function dispatch table is effectively another hardcoded-English-only list, same as redirectKeywords was. The same discovery approach applies directly: action=query&meta=siteinfo&siprop=magicwords returns every magic word's aliases, not just redirect — find_redirect_keywords.py's api mode could be trivially generalized to look up any magic word by name (invoke, presumably, though worth confirming the canonical internal name rather than assuming), giving a verified, per-wiki list rather than reactively discovering aliases one broken template at a time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions