如何设置Play以从自定义目录中读取消息文件?

时间:2014-01-03 12:43:54

标签: playframework-2.0 sbt

build.scala中,我更改了邮件文件的路径,如下所示:

val main = play.Project(appName, appVersion, appDependencies).settings(
    lessEntryPoints <<= baseDirectory(_ / "app" / "assets" / "stylesheets" ** "main.less"),
    resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository",
    resolvers += "maven2 repository" at "http://repo1.maven.org/maven2/",
    unmanagedBase <<= baseDirectory(_ / ".." / "messagesFiles")
  )

messagesFiles文件夹包含messagesmessages.fr个文件。

在应用程序启动时,未显示已翻译的文本。为什么呢?

如何设置播放应用程序以读取除conf文件夹以外的自定义位置中的消息文件?

1 个答案:

答案 0 :(得分:1)

您尚未描述有关播放版本的环境,因此我假设您使用的是最新版本Play 2.2.2-RC1。我的是......

[myFirstApp] $ show playVersion
[info] 2.2.2-RC1

鉴于播放版本,您可以在大多数情况下使用build.sbt配置项目。如果您的项目中没有它,请创建一个。

将以下行添加到build.sbt以指向特定于语言的消息文件所在的自定义目录。

unmanagedResourceDirectories in Compile += baseDirectory.value / "messagesFiles"

我不确定它是否是最推荐的指定消息目录的方法,但考虑到sbt如何工作,它可以解决问题。

您可以show unmanagedResourceDirectories设置的值,如下所示:

[myFirstApp] $ show unmanagedResourceDirectories
[info] List(/Users/jacek/sandbox/play-ground/myFirstApp/conf, /Users/jacek/sandbox/play-ground/myFirstApp/messagesFiles)

以上输出采用build.sbt中的上述设置。

在之前版本的Play(以及SBT)中,project/Build.scala中的以下内容可以解决问题:

unmanagedResourceDirectories in Compile <+= baseDirectory(_ / ".." / "messagesFiles" )