In addition surrounding XHTML with a template, you can also embed a template at the current point in the page rendering with the <lift:embed/> tag.
I am an example of a template that is embedded!!
The above paragraph was embedded using this code:
<span class="lift:embed?what=/templating/_sample_embed"></span>
Templates that start with the underscore ('_') or period ('.') characters will not be served directly by Lift, but may be accessed using the surround and embed tags.
Lift will select templates based on the current localization
setting for the session. Lift uses the function in
LiftRules.localeCalculator
to determine the
current locale for template selection. By default the
function is:
def defaultLocaleCalculator(request: Box[HTTPRequest]) =
request.flatMap(_.locale).openOr(Locale.getDefault())
But you can customize the function to return the locale of
the currently logged in user, detect the IP address of the request,
etc.
Based on the locale, Lift will look for templates based on
the base template name, in this case
'/templating/_sample_embed'
and
then append an underscore ('_') followed by the complete locale, for
example 'en_US'. So, Lift will look for
'/templating/_sample_embed_en_US.html'
. If that resource
is not available, Lift will look for
'/templating/_sample_embed_en.html'
and finally
'/templating/_sample_embed.html'
.