有一些多线字符串呈现给用户并存储为Heredocs。因此,使用ConfigSlurper使用的基于groovy的属性(请参阅here)而不是“普通”(Java)属性文件,并且效果很好。对不起,如果这是一个愚蠢的问题,但是这可以很容易国际化吗?如果是这样,你能概述一下如何实现这一目标吗?
答案 0 :(得分:1)
我的解决方案:在ConfigSlurper
中,您应该将键存储到内化字符串中。在控制器/服务中注入messageSource
和localResolver
,从ConfigSlurper
获取密钥,并在 i18n messages.property文件中找到本地化字符串。示例(不确定代码是否正确,但这是主要想法):
def config = new ConfigSlurper().parse(new File('src/Config.groovy').toURL())
//localized string1 value
def msg = messageSource.getMessage(config.data1.string1, null, localeResolver.defaultLocale)
答案 1 :(得分:0)
据我所知,ConfigSlurper
对i18n没有特别的支持
您可以通过使用每个语言环境创建环境闭包来利用其对environments的支持来实现它。例如:
environments {
english {
sample {
hello = "hello"
}
}
spanish {
sample {
hello = "hola"
}
}
}
创建ConfigSlurper
时,您需要传递所需的语言:
def config = new ConfigSlurper("spanish")