aboutsummaryrefslogtreecommitdiffstats
path: root/src/I18n.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/I18n.hs')
-rw-r--r--src/I18n.hs21
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