gettext-th 0.2.0.0 → 0.2.0.1
raw patch · 2 files changed
+20/−8 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- gettext-th.cabal +2/−2
- src/I18N/Gettext/TH.hs +18/−6
gettext-th.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: gettext-th-version: 0.2.0.0+version: 0.2.0.1 synopsis: gettext-th can internationalise a haskell program without runtime dependencies @@ -40,4 +40,4 @@ hs-source-dirs: src default-language: Haskell2010 ghc-options: -Wall -fwarn-tabs - default-extensions: TemplateHaskell, TupleSections, DeriveLift, RecordWildCards, QuasiQuotes, OverloadedStrings, FlexibleContexts+ default-extensions: TemplateHaskell, TupleSections, DeriveLift, RecordWildCards, QuasiQuotes, OverloadedStrings, FlexibleContexts, ScopedTypeVariables
src/I18N/Gettext/TH.hs view
@@ -17,7 +17,10 @@ import Data.Set (Set) import qualified Data.Set as S +--import Control.Exception (catch, IOException)+ import qualified Data.ByteString as B+import Data.Text (Text) import qualified Data.Text as T import qualified Data.Text.Lazy as TL import Data.Text.Encoding (encodeUtf8)@@ -42,8 +45,11 @@ moFileName = replaceExtension potFileName ".mo" {-# NOINLINE catalog #-}-catalog :: Catalog-catalog = unsafePerformIO $ loadCatalog moFileName+catalog :: Maybe Catalog+catalog = unsafePerformIO $ do+ fe <- doesFileExist moFileName+ if fe then Just <$> loadCatalog moFileName+ else return Nothing header :: String@@ -86,13 +92,19 @@ renameFile potFileName (potFileName ++ ".bak") writeFileUtf8 potFileName WriteMode header- makeAbsolute moFileName- addDependentFile fn+ moE <- doesFileExist moFileName+ if moE then makeAbsolute moFileName+ else return ""+ when (not $ null fn) $ addDependentFile fn packStr :: String -> B.ByteString packStr = encodeUtf8 . T.pack +lookupText :: String -> Text+lookupText str = maybe (T.pack str) (\ c -> TL.toStrict $ G.gettext c $ packStr str) catalog+ + gettextQ :: String -> Q Exp gettextQ str = do kmsgs <- runIO $ do@@ -104,7 +116,7 @@ when (str `S.notMember` kmsgs) $ do loc <- location runIO $ writeFileUtf8 potFileName AppendMode $ unlines $ poEntry loc str- let trans = TL.toStrict $ G.gettext catalog (packStr str)+ let trans = lookupText str [| trans |] quote :: String -> String@@ -137,7 +149,7 @@ runIO $ writeFileUtf8 potFileName AppendMode $ unlines $ concat [ poEntry loc msg | (_, msg) <- msgs, msg `S.notMember` kmsgs ] forM msgs $ \ (key, msg) ->- let trans = TL.toStrict $ G.gettext catalog (packStr msg) in do+ let trans = lookupText msg in do funD (mkName key) [clause [] (normalB [| trans |]) []]