aboutsummaryrefslogtreecommitdiffstats
path: root/src/I18n.hs
blob: 988c823f42e941067c79e73fb32c22e92aacd173 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}

module I18n
    ( Locale(..)
    , RenderMessage

    , mkMessage
    , translate
    ) where

import qualified Data.Text as T

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