点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好
我们在GB和US之间有英语差异。 因此,我们创建了en_GB和en_US语言环境,并更新了basetore和basesite的相应符号。 现在,当触发电子邮件时,AbstractEmailContext使用以下行:
字符串fromName = emailPageModel.getFromName(new Locale(language.getIsocode()));
现在,构造函数new Locale(language.getIsoCode())选择iscode = en_GB,但使用en_gb(小写)返回Locale。 因此给出如下异常:
原因:java.lang.IllegalArgumentException:没有与en_gb匹配的DataLocale(在可用语言环境{es_CO = es_CO-> es_CO,in = in-> id,p中尝试[en_gb]
t = pt-> pt,fr = fr-> fr,ru = ru-> ru,ja = ja-> ja,zh_TW = zh_TW-> zh_TW,it = it-> it,ko = ko-> ko,de = de-> de,es = es-> es,zh = zh-> zh,en = en-> en,hi = hi-> hi,cs = cs-> cs,
ro = ro-> ro,hu = hu-> hu,en_GB = en_GB-> en_GB,pl = pl-> pl}))
如果AbstractEmailContext中的构造函数使用的国家如
新的语言环境(language.getIsocode()," GB")
通过返回en_GB(大写)的语言环境将可以正常工作。
有人遇到这个问题了吗? 对于这种情况,我很难覆盖整个init方法。 还是我们做错了什么?
如果我们可以知道该密钥对来自哪里,那么我们将密钥设置为en_gb-> en_GB,那么OOTB可以正常工作。
有帮助吗?
嗨,
发送电子邮件的问题是由于isocode的默认配置(例如en_US,es_CO,zh_TW)无法正确处理造成的。
需要在/acceleratorservices/src/de/hybris/platform/acceleratorservices/process/email/context/AbstractEmailContext.java中实现init方法的新实现。
"新的Locale(languageModel.getIsocode())"返回的语言区域和国家/地区不正确的语言环境不正确(例如:zh_tw而不是zh_TW),这是LocalizationService必需的。
修正是要覆盖AbstractEmailContext,如下所示:
来自
String fromName = emailPageModel.getFromName(new Locale(language.getIsocode())); //第116行//de.hybris.platform.acceleratorservices.process.email.context.AbstractEmailContext.init(T,EmailPageModel)
到
最后的String [] loc = Utilities.parseLocaleCodes(language.getIsocode()); 字符串fromName = emailPageModel.getFromName(new Locale(loc [0],loc [1],loc [2]));
做到这一点的最佳方法是重写init()方法。
我希望它会有所帮助。
亲切的问候,
SAP hybris产品支持
在您的核心扩展中,您应该有一个essential-data.impex文件。 在这里,我希望看到类似以下的内容:
isocode
的值应为" en_GB"。另外,检查hMC以查看是否有两个LanguageModels,一个用于en_gb,另一个用于en_GB。
乔纳森(Jonathan)
它是en_GB,但是语言环境构造函数new Locale(language.getIsocode())将其转换回en_gb。 只有使用适当的构造函数区域(例如new Locale(language.getIsocode()," GB")),它才会保留为en_GB
一周热门 更多>