Локализация ответа 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