> {-# LANGUAGE QuasiQuotes #-} > {-# LANGUAGE TemplateHaskell #-} > {-# LANGUAGE TypeFamilies #-} > {-# LANGUAGE MultiParamTypeClasses #-} > {-# LANGUAGE OverloadedStrings #-} > {-# LANGUAGE CPP #-} > import Yesod > import Data.Text (Text) > data I18N = I18N > mkYesod "I18N" [parseRoutes| > / HomepageR GET > /set/#Text SetLangR GET > |] > instance Yesod I18N where > approot _ = "http://localhost:3000" > getHomepageR :: Handler RepHtml > getHomepageR = do > ls <- languages > let hello = chooseHello ls > let choices = > [ ("en", "English") :: (Text, Text) > , ("es", "Español") > , ("he", "עִבְרִית") > ] > defaultLayout $ do > setTitle "I18N Homepage" > addHamlet [hamlet| >

#{hello} >

In other languages: >