gpt4 book ai didi

scala - 如何从 Scala Play 中提供大部分静态页面!应用程序像不同语言的 "About"页面?

转载 作者:行者123 更新时间:2023-12-01 02:29:03 34 4
gpt4 key购买 nike

我正在使用 Play 构建应用程序!框架版本 2.0.4。法律要求的一些页面(例如印记)大多包含大量(每个约 10k)静态文本,我想以不同的语言提供这些文本。

在 1.x 版本中有一个 #include允许使用当前 Lang 构造实际资源路径的指令.

与 Play 2.x 类似的实现方式的推荐方法是什么?

谢谢您最好的问候,
埃里希

最佳答案

我不是 100% 确定你现在如何实现它,但这是我想出的。

您可以编写自己的包含帮助程序。将以下内容保存在文件中 Helpers.scala在您的 View 文件夹中。解释在代码的注释中。

package views.html.helper

object include {
import play.api.templates.Html
import play.api.Play
import play.api.Play.current
import play.api.i18n._

// The default is to look in the public dir, but you can change it if necessary
def apply(filePath: String, rootDir: String = "public")(implicit lang: Lang): Html = {
// Split filePath at name and suffix to insert the language in between them
val (fileName, suffix) = filePath.splitAt(filePath.lastIndexOf("."))

// Retrieve the file with the current language, or as a fallback, without any suffix
val maybeFile =
Play.getExistingFile(rootDir + "/" + fileName + "_" + lang.language + suffix).
orElse(Play.getExistingFile(rootDir + "/" + filePath))

// Read the file's content and wrap it in HTML or return an error message
maybeFile map { file =>
val content = scala.io.Source.fromFile(file).mkString
Html(content)
} getOrElse Html("File Not Found")
}
}

现在在您的 imprint.scala.html你可以这样称呼它:
@()(implicit lang: Lang)
@import helper._
@include("static/imprint.html")

关于scala - 如何从 Scala Play 中提供大部分静态页面!应用程序像不同语言的 "About"页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14268536/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com