问题描述
我们希望使自定义函数的名称和参数可本地化。
如何实现?
解决方法
您将整个元数据文件本地化。然后,您从清单中引用每个此类文件。
您的CustomFunctions
部分保持不变,如下所示:
<ExtensionPoint xsi:type="CustomFunctions">
<Script>
<SourceLocation resid="residScript" />
</Script>
<Page>
<SourceLocation resid="residPage"/>
</Page>
<Metadata>
<SourceLocation resid="residMetadata" />
</Metadata>
<Namespace resid="residNS" />
</ExtensionPoint>
然后在Resources
部分中,每个受支持的语言环境都有一个Override:
<bt:Url id="residMetadata" DefaultValue="https://your.cdn.com/metadata/en_us">
<bt:Override Locale="bg-bg" Value="https://your.cdn.com/metadata/bg_bg" />
<bt:Override Locale="fr-fr" Value="https://your.cdn.com/metadata/fr_fr" />
</bt:Url>
请记住,本地化不只是名称,还有描述,支持URL和最终的图标。
在不同的地理市场/区域中,功能可能需要具有不同的实现。这就是为什么您也可以本地化Script
文件的原因。
您以类似的方式本地化名称空间,除了它是纯字符串而不是URL:
<bt:ShortStrings>
<bt:String id="residNS" DefaultValue="default.namespace">
<bt:Override Locale="bg-bg" Value="българско.именно.пространство" />
<bt:Override Locale="fr-fr" Value="espace.des.noms.francais" />
</bt:String>
</bt:ShortStrings>