有一些多行字符串呈现给用户并存储为Heredocs。 因此,与其说是一个"普通的"(Java)属性文件,不如使用一个由ConfigSlurper使用的基于时髦的属性文件(见这里),并且效果很好。 对不起,如果这是一个愚蠢的问题,但这可以很容易地国际化吗? 如果是这样,你能概述一下是如何实现的吗?
我的解决方案:在您的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)
我所知,ConfigSlurper
没有对i18n的特殊支持。
您可以通过利用其对环境的支持来实现它,方法是为每个区域设置创建环境闭包。例如:
environments {
english {
sample {
hello = "hello"
}
}
spanish {
sample {
hello = "hola"
}
}
}
创建ConfigSlurper
时,您需要传递所需的语言:
def config = new ConfigSlurper("spanish")