如何本地化在 Hybris 的 trainingcore-items.xml 中创建的自定义类型?

Posted

技术标签:

【中文标题】如何本地化在 Hybris 的 trainingcore-items.xml 中创建的自定义类型?【英文标题】:How to localize a custom type created in trainingcore-items.xml in Hybris? 【发布时间】:2021-08-28 22:50:43 【问题描述】:

我在 items.xml 中创建了一个自定义类型。 如何本地化项目类型?对于要本地化的项目类型,我应该在哪里使用本地化关键字?

    <itemtype code="Service" autocreate="true" generate="true">
           <deployment typecode="23456" table="Service"/>
            <attributes>
                <attribute qualifier="code" type="java.lang.String" autocreate="true" generate="true">
                    <persistence type="property"/>
                    <description>Service Code</description>
                    <modifiers unique="true" read="true" write="true"/>
                </attribute>
                <attribute qualifier="serviceType" type="ServiceType" autocreate="true" generate="true">
                    <persistence type="property"/>
                    <description>Service Type</description>
                    <modifiers read="true" write="true"/>
                </attribute>
                <attribute qualifier="years" type="java.lang.Integer" autocreate="true" generate="true">
                    <persistence type="property"/>
                    <description>Service Years</description>
                    <modifiers read="true" write="true"/>
                </attribute>
    </itemtype>

【问题讨论】:

【参考方案1】:

你接受的答案是错误的。

你不应该这样做type="localized:Service"。这样做的目的是让您为每种语言设置不同的服务值。

如果您想要为服务类型添加不同的标签/本地化,那么what you did in your other question 是正确的。

对于英文本地化/翻译,在trainingcore_locales_en.properties中定义本地化:

type.Service.name=Service
type.Service.code.name=code
type.Service.serviceType.name=serviceType
type.Service.years.name=years

type.ServiceType.name=ServiceType
type.ServiceType.Basic.name=Basic
type.ServiceType.BasicOnsite.name=BasicOnsite
type.ServiceType.Advanced.name=Advanced

对于德语翻译,请在trainingcore_locales_de.properties中设置翻译。

参考:

本地化:https://help.sap.com/viewer/d0224eca81e249cb821f2cdf45a82ace/2011/en-US/8c05dbbc86691014a3fb88b6238b64b6.html

【讨论】:

【参考方案2】:

@geffchang's answer 是正确的。 @Parvesh 是错误的。仅通过添加localized: 是不可能拥有自动本地化服务的。

为此,您需要创建新的地图类型:

<maptype code="localized:Service"
     argumenttype="Language"
     returntype="Service"
     autocreate="true"
     generate="false"/>

【讨论】:

【参考方案3】:

您的意思是要将此服务作为本地化属性添加到另一个项目类型中?

可以通过这样的方式完成。

`   <attribute qualifier="service" type="localized:Service">
                    <persistence type="property" />
                </attribute>`

【讨论】:

有可能吗?

以上是关于如何本地化在 Hybris 的 trainingcore-items.xml 中创建的自定义类型?的主要内容,如果未能解决你的问题,请参考以下文章

当我在 Hybris 中本地化枚举类型时,如何解决 java.lang.IllegalStateException?

Hybris Mockito:获取异常,没有(分离的)模型的 LocaleProvider

如何在 hybris 中集成支付网关

解释如何在 Hybris 中创建 Cron Job

如何减少 Hybris 服务器的启动时间?

如何在 Hybris 灵活搜索查询中使用日期?