Как реализовать плюрализацию и другие расширения с помощью Playframework 2.0

В playframework 1.x раньше использовались Java-расширения для шаблонизатора: http://www.playframework.org/documentation/1.2.3/javaextensions

Я ищу ту же функциональность в playframework 2.0. Например, как бы я это сделал?

colour${['red', 'green', 'blue'].pluralize()} 

Сейчас я делаю это не так:

We have @colours.size [email protected](colours.size > 0){s}

должен быть более чистым, более многоразовый способ сделать это?

Ответ 1

Вы можете использовать pimp my lib Scala шаблон для реализации чего-то эквивалентного Слушать 1.x Java-расширения.

Например, метод pluralize в коллекции может быть реализован следующим образом:

// File app/views/pimps.scala
package views

package object pimps {
  class PimpedTraversable[A](col: Traversable[A]) {
    def pluralize = if (col.size == 1) "" else "s"
  }

  implicit def pimpTraversable[A](col: Traversable[A]) = new PimpedTraversable(col)
}

Затем вы можете использовать его следующим образом:

@import views.pimps._

We have @colours.size [email protected]