diff options
Diffstat (limited to 'src/I18n.hs')
-rw-r--r-- | src/I18n.hs | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/I18n.hs b/src/I18n.hs index 9b9f870..988c823 100644 --- a/src/I18n.hs +++ b/src/I18n.hs @@ -1,13 +1,30 @@ +{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TemplateHaskell #-} -module I18n where +module I18n + ( Locale(..) + , RenderMessage + + , mkMessage + , translate + ) where import qualified Data.Text as T -import Text.Shakespeare.I18N (mkMessage, renderMessage) +import Text.Shakespeare.I18N (mkMessage, renderMessage, RenderMessage) data Bot = Bot +data Locale = EN | FR + +toISOLocale :: Locale -> T.Text +toISOLocale EN = "en" +toISOLocale FR = "fr" + mkMessage "Bot" "messages" "en" + +translate :: (RenderMessage Bot b) => Locale -> b -> T.Text +translate locale message = + renderMessage Bot [(toISOLocale locale)] message |