Not sure.  If it is called in a request, it is called many times, and so it should definitely by memoised (once calculated, a lazy val costs a volatile read).  I'm not sure though how often Lang is instantiated in a request, and code not called.  If that happens most requests, then lazy val seems to be the right thing.