0

有一些多行字符串呈现给用户并存储为 Heredocs。因此,使用 ConfigSlurper 使用的基于 groovy 的(参见此处)而不是“普通”(Java)属性文件,并且效果很好。对不起,如果这是一个愚蠢的问题,但这可以很容易地国际化吗?如果是这样,你能概述一下这是如何实现的吗?

4

2 回答 2

1

我的解决方案:ConfigSlurper您应该将密钥存储到内部化字符串中。注入messageSourcelocalResolver在您的控制器/服务中,从您获取密钥并在您的i18n messages.property 文件ConfigSlurper中找到本地化字符串。示例(不确定代码是否正确,但这是主要思想):

def config = new ConfigSlurper().parse(new File('src/Config.groovy').toURL())

//localized string1 value
def msg = messageSource.getMessage(config.data1.string1, null, localeResolver.defaultLocale)
于 2013-09-13T07:46:58.607 回答
0

据我所知ConfigSlurper,i18n 没有特别支持。您可以通过为每个语言环境创建一个环境闭包
来利用它对环境的支持来实现它。例如:

environments {
  english {
    sample {
      hello = "hello"
    }
  }
  spanish {
    sample {
      hello = "hola"
    }
  }
}

创建时,ConfigSlurper您需要传递所需的语言:

def config = new ConfigSlurper("spanish")
于 2013-09-13T07:37:17.457 回答