diff --git a/Yesod/Dispatch.hs b/Yesod/Dispatch.hs index 4ad8b123..2d24502c 100644 --- a/Yesod/Dispatch.hs +++ b/Yesod/Dispatch.hs @@ -218,9 +218,6 @@ fixSegs [x] | otherwise = [x, ""] -- append trailing slash fixSegs (x:xs) = x : fixSegs xs -langKey :: String -langKey = "_LANG" - parseWaiRequest :: W.Request -> [(String, String)] -- ^ session -> IO Request diff --git a/Yesod/Handler.hs b/Yesod/Handler.hs index 97a37d49..58a00038 100644 --- a/Yesod/Handler.hs +++ b/Yesod/Handler.hs @@ -47,6 +47,7 @@ module Yesod.Handler , addCookie , deleteCookie , header + , setLanguage -- * Session , setSession , clearSession @@ -363,6 +364,10 @@ addCookie a b = addHeader . AddCookie a b deleteCookie :: String -> GHandler sub master () deleteCookie = addHeader . DeleteCookie +-- | Set the language header. Will show up in 'languages'. +setLanguage :: String -> GHandler sub master () +setLanguage = addCookie 60 langKey + -- | Set an arbitrary header on the client. header :: String -> String -> GHandler sub master () header a = addHeader . Header a diff --git a/Yesod/Internal.hs b/Yesod/Internal.hs index 0f89fdda..384f2a07 100644 --- a/Yesod/Internal.hs +++ b/Yesod/Internal.hs @@ -4,6 +4,8 @@ module Yesod.Internal ErrorResponse (..) -- * Header , Header (..) + -- * Cookie names + , langKey ) where -- | Responses to indicate some form of an error occurred. These are different @@ -23,3 +25,6 @@ data Header = | DeleteCookie String | Header String String deriving (Eq, Show) + +langKey :: String +langKey = "_LANG"