标准SAPUI5应用程序的SAP自定义翻译

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

我目前正在从SAP Marketing实施对标准应用程序的扩展。

扩展名包含需要翻译成不同语言的新文本。在我以前的扩展中,我也可以将标准应用程序的翻译密钥用于我的扩展。在这种情况下,i18n.properties文件中的第一行的结构始终如下:

# SAPUI5 TRANSLATION-KEY XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

但是,在我当前正在编辑的标准应用程序中,它看起来像这样:

# This is the resource bundle for Campaigns 
# __ldi.translation.uuid = 8e965d5e-c905-4b60-ac2a-205abb14046

在事务se63中,找不到转换键(甚至是转换键吗?)-带连字符或不带连字符。此外,在标准应用中,每种语言的翻译都保存在一个文件中(例如i18n_de.properties)。这就是为什么我不确定此标准应用程序甚至没有翻译密钥的原因。

我不想为扩展名创建新的翻译密钥并使用它。完成此操作后,还必须为新的翻译密钥保留标准应用程序的所有翻译。

有人熟悉这种翻译吗?如何为扩展程序维护翻译?

最好的问候,

基督徒

sapui5 sap
1个回答
0
投票

我找到了解决问题的方法:

  1. 我通过在事务/UI5/TEXT_FILE_GEN_TRANS_KEY中运行程序se38生成了新的翻译密钥
  2. 我创建了一个新文件夹i18n,并向其中添加了i18nCustom.properties文件。然后,我将翻译键和默认翻译添加到了文件中,就像常规的i18n.properties文件一样。
  3. 下一步,我将以下代码添加到扩展名sap.ui5文件的manifest.json属性中,以启动自定义翻译文件:

    "models": {
        "i18nCustom": {
            "type": "sap.ui.model.resource.ResourceModel",
            "settings": {
                "bundleName": "<Your Component>.i18n.i18nCustom"
            }
        }
    }
    

    [请注意,您现在必须在视图中使用类似{i18nCustom>property}的东西,而不是使用i18n模型。

  4. 为了使用自定义文件增强标准翻译文件,我在BaseController中添加了以下代码。您也可以仅在其视图使用自定义转换的控制器中添加代码。

    onBeforeRendering: function() {
        var i18n = this.getModel("i18n"); // Get the standard i18n file
        var sBundleURL = this.getModel("i18nCustom").getResourceBundle().oUrlInfo.url;
        i18n.enhance({bundleUrl:sBundleURL}); // Merge the custom i18n file with the standard one
    }
    

希望有人遇到同样的问题会有所帮助。

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