标准 SAPUI5 应用程序的 SAP 自定义翻译
SAP custom translations for standard SAPUI5 application
我目前正在对 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
)。这就是为什么我不确定这个标准应用程序是否有翻译密钥。
我不想为我的扩展程序创建一个新的翻译密钥并使用这个。执行此操作后,还必须为新的翻译密钥维护标准应用程序的所有翻译。
有人熟悉这种翻译吗?如何维护我的扩展的翻译?
此致,
基督教徒
我找到了解决问题的方法:
- 我在事务
se38
中通过 运行 程序 /UI5/TEXT_FILE_GEN_TRANS_KEY
生成了一个新的翻译密钥
- 我创建了一个新文件夹
i18n
并向其中添加了一个 i18nCustom.properties
文件。然后我将翻译密钥和默认翻译添加到文件中,就像常规 i18n.properties
文件一样。
在下一步中,我将以下代码添加到扩展的 manifest.json
文件的 sap.ui5
属性 中以启动自定义翻译文件:
"models": {
"i18nCustom": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
"bundleName": "<Your Component>.i18n.i18nCustom"
}
}
}
请注意,您现在必须在视图中使用类似 {i18nCustom>property}
的东西,而不是使用 i18n
模型。
为了用自定义文件增强标准翻译文件,我将以下代码添加到 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
}
希望这对遇到同样问题的人有所帮助。
我目前正在对 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
)。这就是为什么我不确定这个标准应用程序是否有翻译密钥。
我不想为我的扩展程序创建一个新的翻译密钥并使用这个。执行此操作后,还必须为新的翻译密钥维护标准应用程序的所有翻译。
有人熟悉这种翻译吗?如何维护我的扩展的翻译?
此致,
基督教徒
我找到了解决问题的方法:
- 我在事务
se38
中通过 运行 程序 - 我创建了一个新文件夹
i18n
并向其中添加了一个i18nCustom.properties
文件。然后我将翻译密钥和默认翻译添加到文件中,就像常规i18n.properties
文件一样。 在下一步中,我将以下代码添加到扩展的
manifest.json
文件的sap.ui5
属性 中以启动自定义翻译文件:"models": { "i18nCustom": { "type": "sap.ui.model.resource.ResourceModel", "settings": { "bundleName": "<Your Component>.i18n.i18nCustom" } } }
请注意,您现在必须在视图中使用类似
{i18nCustom>property}
的东西,而不是使用i18n
模型。为了用自定义文件增强标准翻译文件,我将以下代码添加到
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 }
/UI5/TEXT_FILE_GEN_TRANS_KEY
生成了一个新的翻译密钥
希望这对遇到同样问题的人有所帮助。