Backoffice中缺少类型本地化

2020-09-16 04:03发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们对Hybris后台办公室遇到的问题感到困惑。

实际情况:

  • 我们在文件 customer-localization_en.properties 中定义类型本地化。

  • 客户使用两个数据区域设置 en_US (回退设置为 en )和 de_DE (回退设置为 de )

  • 到后台的登录使用语言环境 en_US 。

  • 安装和更新后,一切看起来都很好。

  • 重新启动服务器后,缺少某些类型的本地化,甚至是hybris标准的本地化,例如 product.name 。

发现

  • 我们已经调试过,发现类型本地化不像外观层中的数据语言那样遵循配置的后备语言。

  • 相反,类型本地化将始终从"国家/地区"等值代码(例如 en_US )回退到"语言"等值代码(例如 en ),即仅使用前两个字符。

  • 我们找不到,为什么本地化无法正确解决

可能的解决方案

  • 将类型本地化复制到第二个文件 customer-localization_zh-CN.properties (我们要避免)

问题

  • 以前有人看过这个问题吗?

  • 这里可能是什么问题?

  • 您对此问题有不同的解决方案吗?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们对Hybris后台办公室遇到的问题感到困惑。

实际情况:

  • 我们在文件 customer-localization_en.properties 中定义类型本地化。

  • 客户使用两个数据区域设置 en_US (回退设置为 en )和 de_DE (回退设置为 de )

  • 到后台的登录使用语言环境 en_US 。

  • 安装和更新后,一切看起来都很好。

  • 重新启动服务器后,缺少某些类型的本地化,甚至是hybris标准的本地化,例如 product.name 。

发现

  • 我们已经调试过,发现类型本地化不像外观层中的数据语言那样遵循配置的后备语言。

  • 相反,类型本地化将始终从"国家/地区"等值代码(例如 en_US )回退到"语言"等值代码(例如 en ),即仅使用前两个字符。

  • 我们找不到,为什么本地化无法正确解决

可能的解决方案

  • 将类型本地化复制到第二个文件 customer-localization_zh-CN.properties (我们要避免)

问题

  • 以前有人看过这个问题吗?

  • 这里可能是什么问题?

  • 您对此问题有不同的解决方案吗?

付费偷看设置
发送
3条回答
wang628962
1楼 · 2020-09-16 04:38.采纳回答

嘿Wojtek,

感谢您对此问题进行调查。 您的提示非常有趣。 不幸的是,它没有解决我们的问题。

我们发现,在项目中,默认位置服务已被覆盖。 对于匿名用户,它仅返回一种语言,因此带有后台办公室座舱的登录屏幕仅显示一种语言。

不幸的是,用于本地化的Typesystem缓存是根据第一个请求(当然是匿名的)构建的,因此,该缓存会忽略所有其他语言...

我们将其改回原来的位置,并仅对后台办公位置服务应用了相同的技巧,并且一切正常,

  
  
      
  
 
  
      
  

  

这可能会帮助希望将登录限制为某种UI语言的其他人。

最佳美女

hengyuye
2楼-- · 2020-09-16 04:28

您好Stefan,

我们最近发现了没有回退设置的语言存在类似的问题。 已经报告了一个错误,可以立即使用后备。 无论如何,这只会在最新版本中得到修复,因此我会有一些问题和想法:

  • 您使用的是哪个版本(我们可能考虑反向移植)

  • 您是否正确命名了所有文件(一旦您提到了en-US,一次是an_US,则只有后者才是正确的)

如果问题与回退启用有关,我建议尝试以下方法:

覆盖bean:

  
  

  

并重新实现方法 com.hybris.cockpitng.admin.CockpitMainWindowComposer#doAfterCompose ,其中,在调用super之前,应先调用 de.hybris.platform.servicelayer.i18n .I18NService.setLocalizationFallbackEnabled(true)。 这样应该可以对基于后备语言的翻译进行标准解析。

请告诉我这是否有帮助。 如果由于某种原因(在作曲家中)来不及作为一个快速而肮脏的尝试,您可以尝试注册一个过滤器以启用后备功能。

干杯

Wojtek

CPLASF-自律
3楼-- · 2020-09-16 04:39

我不知道这是否与您的问题有关。 但是我们仅在升级条件和操作编辑器中有错误的本地化。 它是英语,尽管后台的其余部分是德语。 这是由于错误的 I18NService#getCurrentLocale (实际上是系统区域设置)引起的。 CockpitLocaleService 返回在登录页面上设置的语言环境。

这解决了我们的问题:

 公共类CustomCockpitMainWindowComposer扩展了CockpitMainWindowComposer
  {
      @Override
      公共无效doAfterCompose(最终组件comp)引发异常
      {
          i18nService.setCurrentLocale(cockpitLocaleService.getCurrentLocale());
          super.doAfterCompose(comp);
      }

  

在我们的* backoffice-spring.xml中:

  
      
 
          
          
      
  

一周热门 更多>