module Text.Inflections.Transliterate
( transliterate
, transliterateCustom
)
where
import Text.Inflections.Parameterize ( Transliterations )
import Text.Inflections.Data (defaultMap)
import Data.Char (isAscii)
import Data.Maybe(fromMaybe)
import qualified Data.Map as Map
transliterate :: String -> String
transliterate = transliterateCustom "?" defaultMap
transliterateCustom :: String -> Transliterations -> String -> String
transliterateCustom replacement ts = concatMap lookupCharTransliteration
where lookupCharTransliteration c =
if isAscii c then
[c]
else
fromMaybe replacement (Map.lookup c ts)