diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
 # Revision history for reflex-dom-th
 
+## 0.3.3
+* gettext-th support
+
 ## 0.3.2
 * ghc 8.10 support 
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -63,3 +63,11 @@
                           </ul> |]
 ```		       
 
+
+There is also support for translatable text from [gettext-th](https://hackage.haskell.org/package/gettext-th). 
+
+To add translatable text in a template File (see domFile) 
+
+```
+<div>[__|Hello world|]</div>
+```
diff --git a/reflex-dom-th.cabal b/reflex-dom-th.cabal
--- a/reflex-dom-th.cabal
+++ b/reflex-dom-th.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               reflex-dom-th
-version:            0.3.2
+version:            0.3.3
 
 -- A short (one-line) description of the package.
 synopsis: reflex-dom-th transpiles HTML templates to haskell code for reflex-dom
@@ -33,12 +33,13 @@
   exposed-modules:
           Reflex.Dom.TH.Parser
         , Reflex.Dom.TH
-  default-extensions: TemplateHaskell, TupleSections, DeriveLift, RecordWildCards, QuasiQuotes, OverloadedStrings, FlexibleContexts
+  default-extensions: TemplateHaskell, TupleSections, DeriveLift, RecordWildCards, QuasiQuotes, OverloadedStrings, FlexibleContexts, ScopedTypeVariables
   build-depends:
               base >= 4 && < 5
             , array
             , containers
             , megaparsec
+            , gettext-th
             , mtl
             , reflex-dom-core
             , template-haskell
diff --git a/src/Reflex/Dom/TH.hs b/src/Reflex/Dom/TH.hs
--- a/src/Reflex/Dom/TH.hs
+++ b/src/Reflex/Dom/TH.hs
@@ -22,6 +22,8 @@
 import Instances.TH.Lift()
 import Control.Monad.Reader
 
+import I18N.Gettext.TH (gettext)
+
 type Ref = Int
 
 data ChildResult =
@@ -44,6 +46,7 @@
                          , cDynAttrs :: Maybe String
                          , cChilds :: Chain }
                | CText String
+               | CGettext String
                | CComment String
                | CWidget String (Maybe Ref)
                deriving Show
@@ -75,6 +78,7 @@
       CBind (toC e) CREmpty (compile etail inRefs)
   where
     toC (TText t) = CText t
+    toC (TGettext t) = CGettext t
     toC (TComment c) = CComment c
     toC _ = error "internal"
                            
@@ -132,6 +136,8 @@
      return [| $(el'WithAttr tag attr tDynAttrs) $(cs) |]
 cnode (CText "") = return $ [| blank |]
 cnode (CText txt) = return $ [| text txt |]
+cnode (CGettext txt') =   
+  return $ appE [| text |] (quoteExp gettext txt')
 cnode (CWidget x _) = return $ unboundVarE $ mkName x
 cnode (CComment txt) = return [| comment txt |]
 
diff --git a/src/Reflex/Dom/TH/Parser.hs b/src/Reflex/Dom/TH/Parser.hs
--- a/src/Reflex/Dom/TH/Parser.hs
+++ b/src/Reflex/Dom/TH/Parser.hs
@@ -27,6 +27,7 @@
                          , tDynAttrs :: Maybe String
                          , tChilds :: [TElement] }
                | TText String
+               | TGettext String
                | TComment String
                | TWidget String (Maybe Ref)
                deriving Show
@@ -79,6 +80,10 @@
 varRef :: Parser String
 varRef =  string "{{" *> space *> varName <* string "}}" <* space
 
+gettext :: Parser TElement
+gettext = TGettext <$> (string "[__|" *> space *> manyTill anySingle (string "|]"))
+
+
 widget :: Parser TElement
 widget =  TWidget <$> (string "{{" *> space *> varName) <*> (refOpt <* (string "}}"))
 
@@ -86,7 +91,7 @@
 text =  TText <$>  dropWhileEnd isSpace <$>  someTill anySingle (lookAhead (char '<' *> return () <|> string "{{" *> return () ))
 
 element :: Parser TElement     
-element = (comment <|>  node <|> widget <|> text) <* space
+element = (comment <|>  node <|> widget <|> gettext <|> text) <* space
   
 template :: Parser [TElement]
 template = do
