How is it possible to connect Discourse with two OIDC providers?

I believe solution to this topic title is in the previous post - you don’t need to use two OIDC’s, rather one OIDC and one Microsoft_auth.

microsoft_auth_email_verified would not make Microsoft Auth behave like the already-configured OIDC flow itself. My understanding is that it only makes Discourse treat Microsoft-provided emails as verified/trusted by default, which can help with account linking / avoiding duplicate accounts if those emails are genuinely verified:

For the button text, OIDC is definitely under the js.login.oidc text namespace:

And Microsoft Auth appears to use the microsoft_office365 translation namespace rather than oidc - for example this bug report mentions en.login.microsoft_office365.name:

So I think the relevant text key namespace for Microsoft Auth is microsoft_office365, not oidc.