从Backoffice登录页面和快速切换小部件中删除语言

2020-09-05 12:59发布

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

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


大家好,

客户需要从后台登录页面以及快速切换小部件中删除语言。 从hybris Wiki可以理解,可以通过在cockpit-config.xml中添加上下文来禁用语言环境。 它禁用了语言,但并未从窗口小部件中删除语言。

有什么方法可以从后台登录和快速切换窗口小部件中删除语言,而不必从国际化中删除语言?>删除/禁用语言或通过UI隐藏它? 还是可以通过重写DefaultLocalizationService来实现?

混合动力车版本:1808

预先感谢! 此致Sanjay Singh

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

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


大家好,

客户需要从后台登录页面以及快速切换小部件中删除语言。 从hybris Wiki可以理解,可以通过在cockpit-config.xml中添加上下文来禁用语言环境。 它禁用了语言,但并未从窗口小部件中删除语言。

有什么方法可以从后台登录和快速切换窗口小部件中删除语言,而不必从国际化中删除语言?>删除/禁用语言或通过UI隐藏它? 还是可以通过重写DefaultLocalizationService来实现?

混合动力车版本:1808

预先感谢! 此致Sanjay Singh

付费偷看设置
发送
11条回答
浮生未央
1楼-- · 2020-09-05 13:07

使用以下代码,您可以将应用程序限制为仅两种语言:

 公共类CustomLocalizationService扩展了DefaultLocalizationService {
      @Override
      公共Set  getSupportedDataLocales(){
          最终Set  supportedDataLocales = new HashSet <>();
          supportedDataLocales.add(Locale.ENGLISH);
          supportedDataLocales.add(Locale.GERMAN);
          返回supportedDataLocales;
      }
   }
  

Spring配置:

  
  
  

如果您只想将应用程序限制为仅针对匿名用户的这两种语言(例如,在登录屏幕上),则可以使用以下代码:

 公共类CustomLocalizationService扩展了DefaultLocalizationService {
      @资源
      私人UserService userService;
      @Override
      公共Set  getSupportedDataLocales(){
          最终Set  supportedDataLocales = new HashSet <>();
          如果(userService.isAnonymousUser(userService.getCurrentUser())){
              supportedDataLocales.add(Locale.ENGLISH);
              supportedDataLocales.add(Locale.GERMAN);
          }其他{
              supportedDataLocales.addAll(super.getSupportedDataLocales());
          }
          返回supportedDataLocales;
      }
   }
  

目前,我不知道如何通过"快速切换语言环境"窗口小部件限制语言的解决方案。 我尝试了 https://help.hybris.com/6.2.0/hcd/8c36a57386691014ba298e76544c6e6a上提到的配置。 html ,但是没有用。 找到答案后,我将使用解决方案来更新我的答案。

大简至美
2楼-- · 2020-09-05 13:03

Arvind-已经进行了此更改以提高后台的登录性能,因此,与其在登录时加载所有语言, 它只加载配置文件中定义的两种语言

土豆飞人
3楼-- · 2020-09-05 13:17

嗨,我能够通过指定以下窗口小部件配置来从快速切换窗口小部件中隐藏一种语言(请注意,enabled =" false" 对于您要隐藏的某些语言)。 据我通过检查平台代码确定的,要从登录屏幕中删除条目,您必须完全从后台删除该语言(不过,也可以从店面中删除该语言)。

  
      
          
          
          
      
  

  

替代文字

Haoba3210
4楼-- · 2020-09-05 13:28

Lukasz-我在之前的评论中已经提到该语言没有 不需要标记为非活动,因为从PIM系统加载数据时可能会使用语言。

clever101
5楼-- · 2020-09-05 13:13

我使用了建议的方法,但是稍微改变了逻辑,并能够在登录对话框和语言快速切换中实现所需的效果。 我所做的修改:

  • 替代受保护的Map getSupportedLocales()方法,而不是 public Set getSupportedDataLocales()

  • 引入了一种简单的逻辑来检索设置为活动的语言 SELECT {PK} FROM {L as的语言} WHERE {l.active} = true

您可以在DefaultLocalizationService中比较原始方法getSupportedLocales,以供参考。

替代文本

葫芦娃快救爷爷
6楼-- · 2020-09-05 13:20

请注意,通过" lang"限制语言。 packs"属性使某些ootb ImpEx文件失败(至少在CX Commerce 1811中如此),因为某些ImpEx文件盲目地引用了语言,而不检查它们是否可用。

运行

 查找。 名称" * .impex" |  xargs grep" es_CO"
  
在Hybris安装中

查找示例。

一周热门 更多>