Локализация ответа API в Custom Police Azure ADB2C

Я реализовал локализацию в настраиваемой политике Azure ADB2C.

       <ClaimType Id="signInName">
    <DisplayName>Please enter your email</DisplayName>
    <DataType>string</DataType>
    <UserHelpText>Enter your email address to signin</UserHelpText>
    <Restriction>
        <Pattern RegularExpression="^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$"/>
    </Restriction>
</ClaimType>

<Localization Enabled="true">
    <SupportedLanguages DefaultLanguage="en" MergeBehavior="ReplaceAll">
        <SupportedLanguage>en</SupportedLanguage>
        <SupportedLanguage>es</SupportedLanguage>
    </SupportedLanguages>
    <LocalizedResources Id="en">
        <LocalizedStrings>
            <LocalizedString ElementType="ClaimType" ElementId="signInName" StringId="DisplayName">Please enter your email</LocalizedString>
            <LocalizedString ElementType="ClaimType" ElementId="signInName" StringId="UserHelpText">Enter your email address to signin</LocalizedString>
        </LocalizedStrings>
    </LocalizedResources>
    <LocalizedResources Id="es">
        <LocalizedStrings>
            <LocalizedString ElementType="ClaimType" ElementId="signInName" StringId="DisplayName">Por favor introduzca su correo electrónico</LocalizedString>
            <LocalizedString ElementType="ClaimType" ElementId="signInName" StringId="UserHelpText">Ingrese su dirección de correo electrónico para iniciar sesión</LocalizedString>
        </LocalizedStrings>
    </LocalizedResources>
</Localization>

Все работает, как ожидалось, но при нажатии кнопки входа в систему выполняется вызов API, и ответ всегда на английском языке. Также параметр строки запроса, указывающий на язык, не отправляется в вызове API. Любая помощь приветствуется.

1 ответ

Сначала вам нужно узнать, какой идентификатор строки показывает эту ошибку.

Мы поддерживаем эти идентификаторы для локализации, которые вы могли настроить в своих политиках.

Затем, когда вы узнаете, какой идентификатор используется для сообщения об ошибке, вы можете добавить LocalizedString элемент, как показано ниже (например, я предполагаю, что ElementType является ErrorMessage и StringID является DefaultMessage):

<LocalizedString ElementType="ErrorMessage" StringId="DefaultMessage">#Invalid username or password.</LocalizedString>

Вы можете найти разные примеры того же здесь: https://docs.microsoft.com/en-us/azure/active-directory-b2c/custom-policy-localization

Другие вопросы по тегам