reflex-localize-1.0.0.0: src/Reflex/Localize/Monad.hs
module Reflex.Localize.Monad
(
MonadLocalized(..)
) where
import Control.Monad.Reader
import Reflex
import Reflex.Localize.Language
-- | ===========================================================================
-- | Monad Localized
-- | ===========================================================================
-- | API for language localization support
class (Reflex t, Monad m) => MonadLocalized t m | m -> t where
-- | Switch frontend language
setLanguage :: Language -> m ()
-- | Switch frontend language by event
setLanguageE :: Event t (Language) -> m ()
-- | Get language of the frontend
getLanguage :: m (Dynamic t Language)
instance {-# OVERLAPPABLE #-} MonadLocalized t m => MonadLocalized t (ReaderT e m) where
setLanguage = lift . setLanguage
setLanguageE = lift . setLanguageE
getLanguage = lift getLanguage
{-# INLINE setLanguage #-}
{-# INLINE setLanguageE #-}
{-# INLINE getLanguage #-}