如何拆分Azure B2C的TrustFrameworkLocalization.xml多语言文件?
拆分TrustFrameworkLocalization.xml的可行方案
当需要新增大量语言导致主文件臃肿时,以下几种拆分方案可以有效降低维护成本:
1. 按语言拆分独立XML文件
这是最直观的拆分方式,将每种语言的本地化资源单独存放在独立文件中,通过主文件的<Include>节点导入。
实现步骤:
- 为每种语言创建单独的本地化文件,比如
TrustFrameworkLocalization.en.xml、TrustFrameworkLocalization.es.xml等 - 每个语言文件仅包含对应语言的
<LocalizedResources>节点,示例如下:
<!-- TrustFrameworkLocalization.es.xml --> <LocalizedResources Id="api.localaccountsignup.es"> <LocalizedStrings> <LocalizedString ElementType="ClaimType" ElementId="email" StringId="DisplayName">Dirección de correo electrónico</LocalizedString> <!-- 其他西班牙语本地化字符串 --> </LocalizedStrings> </LocalizedResources>
- 在主
TrustFrameworkLocalization.xml文件中,通过<Include>引入所有语言文件:
<TrustFrameworkPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06"> <BasePolicy> <TenantId>your-tenant-id</TenantId> <PolicyId>TrustFrameworkBase</PolicyId> </BasePolicy> <!-- 引入各语言本地化文件 --> <Include PolicyUri="TrustFrameworkLocalization.en.xml" /> <Include PolicyUri="TrustFrameworkLocalization.de.xml" /> <Include PolicyUri="TrustFrameworkLocalization.es.xml" /> <!-- 其他语言文件的Include --> </TrustFrameworkPolicy>
优势:
- 每个文件仅对应一种语言,内容精简,维护单一语言时无需翻阅大量无关内容
- 新增/删除语言只需添加/移除对应的文件和Include节点,不影响其他语言资源
2. 按功能模块拆分XML文件
如果团队更倾向于按业务功能维护本地化资源,可以将同一功能(如注册、登录、密码重置)的所有语言资源拆分到单独文件中。
示例:
- 创建
TrustFrameworkLocalization.Signup.xml,包含所有语言的注册相关本地化资源:
<LocalizedResources Id="api.localaccountsignup.en"> <!-- 英语注册相关字符串 --> </LocalizedResources> <LocalizedResources Id="api.localaccountsignup.de"> <!-- 德语注册相关字符串 --> </LocalizedResources> <LocalizedResources Id="api.localaccountsignup.es"> <!-- 西班牙语注册相关字符串 --> </LocalizedResources>
- 主文件同样通过
<Include>引入各功能模块文件。
优势:
- 便于按业务功能集中维护多语言资源,适合功能迭代频繁的场景
- 同一功能的多语言对比修改更方便
3. 用本地化管理工具自动生成XML文件
对于12种语言的大规模本地化需求,手动维护XML效率低且易出错,推荐使用专业本地化工具管理字符串,再导出符合B2C格式的XML文件。
流程:
- 将现有XML中的字符串导出为Excel或CSV格式,整理成「键-多语言值」的表格
- 使用POEditor、Lokalise等工具导入表格,分配给翻译人员完成多语言翻译
- 配置工具导出规则,生成符合Azure AD B2C要求的
<LocalizedResources>结构的XML文件 - 将导出的XML文件按上述方案1或方案2拆分,导入到B2C策略中
优势:
- 避免手动编辑XML的语法错误,翻译过程更规范
- 支持翻译进度跟踪、术语统一管理,适合多语言大规模场景
内容的提问来源于stack exchange,提问作者Anna Melashkina
相关产品推荐
相关产品推荐

