关于 Culture:RFC5646 和 ContentDefinitions 的问题

Question about Culture:RFC5646 and ContentDefinitions

{Culture:RFC5646} return 为英语设置了两个不同的值。目前,当用户使用 ProfileEdit 或 SignUpSignIn 时,他们 returning 不同的值。

例如:

个人资料编辑 returns: en-us
SignUpSignIn returns: en

我在 ContentDefinitions 的 LoadUri 中使用它,以便我们可以将用户重定向到自定义和翻译的 html 页面。但是,对于两个 return 值,我必须维护两个目录“/en”和“/en-us”,而不是一个。

我已验证 ContentDefinition 的 LoadURI 的所有父策略和子策略都在使用 {Culture:RFC5646}。

我们测试了来自不同位置的多个用户。

我研究了 Azure B2C IEF 本地化文档,它提到了语言是如何确定的,但没有阐明为什么同一用户使用相同的浏览器会 return 不同的值对于{文化:RFC5646}

这是 SignUpSignIn 的内容定义加载 URI

<ContentDefinition Id="api.localaccountsignup">
<LoadUri>https://*****/b2c/IEF/{Culture:RFC5646}/selfasserted.html</LoadUri>        <RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.1.0</DataUri>
        <Metadata>
          <Item Key="DisplayName">Local account sign up page</Item>
        </Metadata>
</ContentDefinition>

这里是配置文件编辑的代码

<ContentDefinition Id="api.selfasserted.profileupdate">
<LoadUri>https://*****/b2c/IEF/{Culture:RFC5646}/updateprofile.html</LoadUri>
<RecoveryUri>~/common/default_page_error.html</RecoveryUri>
<DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:1.1.0</DataUri>
        <Metadata>
          <Item Key="DisplayName">Collect information from user page</Item>
        </Metadata>
</ContentDefinition>

我想要的是 {Culture:RFC5646} return 相同用户的相同值。例如,SignUpSignIn returns "en-us" 和 ProfileEdit returns "en-us" 这样我就可以维护一个目录而不是两个。

我发现问题是由不同的策略继承不同的基本策略引起的。一旦我让他们继承相同的基本策略,它就会按预期工作。