Hybris 如何更改backoffice标签默认语言

Hybris 如何更改backoffice标签默认语言,hybris,backoffice,Hybris,Backoffice,如何将backoffice标签的默认语言设置为en_GB。它现在正在吸引我们。使用hybris6.5 我无法看到标签,因为在值上可以看到null,当选中标签时,它不是空的。但是如果有一种不同的语言是空的(en_-US),我相信它是默认语言/后备语言,当我在en_-US中添加值时,它就工作了。我希望它能在en_GB中工作。在OOTB中,有一个类BackofficeAuthenticationSuccessHandler。在这里,它选择类中的当前语言环境(CockpitLocaleService)。

如何将backoffice标签的默认语言设置为en_GB。它现在正在吸引我们。使用hybris6.5


我无法看到标签,因为在值上可以看到null,当选中标签时,它不是空的。但是如果有一种不同的语言是空的(en_-US),我相信它是默认语言/后备语言,当我在en_-US中添加值时,它就工作了。我希望它能在en_GB中工作。

在OOTB中,有一个类BackofficeAuthenticationSuccessHandler。在这里,它选择类中的当前语言环境(CockpitLocaleService)。尝试编写自定义身份验证处理程序以进行更改并设置要显示的语言。

在OOTB中,有一个类BackofficeAuthenticationSuccessHandler。在这里,它选择类中的当前语言环境(CockpitLocaleService)。尝试编写一个自定义身份验证处理程序来进行更改并设置要显示的语言。

如果要更改backoffice/驾驶舱登录页面的默认区域设置,而不使用“语言选择器”(可能不想显示此选择器。因此,假设此选择器不存在):

有一个更好的解决方案,它不需要java代码。 只需覆盖login.zul,添加文本输入即可。请注意:

  • 输入名称必须为:“区域设置”
  • 输入类型必须是:“text”(type=“hidden”对我不起作用。您可以使用CSS隐藏它)
  • login.zul的示例:

     <h:form action="j_spring_security_check" method="post">
         <textbox type="text" placeholder="Email/Username" class="email-input" name="j_username"/>
         <textbox type="password" placeholder="Password" class="email-password" name="j_password"/>
         <textbox type="text" class="hidden-locale-input"  name="locale" value="en"/> 
         <button type="button" class="login" label="Login" />
     </h:form>
    
    
    
    所有这些输入都将作为映射传递到BackofficeAuthenticationSuccessHandler.java。 在BackofficeAuthenticationSuccessHandler.java中,hybris将使用此映射并搜索名为“locale”的参数。我们已经通过在login.zul中创建输入“locale”提供了这个参数及其值(en)


    如果您想更改backoffice/Cockpoint登录页面的默认区域设置,而不使用“语言选择器”(可能您不想显示此选择器。因此,假设此选择器不存在),则无需重写backoffice AuthenticationSuccessHandler.java的本机实现即可:

    有一个更好的解决方案,它不需要java代码。 只需覆盖login.zul,添加文本输入即可。请注意:

  • 输入名称必须为:“区域设置”
  • 输入类型必须是:“text”(type=“hidden”对我不起作用。您可以使用CSS隐藏它)
  • login.zul的示例:

     <h:form action="j_spring_security_check" method="post">
         <textbox type="text" placeholder="Email/Username" class="email-input" name="j_username"/>
         <textbox type="password" placeholder="Password" class="email-password" name="j_password"/>
         <textbox type="text" class="hidden-locale-input"  name="locale" value="en"/> 
         <button type="button" class="login" label="Login" />
     </h:form>
    
    
    
    所有这些输入都将作为映射传递到BackofficeAuthenticationSuccessHandler.java。 在BackofficeAuthenticationSuccessHandler.java中,hybris将使用此映射并搜索名为“locale”的参数。我们已经通过在login.zul中创建输入“locale”提供了这个参数及其值(en)


    这将在不重写BackofficeAuthenticationSuccessHandler.java的本机实现的情况下工作

    我已经尝试过,我尝试过使用这种方法,第一个注释就可以工作。cockpitLocaleService.setCurrentLocale(LocaleUtils.toLocale(“en_GB”));出于某种原因,它不会进入那个文件。看看它的春天。我已经试过了,我试着用这种方法,第一个注释力工作。cockpitLocaleService.setCurrentLocale(LocaleUtils.toLocale(“en_GB”));出于某种原因,它不会进入那个文件。看着它的春天。