packages feed

batchd-core-0.1.0.0: src/Batchd/Core/Common/Localize.hs

-- | This module contains utilities for localization.
-- This also re-exports commonly used modules from @localize@ package.
module Batchd.Core.Common.Localize
  (
    translationPolicy,
    __, __f,
    __s, __sf,
    Localized (..),
    module Text.Localize.IO
  ) where

import qualified Data.Text.Lazy as TL
import Data.Text.Format.Heavy
import Text.Localize
import Text.Localize.IO

-- | Standard batchd translation files location policy:
-- first check @"mo"@ subdirectory in current directory,
-- then check standard linux locations.
translationPolicy :: LocatePolicy
translationPolicy =
  let local = localLocation "mo" 
      global = linuxLocation "batchd"
  in  global {lcBasePaths = lcBasePaths local ++ lcBasePaths global}

-- | Variant of @__@, returning String.
__s :: (Localized m, MonadFail m) => TranslationSource -> m String
__s str = TL.unpack `fmap` (__ str)

-- | Variant of @__f@, returning String.
__sf :: (Localized m, MonadFail m, VarContainer vars) => TranslationSource -> vars -> m String
__sf str vars = TL.unpack `fmap` (__f str vars)