module Text.Localize.Locale where
import Data.Maybe
import System.Locale.SetLocale
import Text.Localize.Types
languageFromLocale :: IO LanguageId
languageFromLocale :: IO LanguageId
languageFromLocale = do
Maybe LanguageId
mbLocale <- Category -> Maybe LanguageId -> IO (Maybe LanguageId)
setLocale Category
LC_MESSAGES (LanguageId -> Maybe LanguageId
forall a. a -> Maybe a
Just LanguageId
"")
let locale :: LanguageId
locale = LanguageId -> Maybe LanguageId -> LanguageId
forall a. a -> Maybe a -> a
fromMaybe LanguageId
"C" Maybe LanguageId
mbLocale
LanguageId -> IO LanguageId
forall (m :: * -> *) a. Monad m => a -> m a
return (LanguageId -> IO LanguageId) -> LanguageId -> IO LanguageId
forall a b. (a -> b) -> a -> b
$ (Char -> Bool) -> LanguageId -> LanguageId
forall a. (a -> Bool) -> [a] -> [a]
takeWhile (Char -> Char -> Bool
forall a. Eq a => a -> a -> Bool
/= Char
'_') LanguageId
locale