如何解决 SAP UI5 错误消息 - Could not find any translatable text for key appTitle

简介: 如何解决 SAP UI5 错误消息 - Could not find any translatable text for key appTitle

问题症状


在 Chrome 开发者工具 console 面板看到如下错误消息:

Assertion failed: Could not find any translatable text for key ‘appTitle’ in bundle file(s)

5c8611461f67016b2065cc4b9749aff9.png

单击 assert-dbg.js 超链接,就能进入到抛出这行错误消息的代码位置:

ac520b7bea950dc13c880c3555732360.png

设置断点,等断点停下来之后,观察调用栈上下文,注意到 ResourceBundle.getText 和我们应用程序自己编写的 locate-reuse-libs.js 内部,能找到这个 Resource Bundle 对应的文件是 i18n/i18n.properties:

6c7f1e2ad5e2e64c736b178f08cd6970.png

在 Chrome 开发者工具 network 面板里观察到这个文件没有加载成功,返回 404 错误:

7b5a6d65de51c2cc52a1b38cbc8cf83f.png

4e5551b97ae04c8e3c06d012d244ed8a.png

关于 i18n.properties 文件的更多介绍,可以参考笔者的教程:


  • SAP UI5 应用开发教程之八 - 多语言的支持


在 SAP UI5 应用中,通常会有一个名为 “i18n” 的文件夹,这个文件夹中包含了一个或多个 “.properties” 文件,这些文件用于存储不同语言环境的文本信息。默认的语言文件通常被命名为 “i18n.properties”,而其他语言环境的文件则会附加相应的语言和国家代码,例如 “i18n_zh_CN.properties”,“i18n_de_DE.properties” 等。


在 “i18n.properties” 文件中,你可以定义一些键值对,每一个键对应一个特定的文本消息。这个键是唯一的,而值则是对应语言环境的文本。例如:

welcomeMessage = Welcome to our application!


在 “i18n_zh_CN.properties” 文件中,你可能会有:

welcomeMessage = 欢迎使用我们的应用程序!


在 SAP UI5 应用中使用这些消息非常简单。首先,你需要在你的视图或控制器中初始化一个 sap.ui.model.resource.ResourceModel 对象,然后设置这个模型为你的视图或应用的模型。例如:

var i18nModel = new sap.ui.model.resource.ResourceModel({
    bundleName: "my.app.i18n.i18n"
});
this.getView().setModel(i18nModel, "i18n");


一旦你设置了这个模型,你就可以在你的视图或控制器中使用 {i18n>welcomeMessage} 来引用这个消息。这样,无论你的用户使用什么语言环境,他们都会看到对应的欢迎消息。


另外一种常见的使用场景是在 JavaScript 代码中获取这些消息。你可以使用 ResourceModelgetResourceBundle 方法获取到一个资源束(Resource Bundle),然后使用这个资源束的 getText 方法获取到特定的消息。例如:

var i18nModel = this.getView().getModel("i18n");
var resourceBundle = i18nModel.getResourceBundle();
var welcomeMessage = resourceBundle.getText("welcomeMessage");


SAP UI5 将会自动根据用户的语言环境选择正确的 “.properties” 文件。如果找不到对应的文件,或者在对应的文件中找不到特定的键,SAP UI5 将会使用 “i18n.properties” 文件中的消息。


使用 “i18n.properties” 文件的好处是显而易见的。首先,这种方式使得你的应用具有了国际化的能力,可以很容易地支持多种语言。其次,它使你的代码和文本消息分离,使得代码更加易于维护。

相关文章
|
4月前
|
人工智能 搜索推荐 Serverless
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
|
4月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
|
4月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
|
4月前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
|
4月前
|
XML 存储 数据格式
SAP UI5 控件 customData 属性的应用介绍
SAP UI5 控件 customData 属性的应用介绍
|
4月前
|
前端开发 JavaScript API
SAP UI5 sap.ui.require.toUrl 的作用介绍
SAP UI5 sap.ui.require.toUrl 的作用介绍
|
4月前
|
搜索推荐
如何让 SAP UI5 Smart Table 支持多项选择(Multiple-Selection)试读版
如何让 SAP UI5 Smart Table 支持多项选择(Multiple-Selection)试读版
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
|
4月前
|
Web App开发 前端开发 JavaScript
乱花渐欲迷人眼 - 让 SAP UI5 应用的日志输出不再素面朝天
乱花渐欲迷人眼 - 让 SAP UI5 应用的日志输出不再素面朝天
|
4月前
|
Web App开发 JSON JavaScript
SAP UI5 应用程序小技巧 - 一键将 JSON 对象导出成本地 json 文件
SAP UI5 应用程序小技巧 - 一键将 JSON 对象导出成本地 json 文件