为什么我的多组件应用程序中没有应用后备翻译?

问题描述 投票:0回答:1

我有一个使用嵌套组件的应用程序。 RootComponent 的清单如下所示:

"componentUsages": {
    "UserComponent": {
        "name": "com.app.user",
        "settings": {},
        "componentData": {},
        "lazy": true
    },
    "AdminComponent": {
        "name": "com.app.admin",
        "settings": {},
        "componentData": {},
        "lazy": true
    }
},

两个组件都具有典型的库文件夹结构:

我在嵌套组件的清单中定义了

supportedLocales
fallbackLocale
属性,如下所示:

"sap.app": {
    "id": "com.app.admin",
    "i18n": {
        "bundleUrl": "i18n/i18n.properties",
        "supportedLocales": ["en", "de"],
        "fallbackLocale": "en"
    },
    "title": "{{appTitle}}"
},

//...

"models": {
    "i18n": {
        "type": "sap.ui.model.resource.ResourceModel",
        "settings": {
            "bundleUrl": "i18n/i18n.properties",
            "supportedLocales": ["en", "de"],
            "fallbackLocale": "en"
        }
    }
}

但是,当我启动应用程序时,即使网络日志中没有 404 错误,也不会应用任何翻译。 UI 只显示按键,而不显示翻译。我需要做什么才能使后备翻译逻辑与嵌套组件一起工作?

sapui5
1个回答
0
投票

事实证明,在应用程序中使用嵌套组件时,您需要在

bundleName
bundleUrl
部分定义
models
键而不是
manifest.xml

"models": {
    "i18n": {
        "type": "sap.ui.model.resource.ResourceModel",
        "settings": {
            "bundleName": "com.app.admin.i18n.i18n",
            "supportedLocales": ["en", "de"],
            "fallbackLocale": "en"
        }
    }
},

这也显示在这个官方演示存储库中。
不过,您在

sap.app
部分中使用哪种变体似乎并不重要。

© www.soinside.com 2019 - 2024. All rights reserved.