【问题标题】:How to change GWT Constant locale forcibly and at runtime如何在运行时强制更改 GWT 常量语言环境
【发布时间】:2021-03-25 17:03:33
【问题描述】:

对于 Spring 应用程序中的某些端点,我需要将 GWT 常量语言环境更改为 en。我可以在管理面板中更改用户区域设置。而且我想在某些情况下强制gwt locale为一些常量,无论用户有什么语言环境设置。我的端点与后端相关。如何强制设置语言环境?

在我的应用程序中,当我更改用户区域设置时,所有端点的所有常量都会更改,无论我如何获取它 - 在浏览器或邮递员中(没有在查询中指定区域设置参数)。我不知道它是如何工作的。继承 com.google.gwt.i18n.client.Constants 类的 AppContants 类没有任何设置语言环境的方法。

【问题讨论】:

    标签: java spring gwt locale setlocale


    【解决方案1】:

    语言环境选项在模块 XML 中定义。例如,以下模块添加了多个语言环境值:

    <module>
      <inherits name="com.google.gwt.user.User"/>
      <inherits name="com.google.gwt.i18n.I18N"/>
    
       <!-- Available Locales -->
       <extend-property name="locale" values="pt"/>
       <extend-property name="locale" values="de"/>
       <extend-property name="locale" values="en"/>
    
       <!-- Fallback -->
       <set-property-fallback name="locale" value="en"/>
    </module>
    

    可以使用元标记或作为主机页面 URL 中查询字符串的一部分来指定区域设置客户端属性。如果两者都指定,则查询字符串优先。

    要在主机页面中使用 元标记 指定区域设置客户端属性,请为 gwt:property 嵌入元标记,如下所示:

    <meta name="gwt:property" content="locale=en">
    

    要使用 查询字符串 指定区域设置客户端属性,请指定名称区域设置的值。例如,

    https://www.example.org/myapp.html?locale=en
    

    要强制使用您想要的语言环境,您的应用应该忽略管理面板中的用户设置,并使用查询字符串加载您想要的语言环境。或者,如果您希望页面上的所有用户默认使用相同的语言环境,您可以将元标记设置为您想要的语言环境。

    【讨论】:

    • 感谢您的回复。我需要强制为后端端点中的常量设置语言环境。我教我在 Java 代码中创建常量 bean 时必须改变一些东西。我更新了问题以澄清
    • 我的回答仍然适用。要么使用元标记强制区域设置,要么加载查询字符串。究竟是什么不工作?
    猜你喜欢
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多