gpt4 book ai didi

grails - Grails-计算机/浏览器的语言环境不会影响i18n机制

转载 作者:行者123 更新时间:2023-12-02 15:56:51 29 4
gpt4 key购买 nike

我有一个奇怪的问题,或者我可能无法理解Grails i18n机制的工作原理。
我将以下内容插入到index.gsp文件中:

LocaleContextHolder.locale:              '${org.springframework.context.i18n.LocaleContextHolder.locale}'
java.util.Locale.getDefault(): '${java.util.Locale.getDefault()}'
RequestContextUtils.getLocale(request): '${org.springframework.web.servlet.support.RequestContextUtils.getLocale(request)}'
session['SessionLocaleResolver.LOCALE']: '${session['org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE']}'
此代码段应打印区域设置,并且这样做:

LocaleContextHolder.locale: 'iw'

java.util.Locale.getDefault(): 'en_US'

RequestContextUtils.getLocale(request): 'iw'

session['SessionLocaleResolver.LOCALE']: ''


以上是我运行给定代码段时的默认输出。
我试图了解到底什么因素会影响此变量,所以我做了以下步骤:
  • 我更改了Chrome的语言环境
    设置->显示高级设置->语言和输入设置)
  • 我更改了操作系统的语言环境(Windows 7)
    控制面板->区域和语言->格式+位置+系统区域设置

  • 这些更改之后,我重新启动了计算机,并期望区域设置变量的值能够更改,但是它们仍然保持不变。
    我知道我可以使用?lang参数和一些代码来更改语言环境,但是我对让Grails决定选择哪个语言环境感兴趣。
    到底是什么影响这些变量? Grails如何确定机器的语言环境?

    最佳答案

    15.2更改区域设置

    默认情况下,从传入的Accept-Language header 中检测到用户区域设置。但是,您可以通过简单地将名为lang的参数作为请求参数传递给Grails来为用户提供切换语言环境的功能:
    / book / list?lang = es
    Grails将自动切换用户的语言环境并将其存储在cookie中,以便后续请求将具有新的 header 。

    从这里 :
    https://grails.github.io/grails-doc/2.4.3/guide/i18n.html

    如果要在tomcat中进行部署,则可以在 catalina.sh 脚本中设置区域设置:

    if [ -z "$LOGGING_MANAGER" ]; then
    JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Duser.language=en -Duser.region=US"
    else
    JAVA_OPTS="$JAVA_OPTS $LOGGING_MANAGER -Duser.language=en -Duser.region=US"
    fi

    关于grails - Grails-计算机/浏览器的语言环境不会影响i18n机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33254830/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com