@hackage snap-language0.1.0.0
Language handling for Snap
Categories
License
BSD-3-Clause
Maintainer
jon.petter.bergman@gmail.com
Links
Versions
Installation
Dependencies (5)
- base >=4.8 && <4.9
- bytestring >=0.10.6.0 && <0.11
- containers >=0.5.6.2 && <0.6
- attoparsec >=0.13.0.1 && <0.14
- snap-core >=0.9.8.0 && <0.10 Show all…
Dependents (1)
@hackage/acme-everything
snap-language
Language handling for Snap.
Support for determining the client's prefered language using the Accept-Language header or using suffixes to the requested URI.
Try this example:
{-# LANGUAGE OverloadedStrings #-}
module Simple where
import Snap.Http.Server
import Snap.Core
import Data.Map
import Control.Applicative
import Snap.Language
data Lang = SV | EN deriving Eq
table :: RangeMapping Lang
table = fromList [("sv-SE",SV),("en-GB",EN)]
getLanguage :: Snap Lang
getLanguage =
getSuffixLanguage table <|>
getAcceptLanguage table <|>
return EN
test :: IO ()
test = quickHttpServe $ do
lang <- getLanguage
dir "hello" $ handler lang
handler :: Lang -> Snap ()
handler EN = writeBS "hello"
handler SV = writeBS "hej"
You can now access /hello
and you will get an answer depending on your Accept-Language header.
Or you can access /hello.en-GB
or /hello.sv-SE
directly.