groovy heredocs可以国际化吗?

时间:2013-09-12 18:24:14

标签: groovy internationalization heredoc

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

2 个答案:

答案 0 :(得分:1)

我的解决方案:在ConfigSlurper中,您应该将存储到内化字符串中。在控制器/服务中注入messageSourcelocalResolver,从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")