Playframework 在play框架中在RTL和LTR之间切换
我们正在开发一个网站,我们需要支持LTR和RTL。我们发现最好的方法是改变CSSsi.e。CSS用于LTR,另一个用于RTL。这很好,问题是如何决定语言需要LTR还是RTL。我知道一个解决方案,我们从控制器获得accept语言,然后决定它是LTR还是RTL,然后将这个变量发送到scala模板,模板将有一个if,else语句来决定它将加载哪个CSS,但我们将在每个控制器中这样做,做这种事情的最佳实践是什么,有没有办法从scala模板而不是控制器中了解accept语言?Playframework 在play框架中在RTL和LTR之间切换,playframework,internationalization,playframework-2.3,scala-template,Playframework,Internationalization,Playframework 2.3,Scala Template,我们正在开发一个网站,我们需要支持LTR和RTL。我们发现最好的方法是改变CSSsi.e。CSS用于LTR,另一个用于RTL。这很好,问题是如何决定语言需要LTR还是RTL。我知道一个解决方案,我们从控制器获得accept语言,然后决定它是LTR还是RTL,然后将这个变量发送到scala模板,模板将有一个if,else语句来决定它将加载哪个CSS,但我们将在每个控制器中这样做,做这种事情的最佳实践是什么,有没有办法从scala模板而不是控制器中了解accept语言? 提前感谢我发现的最接近的事情
提前感谢我发现的最接近的事情是,我在一个控制器中放了一个方法,获取lang,然后获取它的RTL或LTR,然后根据我的main.scala.html加载CSS和JSs。因此,我不必担心从每个控制器方法传递if语句,main中的代码scala.html如下所示:
@if(Language.isRTL()){
<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/bootstrap_rtl.min.css")">
}else{
<link rel="stylesheet" media="screen" href="@routes.WebJarAssets.at(WebJarAssets.locate("bootstrap.min.css"))">
}