28 lines
691 B
OCaml
28 lines
691 B
OCaml
open Drame
|
|
open Lang
|
|
|
|
let set_session request lang =
|
|
Session.set request Lang.session_param_name (Fmt.str "%a" Lang.pp lang)
|
|
|
|
let to_value lang request =
|
|
set_session request lang;
|
|
let redirect =
|
|
match Drame.Request.query request "redirect" with
|
|
| None -> Sitemap.home
|
|
| Some r -> r
|
|
in
|
|
let content =
|
|
txt request ~en:"I'm speaking english now!"
|
|
~fr:"Je parle française maintenant !"
|
|
in
|
|
let page =
|
|
Template.render request
|
|
~h1:{ en = "Language choice"; fr = "Choix de la langue" }
|
|
content
|
|
in
|
|
Error (Status.Found redirect, page)
|
|
|
|
let to_french request = to_value Lang.French request
|
|
|
|
let to_english request = to_value Lang.English request
|