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.
callParserFunction()dispatches on a hardcoded function#invokerather 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.