gpt4 book ai didi

sapui5 - 如何为 SAPUI5 库提供缺少的翻译文件?

转载 作者:行者123 更新时间:2023-12-04 09:25:55 25 4
gpt4 key购买 nike

我有一个 SAPUI5 应用程序,它尝试根据用户语言加载一些翻译文件,但 SAP 的原始库中缺少这些语言。
例如,它尝试使用 fa 加载翻译。语言环境如下:

https://webidetestingXXXXXXX.dispatcher.hana.ondemand.com/webapp/resources/sap/m/messagebundle_fa.properties
enter image description here
可以看出它试图从 sap.m 读取翻译。命名空间!
现在的问题是,由于我可以访问此资源的英文翻译文件,我如何激活回调机制,当翻译文件丢失时,它会查看我的 i18n 文件夹,然后如果找不到文件,然后加载默认翻译!?
例如,我可以下载英文文件并在 webapp\i18n\sap\m\messagebundle_fa.properties 下提供波斯语翻译。当它无法在原始位置找到文件时,请从我的本地文件夹中读取它!
请注意我的 webapp\i18n的实际地址WebIDE 中的文件夹类似于 https://webidetestingXXXX.dispatcher.hana.ondemand.com/~1595255696000~/webapp/i18n/ .那 ~1595255696000~指运行应用程序的当前实例。如您所见,无法加载的文件丢失了!

最佳答案

UI5 中没有针对资源包的特定重定向或回调机制。
我能想象的唯一解决方法是使用 UI5 模块加载器的路径映射功能将库的所有语言文件的请求重定向到您自己的丰富副本 (A) 或预加载它们并在预期下注册它们加载程序 (B) 中的名称。
在 UI5 尝试访问您想要丰富的库中的任何文本之前,必须尽早应用这两种变体。
注:我没有完全测试这些变通方法 (它们可能包含拼写错误或映射/资源可能需要调整), ,这是不好的部分,它们仅适用于 UI5 版本 < 1.78。 从 1.78 开始,UI5 知道每个库存在哪些 *.properties 文件,并且不请求任何其他文件。
变体 A(映射)

sap.ui.loader.config({
paths: {
"sap/m/messagebundle.properties": "my/enriched/copy/messagebundle.properties"
}
});
  • Pro:使用公共(public) API。
  • 缺点:很麻烦,因为所有语言都必须复制(和更新)并且只有在不需要太多库时才可管理。

  • 变体 B(预加载)
    // somehow load the 'fa' texts for sap.m (ideally async)
    var sapmtext = ...;

    // then register it in the preload cache of the loader before
    sap.ui.require.preload({
    "sap/m/messagebundle_fa.properties": sapmtext
    });
  • 缺点:sap.ui.require.preload不是公共(public) API。
  • 关于sapui5 - 如何为 SAPUI5 库提供缺少的翻译文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63009573/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com