diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,10 @@
 
 For a full list of changes, see the history on [GitHub](https://github.com/hapytex/ordinal).
 
+## Version 0.2.0.0
+
+Added support for the *German* language.
+
 ## Version 0.1.0.0
 
 The first version that is deployed on Hackage. This version contains
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -13,8 +13,9 @@
 The following languages are currently supported (in *alphabetical* order):
 
  1. Dutch (nl);
- 2. English (en); and
- 3. French (fr)
+ 2. English (en);
+ 3. French (fr); and
+ 4. German (de)
 
 ## Usage
 
@@ -59,6 +60,15 @@
 The package uses the `Data.Vector` module which is not safe, and therefore
 `ordinal` is not safe either.
 
+## Continuous Integration
+
+The commits on GitHub are validated by [*Travis*](https://travis-ci.com/hapytex/ordinal).
+The build will validate that the system is building, that the compiler does not
+generate any *errors* or *warnings*. It will also run the test-suite and will
+run `hlint` on the source code to check for improvements. Finally it will run
+`grep` on the Haskell files in the `src/` directory to check for missing
+elements (`???`) and `TODO`s.
+
 ## Contribute
 
 You can contribute by making a pull request on the [*GitHub
@@ -66,6 +76,41 @@
 
 You can contact the package maintainer by sending a mail to
 [`hapytexeu+gh@gmail.com`](mailto:hapytexeu+gh@gmail.com).
+
+### Adding a new language
+
+There is a `src/Text/Numerals/Languages/Language.hs.template` template file to
+include a new language. This includes a list of tasks to do in order to add the
+language. The `test/` directory contains a `test/Text/Numerals/Languages/LanguageSpec.hs.template`
+file to test the new language. In these templates, one needs to fill in the
+`???` parts.
+
+Normally the languages are tested for all numbers in the 0-200 range, and the
+first hundred Fibonacci numbers greater than 200, so:
+```
+[
+  233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393
+ ,196418,317811,514229,832040,1346269,2178309,3524578,5702887,9227465,14930352
+ ,24157817,39088169,63245986,102334155,165580141,267914296,433494437,701408733
+ ,1134903170,1836311903,2971215073,4807526976,7778742049,12586269025,20365011074
+ ,32951280099,53316291173,86267571272,139583862445,225851433717,365435296162
+ ,591286729879,956722026041,1548008755920,2504730781961,4052739537881,6557470319842
+ ,10610209857723,17167680177565,27777890035288,44945570212853,72723460248141
+ ,117669030460994,190392490709135,308061521170129,498454011879264,806515533049393
+ ,1304969544928657,2111485077978050,3416454622906707,5527939700884757,8944394323791464
+ ,14472334024676221,23416728348467685,37889062373143906,61305790721611591,99194853094755497
+ ,160500643816367088,259695496911122585,420196140727489673,679891637638612258
+ ,1100087778366101931,1779979416004714189,2880067194370816120,4660046610375530309
+ ,7540113804746346429,12200160415121876738,19740274219868223167,31940434634990099905
+ ,51680708854858323072,83621143489848422977,135301852344706746049,218922995834555169026
+ ,354224848179261915075,573147844013817084101,927372692193078999176,1500520536206896083277
+ ,2427893228399975082453,3928413764606871165730,6356306993006846248183,10284720757613717413913
+ ,16641027750620563662096,26925748508234281076009,43566776258854844738105
+ ,70492524767089125814114,114059301025943970552219
+]
+```
+
+and powers of ten until *10<sup>24</sup>*.
 
 ---
 
diff --git a/ordinal.cabal b/ordinal.cabal
--- a/ordinal.cabal
+++ b/ordinal.cabal
@@ -1,5 +1,5 @@
 name:                ordinal
-version:             0.1.2.0
+version:             0.2.0.0
 synopsis:            Convert numbers to words in different languages.
 description:
     A package based on Python's num2words package that converts numbers
@@ -32,14 +32,16 @@
     , Text.Numerals.Languages.Dutch
     , Text.Numerals.Languages.English
     , Text.Numerals.Languages.French
+    , Text.Numerals.Languages.German
     , Text.Numerals.Prefix
   other-modules:
       Text.Numerals.Internal
   build-depends:
       base >= 4.7 && < 5
+    , containers >=0.5
+    , regex >=1.0
     , text >= 0.1
     , template-haskell >=2.2.0.0
-    , containers >=0.5
     , vector >= 0.7
   default-language:    Haskell2010
 
@@ -52,6 +54,7 @@
       Text.Numerals.Languages.DutchSpec
       Text.Numerals.Languages.EnglishSpec
       Text.Numerals.Languages.FrenchSpec
+      Text.Numerals.Languages.GermanSpec
   build-depends:
       base
     , ordinal
diff --git a/src/Text/Numerals/Algorithm.hs b/src/Text/Numerals/Algorithm.hs
--- a/src/Text/Numerals/Algorithm.hs
+++ b/src/Text/Numerals/Algorithm.hs
@@ -18,6 +18,8 @@
     -- * Large number algorithms
   , HighNumberAlgorithm(ShortScale, LongScale)
   , shortScale, longScale
+  , shortScaleTitle, longScaleTitle
+  , valueSplit'
     -- * Conversion to a 'NumberSegment'
   , toSegments
   , toSegmentLow, toSegmentMid, toSegmentHigh
@@ -27,8 +29,7 @@
 
 import Data.Foldable(toList)
 import Data.List(sortOn)
-import Data.Maybe(maybe)
-import Data.Text(Text, cons)
+import Data.Text(Text, cons, toTitle)
 import Data.Vector(Vector, (!), (!?), fromList)
 import qualified Data.Vector as V
 
@@ -50,14 +51,14 @@
 
 
 instance NumToWord NumeralsAlgorithm where
-    toCardinal NumeralsAlgorithm { minusWord=minusWord, oneWord=oneWord, lowWords=lowWords, midWords=midWords, highWords=highWords, mergeFunction=mergeFunction } = cardinal
+    toCardinal NumeralsAlgorithm { minusWord=_minusWord, oneWord=_oneWord, lowWords=_lowWords, midWords=_midWords, highWords=_highWords, mergeFunction=_mergeFunction } = cardinal
        where cardinal i
-                  | i < 0 = minusWord <> cons ' ' (go (-j))
+                  | i < 0 = _minusWord <> cons ' ' (go (-j))
                   | otherwise = go j
-                  where go = compressSegments oneWord mergeFunction . toSegments lowWords midWords highWords
+                  where go = compressSegments _oneWord _mergeFunction . toSegments _lowWords _midWords _highWords
                         j = fromIntegral i :: Integer
 
-    toOrdinal na@NumeralsAlgorithm { ordinize=ordinize } = ordinize . toCardinal na
+    toOrdinal na@NumeralsAlgorithm { ordinize=_ordinize } = _ordinize . toCardinal na
 
 
 _toNumberScale :: (Integral i, Integral j) => i -> (j, i)
@@ -80,6 +81,15 @@
 longScale :: Text -> Text -> FreeValueSplitter
 longScale suf1 = valueSplit . LongScale suf1
 
+-- | Construct a 'FreeValueSplitter' function for the given suffix for a /short scale/, the names are written in /title case/.
+shortScaleTitle :: Text -> FreeValueSplitter
+shortScaleTitle = valueSplit' toTitle . ShortScale
+
+-- | Construct a 'FreeValueSplitter' function for the given suffixes for a /long scale/, the names are written in /title case/.
+longScaleTitle :: Text -> Text -> FreeValueSplitter
+longScaleTitle suf1 = valueSplit' toTitle . LongScale suf1
+
+
 _highWithSuffix :: Text -> Int -> Maybe Text
 _highWithSuffix suf = fmap (<> suf) . (latinPrefixes !?)
 
@@ -90,15 +100,23 @@
     | otherwise = _highWithSuffix suf2 k
     where k = div j 2
 
+-- Generate a /value splitter/ for a 'HighNumberAlgorithm' but where the result
+-- is post-processed by a function.
+valueSplit'
+  :: (Text -> Text)  -- ^ The post-processing function.
+  -> HighNumberAlgorithm  -- ^ The 'HighNumberAlgorithm' that is used.
+  -> FreeValueSplitter  -- ^ The 'FreeValueSplitter' result.
+valueSplit' f vs i = (m,) . f <$> _highToText vs (j-2)
+    where ~(j, m) = _toNumberScale i
+
 instance ValueSplit HighNumberAlgorithm where
-    valueSplit vs i = (m,) <$> _highToText vs (j-2)
-        where ~(j, m) = _toNumberScale i
+    valueSplit = valueSplit' id
 
 -- | A /smart constructor/ for the 'NumeralsAlgorithm' type. This constructor
 -- allows one to use an arbitrary 'Foldable' type for the low words and mid
 -- words. It will also order the midwords accordingly.
 numeralsAlgorithm :: (Foldable f, Foldable g) => Text -> Text -> Text -> f Text -> g (Integer, Text) -> FreeValueSplitter -> FreeMergerFunction -> (Text -> Text) -> NumeralsAlgorithm
-numeralsAlgorithm minus zero one lowWords midWords = NumeralsAlgorithm minus one (fromList (zero : one : toList lowWords)) (sortOn (negate . fst) (toList midWords))
+numeralsAlgorithm minus zero one _lowWords _midWords = NumeralsAlgorithm minus one (fromList (zero : one : toList _lowWords)) (sortOn (negate . fst) (toList _midWords))
 
 _maybeSegment :: Integral i => (i -> NumberSegment i) -> i -> MNumberSegment i
 _maybeSegment f = go
diff --git a/src/Text/Numerals/Algorithm/Template.hs b/src/Text/Numerals/Algorithm/Template.hs
--- a/src/Text/Numerals/Algorithm/Template.hs
+++ b/src/Text/Numerals/Algorithm/Template.hs
@@ -16,14 +16,15 @@
   ) where
 
 import Data.Map.Strict(Map, elems, fromListWith)
-import Data.Text(isSuffixOf, pack, snoc)
+import Data.Text(Text, isSuffixOf, pack, snoc)
 
 import Text.Numerals.Internal(_replaceSuffix)
 
-import Language.Haskell.TH(Body(GuardedB), Clause(Clause), Dec(FunD), Exp(AppE, ConE, LitE, VarE), Guard(NormalG), Lit(CharL, IntegerL, StringL), Name, Pat(VarP), mkName)
+import Language.Haskell.TH(Body(GuardedB), Clause(Clause), Dec(FunD, SigD), Exp(AppE, ConE, LitE, VarE), Guard(NormalG), Lit(CharL, IntegerL, StringL), Name, Pat(VarP), Type(ConT, AppT, ArrowT), mkName)
 
 _getPrefix :: [Char] -> [Char] -> (Int, [Char])
 _getPrefix [] bs = (0, bs)
+_getPrefix as [] = (length as, [])
 _getPrefix aa@(a:as) ba@(b:bs)
      | a == b = _getPrefix as bs
      | otherwise = (length aa, ba)
@@ -59,7 +60,9 @@
   :: String  -- ^ The name of the function, often this is just @ordinize'@
   -> [(String, String)]  -- ^ The list of suffixes and their corresponding mapping, the suffixes should be non-overlapping.
   -> Name  -- ^ The name of the post-processing function in case there was no match, one can for example use 'id'.
-  -> Dec  -- ^ The corresponding declaration.
-ordinizeFromDict nm ts pp = FunD (mkName nm) [Clause [VarP t] (GuardedB (map _toGuard (elems (_ordinizeMap t' ts)) ++ [(NormalG (ConE 'True), AppE (VarE pp) t')])) []]
+  -> [Dec]  -- ^ The corresponding declaration.
+ordinizeFromDict nm ts pp = [SigD nnm (tText (tText ArrowT)), FunD nnm [Clause [VarP t] (GuardedB (map _toGuard (elems (_ordinizeMap t' ts)) ++ [(NormalG (ConE 'True), AppE (VarE pp) t')])) []]]
     where t = mkName "t"
           t' = VarE t
+          nnm = mkName nm
+          tText = (`AppT` ConT ''Text)
diff --git a/src/Text/Numerals/Internal.hs b/src/Text/Numerals/Internal.hs
--- a/src/Text/Numerals/Internal.hs
+++ b/src/Text/Numerals/Internal.hs
@@ -75,9 +75,9 @@
              | Just (q, e) <- go (i*i) = go' i q e
              | otherwise = Nothing
         go' i q e | q < i = Just (q, 2 * e)
-                  | m == 0 = Just (d, 2 * e + 1)
+                  | md == 0 = Just (d, 2 * e + 1)
                   | otherwise = Nothing
-            where (d, m) = divMod q i
+            where (d, md) = divMod q i
 
 _replaceSuffix :: Int -> Text -> Text -> Text
 _replaceSuffix n s = (<> s) . dropEnd n
diff --git a/src/Text/Numerals/Languages.hs b/src/Text/Numerals/Languages.hs
--- a/src/Text/Numerals/Languages.hs
+++ b/src/Text/Numerals/Languages.hs
@@ -9,9 +9,10 @@
 -}
 
 module Text.Numerals.Languages (
-    dutch, english, french
+    dutch, english, french, german
   ) where
 
 import Text.Numerals.Languages.Dutch(dutch)
 import Text.Numerals.Languages.English(english)
 import Text.Numerals.Languages.French(french)
+import Text.Numerals.Languages.German(german)
diff --git a/src/Text/Numerals/Languages/Dutch.hs b/src/Text/Numerals/Languages/Dutch.hs
--- a/src/Text/Numerals/Languages/Dutch.hs
+++ b/src/Text/Numerals/Languages/Dutch.hs
@@ -31,7 +31,7 @@
 import Text.Numerals.Class(valueSplit)
 import Text.Numerals.Internal(_million, _mergeWithSpace)
 
-$(pure [ordinizeFromDict "_ordinize'" [
+$(pure (ordinizeFromDict "_ordinize'" [
     ("nul", "nuld")
   , ("één", "eerst")
   , ("twee", "tweed")
@@ -50,7 +50,7 @@
   , ("end", "endst")
   , ("joen", "joenst")
   , ("rd", "rdst")
-  ] 'id])
+  ] 'id))
 
 -- | A function that converts a number in words in /cardinal/ form to /ordinal/
 -- form according to the /Dutch/ language rules.
diff --git a/src/Text/Numerals/Languages/English.hs b/src/Text/Numerals/Languages/English.hs
--- a/src/Text/Numerals/Languages/English.hs
+++ b/src/Text/Numerals/Languages/English.hs
@@ -39,7 +39,7 @@
 
 -- | A function that converts a number in words in /cardinal/ form to /ordinal/
 -- form according to the /English/ language rules.
-$(pure [ordinizeFromDict "ordinize'" [
+$(pure (ordinizeFromDict "ordinize'" [
     ("one", "first")
   , ("two", "second")
   , ("three", "third")
@@ -52,7 +52,7 @@
   , ("ten", "tenth")
   , ("eleven", "eleventh")
   , ("twelve", "twelfth")
-  ] '_ordinizepp])
+  ] '_ordinizepp))
 
 -- | A 'NumeralsAlgorithm' to convert numbers to words in the /English/ language.
 english :: NumeralsAlgorithm  -- ^ A 'NumeralsAlgorithm' that can be used to convert numbers to different formats.
diff --git a/src/Text/Numerals/Languages/French.hs b/src/Text/Numerals/Languages/French.hs
--- a/src/Text/Numerals/Languages/French.hs
+++ b/src/Text/Numerals/Languages/French.hs
@@ -24,7 +24,6 @@
   ) where
 
 import Data.Text(Text, isSuffixOf, snoc)
-import qualified Data.Text as T
 import Data.Vector(Vector)
 
 import Text.Numerals.Algorithm(HighNumberAlgorithm(LongScale), NumeralsAlgorithm, numeralsAlgorithm)
@@ -32,10 +31,10 @@
 import Text.Numerals.Class(FreeMergerFunction, valueSplit)
 import Text.Numerals.Internal(_divisable100, _mergeWith, _mergeWithSpace, _mergeWithHyphen, _million, _stripLastIf, _thousand)
 
-$(pure [ordinizeFromDict "_ordinize'" [
+$(pure (ordinizeFromDict "_ordinize'" [
     ("cinq", "cinqu")
   , ("neuf", "neuv")
-  ] 'id])
+  ] 'id))
 
 -- | A 'NumeralsAlgorithm' to convert numbers to words in the /French/ language.
 french :: NumeralsAlgorithm  -- ^ A 'NumeralsAlgorithm' that can be used to convert numbers to different formats.
diff --git a/src/Text/Numerals/Languages/German.hs b/src/Text/Numerals/Languages/German.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/Numerals/Languages/German.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE OverloadedLists, OverloadedStrings, QuasiQuotes, TemplateHaskell #-}
+
+{-|
+Module      : Text.Numerals.Languages.German
+Description : A module to convert numbers to words in the /German/ language.
+Maintainer  : hapytexeu+gh@gmail.com
+Stability   : experimental
+Portability : POSIX
+
+This module contains logic to convert numbers to words in the /German/ language.
+-}
+
+module Text.Numerals.Languages.German (
+    -- * Num to word algorithm
+    german
+    -- * Convert to ordinal
+  , ordinize'
+    -- * Constant words
+  , negativeWord', zeroWord', oneWord'
+    -- * Names for numbers
+  , lowWords', midWords', highWords'
+    -- * Merge function
+  , merge'
+  ) where
+
+import Data.Bool(bool)
+import Data.Text(Text, isSuffixOf, toLower, toTitle)
+import Data.Vector(Vector)
+
+import Text.Numerals.Algorithm(HighNumberAlgorithm(LongScale), NumeralsAlgorithm, numeralsAlgorithm, valueSplit')
+import Text.Numerals.Algorithm.Template(ordinizeFromDict)
+import Text.Numerals.Class(FreeMergerFunction)
+import Text.Numerals.Internal(_mergeWith, _mergeWithSpace, _million)
+import Text.RE.TDFA.Text(RE, SearchReplace, (*=~/), ed)
+
+$(pure (ordinizeFromDict "_ordinize'" [
+    ("eins", "ers")
+  , ("drei", "drit")
+  , ("acht", "ach")
+  , ("sieben", "sieb")
+  , ("ig", "igs")
+  , ("ert", "erts")
+  , ("end", "ends")
+  , ("ion", "ions")
+  , ("nen", "ns")
+  , ("rde", "rds")
+  , ("rden", "rds")
+  ] 'id))
+
+-- | A 'NumeralsAlgorithm' to convert numbers to words in the /German/ language.
+german :: NumeralsAlgorithm  -- ^ A 'NumeralsAlgorithm' that can be used to convert numbers to different formats.
+german = numeralsAlgorithm negativeWord' zeroWord' oneWord' lowWords' midWords' (valueSplit' toTitle highWords') merge' ordinize'
+
+-- | The words used to mark a negative number in the /German/ language.
+negativeWord' :: Text
+negativeWord' = "minus"
+
+-- | The word used for the number /zero/ in the /German/ language.
+zeroWord' :: Text
+zeroWord' = "null"
+
+-- | The word used for the number /one/ in the /German/ language.
+oneWord' :: Text
+oneWord' = "eins"
+
+-- | A 'Vector' that contains the word used for the numbers /two/ to /twenty/ in the /German/ language.
+lowWords' :: Vector Text
+lowWords' = [
+    "zwei"
+  , "drei"
+  , "vier"
+  , "fünf"
+  , "sechs"
+  , "sieben"
+  , "acht"
+  , "neun"
+  , "zehn"
+  , "elf"
+  , "zwölf"
+  , "dreizehn"
+  , "vierzehn"
+  , "fünfzehn"
+  , "sechzehn"
+  , "siebzehn"
+  , "achtzehn"
+  , "neunzehn"
+  , "zwanzig"
+  ]
+
+-- | A list of 2-tuples that contains the names of values between /thirty/ and
+-- /thousand/ in the /German/ language.
+midWords' :: [(Integer, Text)]
+midWords' = [
+    (1000, "tausend")
+  , (100, "hundert")
+  , (90, "neunzig")
+  , (80, "achtzig")
+  , (70, "siebzig")
+  , (60, "sechzig")
+  , (50, "fünfzig")
+  , (40, "vierzig")
+  , (30, "dreißig")
+  ]
+
+-- | A merge function that is used to combine the names of words together to
+-- larger words, according to the /German/ grammar rules.
+merge' :: FreeMergerFunction
+merge' 1 100 = const ("ein" <>)
+merge' 1 1000 = const ("ein" <>)
+merge' 1 r | r < _million = const id
+merge' 1 r = const (_merge' 1 r "eine")
+merge' l r = _merge' l r
+
+_pluralize :: Text -> Text
+_pluralize t
+    | "e" `isSuffixOf` t = t <> "n"
+    | otherwise = t <> "en"
+
+_merge' :: FreeMergerFunction
+_merge' l r
+    | r > l && r >= _million = (. bool id _pluralize (l > 1)) . _mergeWithSpace
+    | r > l = (<>)
+_merge' l 1 | 10 < l && l < 100 = const . ("einund" <> )
+_merge' l r
+    | r < 10 && 10 < l && l < 100 = flip (_mergeWith "und")
+    | l >= _million = _mergeWithSpace
+    | otherwise = (<>)
+
+_ordinalSuffixRe :: SearchReplace RE Text
+_ordinalSuffixRe = [ed|(eine)? ([a-z]+(illion|illiard)ste)$///${2}|]
+
+-- | A function that converts a number in words in /cardinal/ form to /ordinal/
+-- form according to the /German/ language rules.
+ordinize' :: Text -> Text
+ordinize' = postprocess . (<> "te") . _ordinize' . toLower
+    where postprocess "eintausendste" = "tausendste"
+          postprocess "einhundertste" = "hundertste"
+          postprocess t = t *=~/ _ordinalSuffixRe
+
+-- | An algorithm to obtain the names of /large/ numbers (one million or larger)
+-- in /German/. German uses a /long scale/ with the @illion@ and @illiard@
+-- suffixes.
+highWords' :: HighNumberAlgorithm
+highWords' =  LongScale "illion" "illiard"
diff --git a/src/Text/Numerals/Prefix.hs b/src/Text/Numerals/Prefix.hs
--- a/src/Text/Numerals/Prefix.hs
+++ b/src/Text/Numerals/Prefix.hs
@@ -37,11 +37,31 @@
   , "tredec"
   , "quattuordec"
   , "quindec"
-  , "sexdec"
-  , "septended"
+  , "sedec"
+  , "septendec"
   , "octodec"
-  , "novemdec"
+  , "novendec"
   , "vigint"
+  , "unvigint"
+  , "duovigint"
+  , "tresvigint"
+  , "quattuorvigint"
+  , "quinvigint"
+  , "sesvigint"
+  , "septemvigint"
+  , "octovigint"
+  , "novemvigint"
+  , "trigint"
+  , "untrigint"
+  , "duotrigint"
+  , "trestrigint"
+  , "quattuortrigint"
+  , "quintrigint"
+  , "sestrigint"
+  , "septentrigint"
+  , "octotrigint"
+  , "noventrigint"
+  , "quadragint"
   ]
 
 -- | The /Latin/ prefixes in a 'Vector' for /O(1)/ lookup.
diff --git a/test/Text/Numerals/Languages/DutchSpec.hs b/test/Text/Numerals/Languages/DutchSpec.hs
--- a/test/Text/Numerals/Languages/DutchSpec.hs
+++ b/test/Text/Numerals/Languages/DutchSpec.hs
@@ -314,6 +314,28 @@
   , (43566776258854844738105, "drieënveertig triljard vijfhonderdzesenzestig triljoen zevenhonderdzesenzeventig biljard tweehonderdachtenvijftig biljoen achthonderdvierenvijftig miljard achthonderdvierenveertig miljoen zevenhonderdachtendertigduizendhonderdvijf")
   , (70492524767089125814114, "zeventig triljard vierhonderdtweeënnegentig triljoen vijfhonderdvierentwintig biljard zevenhonderdzevenenzestig biljoen negenentachtig miljard honderdvijfentwintig miljoen achthonderdveertienduizendhonderdveertien")
   , (114059301025943970552219, "honderdveertien triljard negenenvijftig triljoen driehonderdéén biljard vijfentwintig biljoen negenhonderddrieënveertig miljard negenhonderdzeventig miljoen vijfhonderdtweeënvijftigduizendtweehonderdnegentien")
+  , (1000, "duizend")
+  , (10000, "tienduizend")
+  , (100000, "honderdduizend")
+  , (1000000, "een miljoen")
+  , (10000000, "tien miljoen")
+  , (100000000, "honderd miljoen")
+  , (1000000000, "een miljard")
+  , (10000000000, "tien miljard")
+  , (100000000000, "honderd miljard")
+  , (1000000000000, "een biljoen")
+  , (10000000000000, "tien biljoen")
+  , (100000000000000, "honderd biljoen")
+  , (1000000000000000, "een biljard")
+  , (10000000000000000, "tien biljard")
+  , (100000000000000000, "honderd biljard")
+  , (1000000000000000000, "een triljoen")
+  , (10000000000000000000, "tien triljoen")
+  , (100000000000000000000, "honderd triljoen")
+  , (1000000000000000000000, "een triljard")
+  , (10000000000000000000000, "tien triljard")
+  , (100000000000000000000000, "honderd triljard")
+  , (1000000000000000000000000, "een quadriljoen")
   ]
 
 ordinals :: [(Integer, Text)]
@@ -619,4 +641,26 @@
   , (43566776258854844738105, "drieënveertig triljard vijfhonderdzesenzestig triljoen zevenhonderdzesenzeventig biljard tweehonderdachtenvijftig biljoen achthonderdvierenvijftig miljard achthonderdvierenveertig miljoen zevenhonderdachtendertigduizendhonderdvijfde")
   , (70492524767089125814114, "zeventig triljard vierhonderdtweeënnegentig triljoen vijfhonderdvierentwintig biljard zevenhonderdzevenenzestig biljoen negenentachtig miljard honderdvijfentwintig miljoen achthonderdveertienduizendhonderdveertiende")
   , (114059301025943970552219, "honderdveertien triljard negenenvijftig triljoen driehonderdéén biljard vijfentwintig biljoen negenhonderddrieënveertig miljard negenhonderdzeventig miljoen vijfhonderdtweeënvijftigduizendtweehonderdnegentiende")
+  , (1000, "duizendste")
+  , (10000, "tienduizendste")
+  , (100000, "honderdduizendste")
+  , (1000000, "een miljoenste")
+  , (10000000, "tien miljoenste")
+  , (100000000, "honderd miljoenste")
+  , (1000000000, "een miljardste")
+  , (10000000000, "tien miljardste")
+  , (100000000000, "honderd miljardste")
+  , (1000000000000, "een biljoenste")
+  , (10000000000000, "tien biljoenste")
+  , (100000000000000, "honderd biljoenste")
+  , (1000000000000000, "een biljardste")
+  , (10000000000000000, "tien biljardste")
+  , (100000000000000000, "honderd biljardste")
+  , (1000000000000000000, "een triljoenste")
+  , (10000000000000000000, "tien triljoenste")
+  , (100000000000000000000, "honderd triljoenste")
+  , (1000000000000000000000, "een triljardste")
+  , (10000000000000000000000, "tien triljardste")
+  , (100000000000000000000000, "honderd triljardste")
+  , (1000000000000000000000000, "een quadriljoenste")
   ]
diff --git a/test/Text/Numerals/Languages/EnglishSpec.hs b/test/Text/Numerals/Languages/EnglishSpec.hs
--- a/test/Text/Numerals/Languages/EnglishSpec.hs
+++ b/test/Text/Numerals/Languages/EnglishSpec.hs
@@ -314,6 +314,28 @@
   , (43566776258854844738105, "forty-three sextillion, five hundred and sixty-six quintillion, seven hundred and seventy-six quadrillion, two hundred and fifty-eight trillion, eight hundred and fifty-four billion, eight hundred and forty-four million, seven hundred and thirty-eight thousand, one hundred and five")
   , (70492524767089125814114, "seventy sextillion, four hundred and ninety-two quintillion, five hundred and twenty-four quadrillion, seven hundred and sixty-seven trillion, eighty-nine billion, one hundred and twenty-five million, eight hundred and fourteen thousand, one hundred and fourteen")
   , (114059301025943970552219, "one hundred and fourteen sextillion, fifty-nine quintillion, three hundred and one quadrillion, twenty-five trillion, nine hundred and forty-three billion, nine hundred and seventy million, five hundred and fifty-two thousand, two hundred and nineteen")
+  , (1000, "one thousand")
+  , (10000, "ten thousand")
+  , (100000, "one hundred thousand")
+  , (1000000, "one million")
+  , (10000000, "ten million")
+  , (100000000, "one hundred million")
+  , (1000000000, "one billion")
+  , (10000000000, "ten billion")
+  , (100000000000, "one hundred billion")
+  , (1000000000000, "one trillion")
+  , (10000000000000, "ten trillion")
+  , (100000000000000, "one hundred trillion")
+  , (1000000000000000, "one quadrillion")
+  , (10000000000000000, "ten quadrillion")
+  , (100000000000000000, "one hundred quadrillion")
+  , (1000000000000000000, "one quintillion")
+  , (10000000000000000000, "ten quintillion")
+  , (100000000000000000000, "one hundred quintillion")
+  , (1000000000000000000000, "one sextillion")
+  , (10000000000000000000000, "ten sextillion")
+  , (100000000000000000000000, "one hundred sextillion")
+  , (1000000000000000000000000, "one septillion")
   ]
 
 ordinals :: [(Integer, Text)]
@@ -619,4 +641,26 @@
   , (43566776258854844738105, "forty-three sextillion, five hundred and sixty-six quintillion, seven hundred and seventy-six quadrillion, two hundred and fifty-eight trillion, eight hundred and fifty-four billion, eight hundred and forty-four million, seven hundred and thirty-eight thousand, one hundred and fifth")
   , (70492524767089125814114, "seventy sextillion, four hundred and ninety-two quintillion, five hundred and twenty-four quadrillion, seven hundred and sixty-seven trillion, eighty-nine billion, one hundred and twenty-five million, eight hundred and fourteen thousand, one hundred and fourteenth")
   , (114059301025943970552219, "one hundred and fourteen sextillion, fifty-nine quintillion, three hundred and one quadrillion, twenty-five trillion, nine hundred and forty-three billion, nine hundred and seventy million, five hundred and fifty-two thousand, two hundred and nineteenth")
+  , (1000, "one thousandth")
+  , (10000, "ten thousandth")
+  , (100000, "one hundred thousandth")
+  , (1000000, "one millionth")
+  , (10000000, "ten millionth")
+  , (100000000, "one hundred millionth")
+  , (1000000000, "one billionth")
+  , (10000000000, "ten billionth")
+  , (100000000000, "one hundred billionth")
+  , (1000000000000, "one trillionth")
+  , (10000000000000, "ten trillionth")
+  , (100000000000000, "one hundred trillionth")
+  , (1000000000000000, "one quadrillionth")
+  , (10000000000000000, "ten quadrillionth")
+  , (100000000000000000, "one hundred quadrillionth")
+  , (1000000000000000000, "one quintillionth")
+  , (10000000000000000000, "ten quintillionth")
+  , (100000000000000000000, "one hundred quintillionth")
+  , (1000000000000000000000, "one sextillionth")
+  , (10000000000000000000000, "ten sextillionth")
+  , (100000000000000000000000, "one hundred sextillionth")
+  , (1000000000000000000000000, "one septillionth")
   ]
diff --git a/test/Text/Numerals/Languages/FrenchSpec.hs b/test/Text/Numerals/Languages/FrenchSpec.hs
--- a/test/Text/Numerals/Languages/FrenchSpec.hs
+++ b/test/Text/Numerals/Languages/FrenchSpec.hs
@@ -314,6 +314,28 @@
   , (43566776258854844738105, "quarante-trois trilliards cinq cent soixante-six trillions sept cent soixante-seize billiards deux cent cinquante-huit billions huit cent cinquante-quatre milliards huit cent quarante-quatre millions sept cent trente-huit mille cent cinq")
   , (70492524767089125814114, "soixante-dix trilliards quatre cent quatre-vingt-douze trillions cinq cent vingt-quatre billiards sept cent soixante-sept billions quatre-vingt-neuf milliards cent vingt-cinq millions huit cent quatorze mille cent quatorze")
   , (114059301025943970552219, "cent quatorze trilliards cinquante-neuf trillions trois cent un billiards vingt-cinq billions neuf cent quarante-trois milliards neuf cent soixante-dix millions cinq cent cinquante-deux mille deux cent dix-neuf")
+  , (1000, "mille")
+  , (10000, "dix mille")
+  , (100000, "cent mille")
+  , (1000000, "un million")
+  , (10000000, "dix millions")
+  , (100000000, "cent millions")
+  , (1000000000, "un milliard")
+  , (10000000000, "dix milliards")
+  , (100000000000, "cent milliards")
+  , (1000000000000, "un billion")
+  , (10000000000000, "dix billions")
+  , (100000000000000, "cent billions")
+  , (1000000000000000, "un billiard")
+  , (10000000000000000, "dix billiards")
+  , (100000000000000000, "cent billiards")
+  , (1000000000000000000, "un trillion")
+  , (10000000000000000000, "dix trillions")
+  , (100000000000000000000, "cent trillions")
+  , (1000000000000000000000, "un trilliard")
+  , (10000000000000000000000, "dix trilliards")
+  , (100000000000000000000000, "cent trilliards")
+  , (1000000000000000000000000, "un quadrillion")
   ]
 
 ordinals :: [(Integer, Text)]
@@ -619,4 +641,26 @@
   , (43566776258854844738105, "quarante-trois trilliards cinq cent soixante-six trillions sept cent soixante-seize billiards deux cent cinquante-huit billions huit cent cinquante-quatre milliards huit cent quarante-quatre millions sept cent trente-huit mille cent cinquième")
   , (70492524767089125814114, "soixante-dix trilliards quatre cent quatre-vingt-douze trillions cinq cent vingt-quatre billiards sept cent soixante-sept billions quatre-vingt-neuf milliards cent vingt-cinq millions huit cent quatorze mille cent quatorzième")
   , (114059301025943970552219, "cent quatorze trilliards cinquante-neuf trillions trois cent un billiards vingt-cinq billions neuf cent quarante-trois milliards neuf cent soixante-dix millions cinq cent cinquante-deux mille deux cent dix-neuvième")
+  , (1000, "millième")
+  , (10000, "dix millième")
+  , (100000, "cent millième")
+  , (1000000, "un millionième")
+  , (10000000, "dix millionsième")
+  , (100000000, "cent millionsième")
+  , (1000000000, "un milliardième")
+  , (10000000000, "dix milliardsième")
+  , (100000000000, "cent milliardsième")
+  , (1000000000000, "un billionième")
+  , (10000000000000, "dix billionsième")
+  , (100000000000000, "cent billionsième")
+  , (1000000000000000, "un billiardième")
+  , (10000000000000000, "dix billiardsième")
+  , (100000000000000000, "cent billiardsième")
+  , (1000000000000000000, "un trillionième")
+  , (10000000000000000000, "dix trillionsième")
+  , (100000000000000000000, "cent trillionsième")
+  , (1000000000000000000000, "un trilliardième")
+  , (10000000000000000000000, "dix trilliardsième")
+  , (100000000000000000000000, "cent trilliardsième")
+  , (1000000000000000000000000, "un quadrillionième")
   ]
diff --git a/test/Text/Numerals/Languages/GermanSpec.hs b/test/Text/Numerals/Languages/GermanSpec.hs
new file mode 100644
--- /dev/null
+++ b/test/Text/Numerals/Languages/GermanSpec.hs
@@ -0,0 +1,666 @@
+module Text.Numerals.Languages.GermanSpec (
+    spec
+  ) where
+
+import Data.Text(Text)
+
+import Test.Hspec(Spec)
+import Text.Numerals.Languages.German(german)
+import Text.Numerals.LanguageTest(testLanguage)
+
+spec :: Spec
+spec = testLanguage "German" german cardinals ordinals
+
+cardinals :: [(Integer, Text)]
+cardinals = [
+    (0, "null")
+  , (1, "eins")
+  , (2, "zwei")
+  , (3, "drei")
+  , (4, "vier")
+  , (5, "fünf")
+  , (6, "sechs")
+  , (7, "sieben")
+  , (8, "acht")
+  , (9, "neun")
+  , (10, "zehn")
+  , (11, "elf")
+  , (12, "zwölf")
+  , (13, "dreizehn")
+  , (14, "vierzehn")
+  , (15, "fünfzehn")
+  , (16, "sechzehn")
+  , (17, "siebzehn")
+  , (18, "achtzehn")
+  , (19, "neunzehn")
+  , (20, "zwanzig")
+  , (21, "einundzwanzig")
+  , (22, "zweiundzwanzig")
+  , (23, "dreiundzwanzig")
+  , (24, "vierundzwanzig")
+  , (25, "fünfundzwanzig")
+  , (26, "sechsundzwanzig")
+  , (27, "siebenundzwanzig")
+  , (28, "achtundzwanzig")
+  , (29, "neunundzwanzig")
+  , (30, "dreißig")
+  , (31, "einunddreißig")
+  , (32, "zweiunddreißig")
+  , (33, "dreiunddreißig")
+  , (34, "vierunddreißig")
+  , (35, "fünfunddreißig")
+  , (36, "sechsunddreißig")
+  , (37, "siebenunddreißig")
+  , (38, "achtunddreißig")
+  , (39, "neununddreißig")
+  , (40, "vierzig")
+  , (41, "einundvierzig")
+  , (42, "zweiundvierzig")
+  , (43, "dreiundvierzig")
+  , (44, "vierundvierzig")
+  , (45, "fünfundvierzig")
+  , (46, "sechsundvierzig")
+  , (47, "siebenundvierzig")
+  , (48, "achtundvierzig")
+  , (49, "neunundvierzig")
+  , (50, "fünfzig")
+  , (51, "einundfünfzig")
+  , (52, "zweiundfünfzig")
+  , (53, "dreiundfünfzig")
+  , (54, "vierundfünfzig")
+  , (55, "fünfundfünfzig")
+  , (56, "sechsundfünfzig")
+  , (57, "siebenundfünfzig")
+  , (58, "achtundfünfzig")
+  , (59, "neunundfünfzig")
+  , (60, "sechzig")
+  , (61, "einundsechzig")
+  , (62, "zweiundsechzig")
+  , (63, "dreiundsechzig")
+  , (64, "vierundsechzig")
+  , (65, "fünfundsechzig")
+  , (66, "sechsundsechzig")
+  , (67, "siebenundsechzig")
+  , (68, "achtundsechzig")
+  , (69, "neunundsechzig")
+  , (70, "siebzig")
+  , (71, "einundsiebzig")
+  , (72, "zweiundsiebzig")
+  , (73, "dreiundsiebzig")
+  , (74, "vierundsiebzig")
+  , (75, "fünfundsiebzig")
+  , (76, "sechsundsiebzig")
+  , (77, "siebenundsiebzig")
+  , (78, "achtundsiebzig")
+  , (79, "neunundsiebzig")
+  , (80, "achtzig")
+  , (81, "einundachtzig")
+  , (82, "zweiundachtzig")
+  , (83, "dreiundachtzig")
+  , (84, "vierundachtzig")
+  , (85, "fünfundachtzig")
+  , (86, "sechsundachtzig")
+  , (87, "siebenundachtzig")
+  , (88, "achtundachtzig")
+  , (89, "neunundachtzig")
+  , (90, "neunzig")
+  , (91, "einundneunzig")
+  , (92, "zweiundneunzig")
+  , (93, "dreiundneunzig")
+  , (94, "vierundneunzig")
+  , (95, "fünfundneunzig")
+  , (96, "sechsundneunzig")
+  , (97, "siebenundneunzig")
+  , (98, "achtundneunzig")
+  , (99, "neunundneunzig")
+  , (100, "einhundert")
+  , (101, "einhunderteins")
+  , (102, "einhundertzwei")
+  , (103, "einhundertdrei")
+  , (104, "einhundertvier")
+  , (105, "einhundertfünf")
+  , (106, "einhundertsechs")
+  , (107, "einhundertsieben")
+  , (108, "einhundertacht")
+  , (109, "einhundertneun")
+  , (110, "einhundertzehn")
+  , (111, "einhundertelf")
+  , (112, "einhundertzwölf")
+  , (113, "einhundertdreizehn")
+  , (114, "einhundertvierzehn")
+  , (115, "einhundertfünfzehn")
+  , (116, "einhundertsechzehn")
+  , (117, "einhundertsiebzehn")
+  , (118, "einhundertachtzehn")
+  , (119, "einhundertneunzehn")
+  , (120, "einhundertzwanzig")
+  , (121, "einhunderteinundzwanzig")
+  , (122, "einhundertzweiundzwanzig")
+  , (123, "einhundertdreiundzwanzig")
+  , (124, "einhundertvierundzwanzig")
+  , (125, "einhundertfünfundzwanzig")
+  , (126, "einhundertsechsundzwanzig")
+  , (127, "einhundertsiebenundzwanzig")
+  , (128, "einhundertachtundzwanzig")
+  , (129, "einhundertneunundzwanzig")
+  , (130, "einhundertdreißig")
+  , (131, "einhunderteinunddreißig")
+  , (132, "einhundertzweiunddreißig")
+  , (133, "einhundertdreiunddreißig")
+  , (134, "einhundertvierunddreißig")
+  , (135, "einhundertfünfunddreißig")
+  , (136, "einhundertsechsunddreißig")
+  , (137, "einhundertsiebenunddreißig")
+  , (138, "einhundertachtunddreißig")
+  , (139, "einhundertneununddreißig")
+  , (140, "einhundertvierzig")
+  , (141, "einhunderteinundvierzig")
+  , (142, "einhundertzweiundvierzig")
+  , (143, "einhundertdreiundvierzig")
+  , (144, "einhundertvierundvierzig")
+  , (145, "einhundertfünfundvierzig")
+  , (146, "einhundertsechsundvierzig")
+  , (147, "einhundertsiebenundvierzig")
+  , (148, "einhundertachtundvierzig")
+  , (149, "einhundertneunundvierzig")
+  , (150, "einhundertfünfzig")
+  , (151, "einhunderteinundfünfzig")
+  , (152, "einhundertzweiundfünfzig")
+  , (153, "einhundertdreiundfünfzig")
+  , (154, "einhundertvierundfünfzig")
+  , (155, "einhundertfünfundfünfzig")
+  , (156, "einhundertsechsundfünfzig")
+  , (157, "einhundertsiebenundfünfzig")
+  , (158, "einhundertachtundfünfzig")
+  , (159, "einhundertneunundfünfzig")
+  , (160, "einhundertsechzig")
+  , (161, "einhunderteinundsechzig")
+  , (162, "einhundertzweiundsechzig")
+  , (163, "einhundertdreiundsechzig")
+  , (164, "einhundertvierundsechzig")
+  , (165, "einhundertfünfundsechzig")
+  , (166, "einhundertsechsundsechzig")
+  , (167, "einhundertsiebenundsechzig")
+  , (168, "einhundertachtundsechzig")
+  , (169, "einhundertneunundsechzig")
+  , (170, "einhundertsiebzig")
+  , (171, "einhunderteinundsiebzig")
+  , (172, "einhundertzweiundsiebzig")
+  , (173, "einhundertdreiundsiebzig")
+  , (174, "einhundertvierundsiebzig")
+  , (175, "einhundertfünfundsiebzig")
+  , (176, "einhundertsechsundsiebzig")
+  , (177, "einhundertsiebenundsiebzig")
+  , (178, "einhundertachtundsiebzig")
+  , (179, "einhundertneunundsiebzig")
+  , (180, "einhundertachtzig")
+  , (181, "einhunderteinundachtzig")
+  , (182, "einhundertzweiundachtzig")
+  , (183, "einhundertdreiundachtzig")
+  , (184, "einhundertvierundachtzig")
+  , (185, "einhundertfünfundachtzig")
+  , (186, "einhundertsechsundachtzig")
+  , (187, "einhundertsiebenundachtzig")
+  , (188, "einhundertachtundachtzig")
+  , (189, "einhundertneunundachtzig")
+  , (190, "einhundertneunzig")
+  , (191, "einhunderteinundneunzig")
+  , (192, "einhundertzweiundneunzig")
+  , (193, "einhundertdreiundneunzig")
+  , (194, "einhundertvierundneunzig")
+  , (195, "einhundertfünfundneunzig")
+  , (196, "einhundertsechsundneunzig")
+  , (197, "einhundertsiebenundneunzig")
+  , (198, "einhundertachtundneunzig")
+  , (199, "einhundertneunundneunzig")
+  , (200, "zweihundert")
+  , (233, "zweihundertdreiunddreißig")
+  , (377, "dreihundertsiebenundsiebzig")
+  , (610, "sechshundertzehn")
+  , (987, "neunhundertsiebenundachtzig")
+  , (1597, "eintausendfünfhundertsiebenundneunzig")
+  , (2584, "zweitausendfünfhundertvierundachtzig")
+  , (4181, "viertausendeinhunderteinundachtzig")
+  , (6765, "sechstausendsiebenhundertfünfundsechzig")
+  , (10946, "zehntausendneunhundertsechsundvierzig")
+  , (17711, "siebzehntausendsiebenhundertelf")
+  , (28657, "achtundzwanzigtausendsechshundertsiebenundfünfzig")
+  , (46368, "sechsundvierzigtausenddreihundertachtundsechzig")
+  , (75025, "fünfundsiebzigtausendfünfundzwanzig")
+  , (121393, "einhunderteinundzwanzigtausenddreihundertdreiundneunzig")
+  , (196418, "einhundertsechsundneunzigtausendvierhundertachtzehn")
+  , (317811, "dreihundertsiebzehntausendachthundertelf")
+  , (514229, "fünfhundertvierzehntausendzweihundertneunundzwanzig")
+  , (832040, "achthundertzweiunddreißigtausendvierzig")
+  , (1346269, "eine Million dreihundertsechsundvierzigtausendzweihundertneunundsechzig")
+  , (2178309, "zwei Millionen einhundertachtundsiebzigtausenddreihundertneun")
+  , (3524578, "drei Millionen fünfhundertvierundzwanzigtausendfünfhundertachtundsiebzig")
+  , (5702887, "fünf Millionen siebenhundertzweitausendachthundertsiebenundachtzig")
+  , (9227465, "neun Millionen zweihundertsiebenundzwanzigtausendvierhundertfünfundsechzig")
+  , (14930352, "vierzehn Millionen neunhundertdreißigtausenddreihundertzweiundfünfzig")
+  , (24157817, "vierundzwanzig Millionen einhundertsiebenundfünfzigtausendachthundertsiebzehn")
+  , (39088169, "neununddreißig Millionen achtundachtzigtausendeinhundertneunundsechzig")
+  , (63245986, "dreiundsechzig Millionen zweihundertfünfundvierzigtausendneunhundertsechsundachtzig")
+  , (102334155, "einhundertzwei Millionen dreihundertvierunddreißigtausendeinhundertfünfundfünfzig")
+  , (165580141, "einhundertfünfundsechzig Millionen fünfhundertachtzigtausendeinhunderteinundvierzig")
+  , (267914296, "zweihundertsiebenundsechzig Millionen neunhundertvierzehntausendzweihundertsechsundneunzig")
+  , (433494437, "vierhundertdreiunddreißig Millionen vierhundertvierundneunzigtausendvierhundertsiebenunddreißig")
+  , (701408733, "siebenhunderteins Millionen vierhundertachttausendsiebenhundertdreiunddreißig")
+  , (1134903170, "eine Milliard einhundertvierunddreißig Millionen neunhundertdreitausendeinhundertsiebzig")
+  , (1836311903, "eine Milliard achthundertsechsunddreißig Millionen dreihundertelftausendneunhundertdrei")
+  , (2971215073, "zwei Milliarden neunhunderteinundsiebzig Millionen zweihundertfünfzehntausenddreiundsiebzig")
+  , (4807526976, "vier Milliarden achthundertsieben Millionen fünfhundertsechsundzwanzigtausendneunhundertsechsundsiebzig")
+  , (7778742049, "sieben Milliarden siebenhundertachtundsiebzig Millionen siebenhundertzweiundvierzigtausendneunundvierzig")
+  , (12586269025, "zwölf Milliarden fünfhundertsechsundachtzig Millionen zweihundertneunundsechzigtausendfünfundzwanzig")
+  , (20365011074, "zwanzig Milliarden dreihundertfünfundsechzig Millionen elftausendvierundsiebzig")
+  , (32951280099, "zweiunddreißig Milliarden neunhunderteinundfünfzig Millionen zweihundertachtzigtausendneunundneunzig")
+  , (53316291173, "dreiundfünfzig Milliarden dreihundertsechzehn Millionen zweihunderteinundneunzigtausendeinhundertdreiundsiebzig")
+  , (86267571272, "sechsundachtzig Milliarden zweihundertsiebenundsechzig Millionen fünfhunderteinundsiebzigtausendzweihundertzweiundsiebzig")
+  , (139583862445, "einhundertneununddreißig Milliarden fünfhundertdreiundachtzig Millionen achthundertzweiundsechzigtausendvierhundertfünfundvierzig")
+  , (225851433717, "zweihundertfünfundzwanzig Milliarden achthunderteinundfünfzig Millionen vierhundertdreiunddreißigtausendsiebenhundertsiebzehn")
+  , (365435296162, "dreihundertfünfundsechzig Milliarden vierhundertfünfunddreißig Millionen zweihundertsechsundneunzigtausendeinhundertzweiundsechzig")
+  , (591286729879, "fünfhunderteinundneunzig Milliarden zweihundertsechsundachtzig Millionen siebenhundertneunundzwanzigtausendachthundertneunundsiebzig")
+  , (956722026041, "neunhundertsechsundfünfzig Milliarden siebenhundertzweiundzwanzig Millionen sechsundzwanzigtausendeinundvierzig")
+  , (1548008755920, "eine Billion fünfhundertachtundvierzig Milliarden acht Millionen siebenhundertfünfundfünfzigtausendneunhundertzwanzig")
+  , (2504730781961, "zwei Billionen fünfhundertvier Milliarden siebenhundertdreißig Millionen siebenhunderteinundachtzigtausendneunhunderteinundsechzig")
+  , (4052739537881, "vier Billionen zweiundfünfzig Milliarden siebenhundertneununddreißig Millionen fünfhundertsiebenunddreißigtausendachthunderteinundachtzig")
+  , (6557470319842, "sechs Billionen fünfhundertsiebenundfünfzig Milliarden vierhundertsiebzig Millionen dreihundertneunzehntausendachthundertzweiundvierzig")
+  , (10610209857723, "zehn Billionen sechshundertzehn Milliarden zweihundertneun Millionen achthundertsiebenundfünfzigtausendsiebenhundertdreiundzwanzig")
+  , (17167680177565, "siebzehn Billionen einhundertsiebenundsechzig Milliarden sechshundertachtzig Millionen einhundertsiebenundsiebzigtausendfünfhundertfünfundsechzig")
+  , (27777890035288, "siebenundzwanzig Billionen siebenhundertsiebenundsiebzig Milliarden achthundertneunzig Millionen fünfunddreißigtausendzweihundertachtundachtzig")
+  , (44945570212853, "vierundvierzig Billionen neunhundertfünfundvierzig Milliarden fünfhundertsiebzig Millionen zweihundertzwölftausendachthundertdreiundfünfzig")
+  , (72723460248141, "zweiundsiebzig Billionen siebenhundertdreiundzwanzig Milliarden vierhundertsechzig Millionen zweihundertachtundvierzigtausendeinhunderteinundvierzig")
+  , (117669030460994, "einhundertsiebzehn Billionen sechshundertneunundsechzig Milliarden dreißig Millionen vierhundertsechzigtausendneunhundertvierundneunzig")
+  , (190392490709135, "einhundertneunzig Billionen dreihundertzweiundneunzig Milliarden vierhundertneunzig Millionen siebenhundertneuntausendeinhundertfünfunddreißig")
+  , (308061521170129, "dreihundertacht Billionen einundsechzig Milliarden fünfhunderteinundzwanzig Millionen einhundertsiebzigtausendeinhundertneunundzwanzig")
+  , (498454011879264, "vierhundertachtundneunzig Billionen vierhundertvierundfünfzig Milliarden elf Millionen achthundertneunundsiebzigtausendzweihundertvierundsechzig")
+  , (806515533049393, "achthundertsechs Billionen fünfhundertfünfzehn Milliarden fünfhundertdreiunddreißig Millionen neunundvierzigtausenddreihundertdreiundneunzig")
+  , (1304969544928657, "eine Billiard dreihundertvier Billionen neunhundertneunundsechzig Milliarden fünfhundertvierundvierzig Millionen neunhundertachtundzwanzigtausendsechshundertsiebenundfünfzig")
+  , (2111485077978050, "zwei Billiarden einhundertelf Billionen vierhundertfünfundachtzig Milliarden siebenundsiebzig Millionen neunhundertachtundsiebzigtausendfünfzig")
+  , (3416454622906707, "drei Billiarden vierhundertsechzehn Billionen vierhundertvierundfünfzig Milliarden sechshundertzweiundzwanzig Millionen neunhundertsechstausendsiebenhundertsieben")
+  , (5527939700884757, "fünf Billiarden fünfhundertsiebenundzwanzig Billionen neunhundertneununddreißig Milliarden siebenhundert Millionen achthundertvierundachtzigtausendsiebenhundertsiebenundfünfzig")
+  , (8944394323791464, "acht Billiarden neunhundertvierundvierzig Billionen dreihundertvierundneunzig Milliarden dreihundertdreiundzwanzig Millionen siebenhunderteinundneunzigtausendvierhundertvierundsechzig")
+  , (14472334024676221, "vierzehn Billiarden vierhundertzweiundsiebzig Billionen dreihundertvierunddreißig Milliarden vierundzwanzig Millionen sechshundertsechsundsiebzigtausendzweihunderteinundzwanzig")
+  , (23416728348467685, "dreiundzwanzig Billiarden vierhundertsechzehn Billionen siebenhundertachtundzwanzig Milliarden dreihundertachtundvierzig Millionen vierhundertsiebenundsechzigtausendsechshundertfünfundachtzig")
+  , (37889062373143906, "siebenunddreißig Billiarden achthundertneunundachtzig Billionen zweiundsechzig Milliarden dreihundertdreiundsiebzig Millionen einhundertdreiundvierzigtausendneunhundertsechs")
+  , (61305790721611591, "einundsechzig Billiarden dreihundertfünf Billionen siebenhundertneunzig Milliarden siebenhunderteinundzwanzig Millionen sechshundertelftausendfünfhunderteinundneunzig")
+  , (99194853094755497, "neunundneunzig Billiarden einhundertvierundneunzig Billionen achthundertdreiundfünfzig Milliarden vierundneunzig Millionen siebenhundertfünfundfünfzigtausendvierhundertsiebenundneunzig")
+  , (160500643816367088, "einhundertsechzig Billiarden fünfhundert Billionen sechshundertdreiundvierzig Milliarden achthundertsechzehn Millionen dreihundertsiebenundsechzigtausendachtundachtzig")
+  , (259695496911122585, "zweihundertneunundfünfzig Billiarden sechshundertfünfundneunzig Billionen vierhundertsechsundneunzig Milliarden neunhundertelf Millionen einhundertzweiundzwanzigtausendfünfhundertfünfundachtzig")
+  , (420196140727489673, "vierhundertzwanzig Billiarden einhundertsechsundneunzig Billionen einhundertvierzig Milliarden siebenhundertsiebenundzwanzig Millionen vierhundertneunundachtzigtausendsechshundertdreiundsiebzig")
+  , (679891637638612258, "sechshundertneunundsiebzig Billiarden achthunderteinundneunzig Billionen sechshundertsiebenunddreißig Milliarden sechshundertachtunddreißig Millionen sechshundertzwölftausendzweihundertachtundfünfzig")
+  , (1100087778366101931, "eine Trillion einhundert Billiarden siebenundachtzig Billionen siebenhundertachtundsiebzig Milliarden dreihundertsechsundsechzig Millionen einhunderteinstausendneunhunderteinunddreißig")
+  , (1779979416004714189, "eine Trillion siebenhundertneunundsiebzig Billiarden neunhundertneunundsiebzig Billionen vierhundertsechzehn Milliarden vier Millionen siebenhundertvierzehntausendeinhundertneunundachtzig")
+  , (2880067194370816120, "zwei Trillionen achthundertachtzig Billiarden siebenundsechzig Billionen einhundertvierundneunzig Milliarden dreihundertsiebzig Millionen achthundertsechzehntausendeinhundertzwanzig")
+  , (4660046610375530309, "vier Trillionen sechshundertsechzig Billiarden sechsundvierzig Billionen sechshundertzehn Milliarden dreihundertfünfundsiebzig Millionen fünfhundertdreißigtausenddreihundertneun")
+  , (7540113804746346429, "sieben Trillionen fünfhundertvierzig Billiarden einhundertdreizehn Billionen achthundertvier Milliarden siebenhundertsechsundvierzig Millionen dreihundertsechsundvierzigtausendvierhundertneunundzwanzig")
+  , (12200160415121876738, "zwölf Trillionen zweihundert Billiarden einhundertsechzig Billionen vierhundertfünfzehn Milliarden einhunderteinundzwanzig Millionen achthundertsechsundsiebzigtausendsiebenhundertachtunddreißig")
+  , (19740274219868223167, "neunzehn Trillionen siebenhundertvierzig Billiarden zweihundertvierundsiebzig Billionen zweihundertneunzehn Milliarden achthundertachtundsechzig Millionen zweihundertdreiundzwanzigtausendeinhundertsiebenundsechzig")
+  , (31940434634990099905, "einunddreißig Trillionen neunhundertvierzig Billiarden vierhundertvierunddreißig Billionen sechshundertvierunddreißig Milliarden neunhundertneunzig Millionen neunundneunzigtausendneunhundertfünf")
+  , (51680708854858323072, "einundfünfzig Trillionen sechshundertachtzig Billiarden siebenhundertacht Billionen achthundertvierundfünfzig Milliarden achthundertachtundfünfzig Millionen dreihundertdreiundzwanzigtausendzweiundsiebzig")
+  , (83621143489848422977, "dreiundachtzig Trillionen sechshunderteinundzwanzig Billiarden einhundertdreiundvierzig Billionen vierhundertneunundachtzig Milliarden achthundertachtundvierzig Millionen vierhundertzweiundzwanzigtausendneunhundertsiebenundsiebzig")
+  , (135301852344706746049, "einhundertfünfunddreißig Trillionen dreihunderteins Billiarden achthundertzweiundfünfzig Billionen dreihundertvierundvierzig Milliarden siebenhundertsechs Millionen siebenhundertsechsundvierzigtausendneunundvierzig")
+  , (218922995834555169026, "zweihundertachtzehn Trillionen neunhundertzweiundzwanzig Billiarden neunhundertfünfundneunzig Billionen achthundertvierunddreißig Milliarden fünfhundertfünfundfünfzig Millionen einhundertneunundsechzigtausendsechsundzwanzig")
+  , (354224848179261915075, "dreihundertvierundfünfzig Trillionen zweihundertvierundzwanzig Billiarden achthundertachtundvierzig Billionen einhundertneunundsiebzig Milliarden zweihunderteinundsechzig Millionen neunhundertfünfzehntausendfünfundsiebzig")
+  , (573147844013817084101, "fünfhundertdreiundsiebzig Trillionen einhundertsiebenundvierzig Billiarden achthundertvierundvierzig Billionen dreizehn Milliarden achthundertsiebzehn Millionen vierundachtzigtausendeinhunderteins")
+  , (927372692193078999176, "neunhundertsiebenundzwanzig Trillionen dreihundertzweiundsiebzig Billiarden sechshundertzweiundneunzig Billionen einhundertdreiundneunzig Milliarden achtundsiebzig Millionen neunhundertneunundneunzigtausendeinhundertsechsundsiebzig")
+  , (1500520536206896083277, "eine Trilliard fünfhundert Trillionen fünfhundertzwanzig Billiarden fünfhundertsechsunddreißig Billionen zweihundertsechs Milliarden achthundertsechsundneunzig Millionen dreiundachtzigtausendzweihundertsiebenundsiebzig")
+  , (2427893228399975082453, "zwei Trilliarden vierhundertsiebenundzwanzig Trillionen achthundertdreiundneunzig Billiarden zweihundertachtundzwanzig Billionen dreihundertneunundneunzig Milliarden neunhundertfünfundsiebzig Millionen zweiundachtzigtausendvierhundertdreiundfünfzig")
+  , (3928413764606871165730, "drei Trilliarden neunhundertachtundzwanzig Trillionen vierhundertdreizehn Billiarden siebenhundertvierundsechzig Billionen sechshundertsechs Milliarden achthunderteinundsiebzig Millionen einhundertfünfundsechzigtausendsiebenhundertdreißig")
+  , (6356306993006846248183, "sechs Trilliarden dreihundertsechsundfünfzig Trillionen dreihundertsechs Billiarden neunhundertdreiundneunzig Billionen sechs Milliarden achthundertsechsundvierzig Millionen zweihundertachtundvierzigtausendeinhundertdreiundachtzig")
+  , (10284720757613717413913, "zehn Trilliarden zweihundertvierundachtzig Trillionen siebenhundertzwanzig Billiarden siebenhundertsiebenundfünfzig Billionen sechshundertdreizehn Milliarden siebenhundertsiebzehn Millionen vierhundertdreizehntausendneunhundertdreizehn")
+  , (16641027750620563662096, "sechzehn Trilliarden sechshunderteinundvierzig Trillionen siebenundzwanzig Billiarden siebenhundertfünfzig Billionen sechshundertzwanzig Milliarden fünfhundertdreiundsechzig Millionen sechshundertzweiundsechzigtausendsechsundneunzig")
+  , (26925748508234281076009, "sechsundzwanzig Trilliarden neunhundertfünfundzwanzig Trillionen siebenhundertachtundvierzig Billiarden fünfhundertacht Billionen zweihundertvierunddreißig Milliarden zweihunderteinundachtzig Millionen sechsundsiebzigtausendneun")
+  , (43566776258854844738105, "dreiundvierzig Trilliarden fünfhundertsechsundsechzig Trillionen siebenhundertsechsundsiebzig Billiarden zweihundertachtundfünfzig Billionen achthundertvierundfünfzig Milliarden achthundertvierundvierzig Millionen siebenhundertachtunddreißigtausendeinhundertfünf")
+  , (70492524767089125814114, "siebzig Trilliarden vierhundertzweiundneunzig Trillionen fünfhundertvierundzwanzig Billiarden siebenhundertsiebenundsechzig Billionen neunundachtzig Milliarden einhundertfünfundzwanzig Millionen achthundertvierzehntausendeinhundertvierzehn")
+  , (114059301025943970552219, "einhundertvierzehn Trilliarden neunundfünfzig Trillionen dreihunderteins Billiarden fünfundzwanzig Billionen neunhundertdreiundvierzig Milliarden neunhundertsiebzig Millionen fünfhundertzweiundfünfzigtausendzweihundertneunzehn")
+  , (1000, "eintausend")
+  , (10000, "zehntausend")
+  , (100000, "einhunderttausend")
+  , (1000000, "eine Million")
+  , (10000000, "zehn Millionen")
+  , (100000000, "einhundert Millionen")
+  , (1000000000, "eine Milliard")
+  , (10000000000, "zehn Milliarden")
+  , (100000000000, "einhundert Milliarden")
+  , (1000000000000, "eine Billion")
+  , (10000000000000, "zehn Billionen")
+  , (100000000000000, "einhundert Billionen")
+  , (1000000000000000, "eine Billiard")
+  , (10000000000000000, "zehn Billiarden")
+  , (100000000000000000, "einhundert Billiarden")
+  , (1000000000000000000, "eine Trillion")
+  , (10000000000000000000, "zehn Trillionen")
+  , (100000000000000000000, "einhundert Trillionen")
+  , (1000000000000000000000, "eine Trilliard")
+  , (10000000000000000000000, "zehn Trilliarden")
+  , (100000000000000000000000, "einhundert Trilliarden")
+  , (1000000000000000000000000, "eine Quadrillion")
+  ]
+
+ordinals :: [(Integer, Text)]
+ordinals = [
+    (0, "nullte")
+  , (1, "erste")
+  , (2, "zweite")
+  , (3, "dritte")
+  , (4, "vierte")
+  , (5, "fünfte")
+  , (6, "sechste")
+  , (7, "siebte")
+  , (8, "achte")
+  , (9, "neunte")
+  , (10, "zehnte")
+  , (11, "elfte")
+  , (12, "zwölfte")
+  , (13, "dreizehnte")
+  , (14, "vierzehnte")
+  , (15, "fünfzehnte")
+  , (16, "sechzehnte")
+  , (17, "siebzehnte")
+  , (18, "achtzehnte")
+  , (19, "neunzehnte")
+  , (20, "zwanzigste")
+  , (21, "einundzwanzigste")
+  , (22, "zweiundzwanzigste")
+  , (23, "dreiundzwanzigste")
+  , (24, "vierundzwanzigste")
+  , (25, "fünfundzwanzigste")
+  , (26, "sechsundzwanzigste")
+  , (27, "siebenundzwanzigste")
+  , (28, "achtundzwanzigste")
+  , (29, "neunundzwanzigste")
+  , (30, "dreißigste")
+  , (31, "einunddreißigste")
+  , (32, "zweiunddreißigste")
+  , (33, "dreiunddreißigste")
+  , (34, "vierunddreißigste")
+  , (35, "fünfunddreißigste")
+  , (36, "sechsunddreißigste")
+  , (37, "siebenunddreißigste")
+  , (38, "achtunddreißigste")
+  , (39, "neununddreißigste")
+  , (40, "vierzigste")
+  , (41, "einundvierzigste")
+  , (42, "zweiundvierzigste")
+  , (43, "dreiundvierzigste")
+  , (44, "vierundvierzigste")
+  , (45, "fünfundvierzigste")
+  , (46, "sechsundvierzigste")
+  , (47, "siebenundvierzigste")
+  , (48, "achtundvierzigste")
+  , (49, "neunundvierzigste")
+  , (50, "fünfzigste")
+  , (51, "einundfünfzigste")
+  , (52, "zweiundfünfzigste")
+  , (53, "dreiundfünfzigste")
+  , (54, "vierundfünfzigste")
+  , (55, "fünfundfünfzigste")
+  , (56, "sechsundfünfzigste")
+  , (57, "siebenundfünfzigste")
+  , (58, "achtundfünfzigste")
+  , (59, "neunundfünfzigste")
+  , (60, "sechzigste")
+  , (61, "einundsechzigste")
+  , (62, "zweiundsechzigste")
+  , (63, "dreiundsechzigste")
+  , (64, "vierundsechzigste")
+  , (65, "fünfundsechzigste")
+  , (66, "sechsundsechzigste")
+  , (67, "siebenundsechzigste")
+  , (68, "achtundsechzigste")
+  , (69, "neunundsechzigste")
+  , (70, "siebzigste")
+  , (71, "einundsiebzigste")
+  , (72, "zweiundsiebzigste")
+  , (73, "dreiundsiebzigste")
+  , (74, "vierundsiebzigste")
+  , (75, "fünfundsiebzigste")
+  , (76, "sechsundsiebzigste")
+  , (77, "siebenundsiebzigste")
+  , (78, "achtundsiebzigste")
+  , (79, "neunundsiebzigste")
+  , (80, "achtzigste")
+  , (81, "einundachtzigste")
+  , (82, "zweiundachtzigste")
+  , (83, "dreiundachtzigste")
+  , (84, "vierundachtzigste")
+  , (85, "fünfundachtzigste")
+  , (86, "sechsundachtzigste")
+  , (87, "siebenundachtzigste")
+  , (88, "achtundachtzigste")
+  , (89, "neunundachtzigste")
+  , (90, "neunzigste")
+  , (91, "einundneunzigste")
+  , (92, "zweiundneunzigste")
+  , (93, "dreiundneunzigste")
+  , (94, "vierundneunzigste")
+  , (95, "fünfundneunzigste")
+  , (96, "sechsundneunzigste")
+  , (97, "siebenundneunzigste")
+  , (98, "achtundneunzigste")
+  , (99, "neunundneunzigste")
+  , (100, "hundertste")
+  , (101, "einhunderterste")
+  , (102, "einhundertzweite")
+  , (103, "einhundertdritte")
+  , (104, "einhundertvierte")
+  , (105, "einhundertfünfte")
+  , (106, "einhundertsechste")
+  , (107, "einhundertsiebte")
+  , (108, "einhundertachte")
+  , (109, "einhundertneunte")
+  , (110, "einhundertzehnte")
+  , (111, "einhundertelfte")
+  , (112, "einhundertzwölfte")
+  , (113, "einhundertdreizehnte")
+  , (114, "einhundertvierzehnte")
+  , (115, "einhundertfünfzehnte")
+  , (116, "einhundertsechzehnte")
+  , (117, "einhundertsiebzehnte")
+  , (118, "einhundertachtzehnte")
+  , (119, "einhundertneunzehnte")
+  , (120, "einhundertzwanzigste")
+  , (121, "einhunderteinundzwanzigste")
+  , (122, "einhundertzweiundzwanzigste")
+  , (123, "einhundertdreiundzwanzigste")
+  , (124, "einhundertvierundzwanzigste")
+  , (125, "einhundertfünfundzwanzigste")
+  , (126, "einhundertsechsundzwanzigste")
+  , (127, "einhundertsiebenundzwanzigste")
+  , (128, "einhundertachtundzwanzigste")
+  , (129, "einhundertneunundzwanzigste")
+  , (130, "einhundertdreißigste")
+  , (131, "einhunderteinunddreißigste")
+  , (132, "einhundertzweiunddreißigste")
+  , (133, "einhundertdreiunddreißigste")
+  , (134, "einhundertvierunddreißigste")
+  , (135, "einhundertfünfunddreißigste")
+  , (136, "einhundertsechsunddreißigste")
+  , (137, "einhundertsiebenunddreißigste")
+  , (138, "einhundertachtunddreißigste")
+  , (139, "einhundertneununddreißigste")
+  , (140, "einhundertvierzigste")
+  , (141, "einhunderteinundvierzigste")
+  , (142, "einhundertzweiundvierzigste")
+  , (143, "einhundertdreiundvierzigste")
+  , (144, "einhundertvierundvierzigste")
+  , (145, "einhundertfünfundvierzigste")
+  , (146, "einhundertsechsundvierzigste")
+  , (147, "einhundertsiebenundvierzigste")
+  , (148, "einhundertachtundvierzigste")
+  , (149, "einhundertneunundvierzigste")
+  , (150, "einhundertfünfzigste")
+  , (151, "einhunderteinundfünfzigste")
+  , (152, "einhundertzweiundfünfzigste")
+  , (153, "einhundertdreiundfünfzigste")
+  , (154, "einhundertvierundfünfzigste")
+  , (155, "einhundertfünfundfünfzigste")
+  , (156, "einhundertsechsundfünfzigste")
+  , (157, "einhundertsiebenundfünfzigste")
+  , (158, "einhundertachtundfünfzigste")
+  , (159, "einhundertneunundfünfzigste")
+  , (160, "einhundertsechzigste")
+  , (161, "einhunderteinundsechzigste")
+  , (162, "einhundertzweiundsechzigste")
+  , (163, "einhundertdreiundsechzigste")
+  , (164, "einhundertvierundsechzigste")
+  , (165, "einhundertfünfundsechzigste")
+  , (166, "einhundertsechsundsechzigste")
+  , (167, "einhundertsiebenundsechzigste")
+  , (168, "einhundertachtundsechzigste")
+  , (169, "einhundertneunundsechzigste")
+  , (170, "einhundertsiebzigste")
+  , (171, "einhunderteinundsiebzigste")
+  , (172, "einhundertzweiundsiebzigste")
+  , (173, "einhundertdreiundsiebzigste")
+  , (174, "einhundertvierundsiebzigste")
+  , (175, "einhundertfünfundsiebzigste")
+  , (176, "einhundertsechsundsiebzigste")
+  , (177, "einhundertsiebenundsiebzigste")
+  , (178, "einhundertachtundsiebzigste")
+  , (179, "einhundertneunundsiebzigste")
+  , (180, "einhundertachtzigste")
+  , (181, "einhunderteinundachtzigste")
+  , (182, "einhundertzweiundachtzigste")
+  , (183, "einhundertdreiundachtzigste")
+  , (184, "einhundertvierundachtzigste")
+  , (185, "einhundertfünfundachtzigste")
+  , (186, "einhundertsechsundachtzigste")
+  , (187, "einhundertsiebenundachtzigste")
+  , (188, "einhundertachtundachtzigste")
+  , (189, "einhundertneunundachtzigste")
+  , (190, "einhundertneunzigste")
+  , (191, "einhunderteinundneunzigste")
+  , (192, "einhundertzweiundneunzigste")
+  , (193, "einhundertdreiundneunzigste")
+  , (194, "einhundertvierundneunzigste")
+  , (195, "einhundertfünfundneunzigste")
+  , (196, "einhundertsechsundneunzigste")
+  , (197, "einhundertsiebenundneunzigste")
+  , (198, "einhundertachtundneunzigste")
+  , (199, "einhundertneunundneunzigste")
+  , (200, "zweihundertste")
+  , (233, "zweihundertdreiunddreißigste")
+  , (377, "dreihundertsiebenundsiebzigste")
+  , (610, "sechshundertzehnte")
+  , (987, "neunhundertsiebenundachtzigste")
+  , (1597, "eintausendfünfhundertsiebenundneunzigste")
+  , (2584, "zweitausendfünfhundertvierundachtzigste")
+  , (4181, "viertausendeinhunderteinundachtzigste")
+  , (6765, "sechstausendsiebenhundertfünfundsechzigste")
+  , (10946, "zehntausendneunhundertsechsundvierzigste")
+  , (17711, "siebzehntausendsiebenhundertelfte")
+  , (28657, "achtundzwanzigtausendsechshundertsiebenundfünfzigste")
+  , (46368, "sechsundvierzigtausenddreihundertachtundsechzigste")
+  , (75025, "fünfundsiebzigtausendfünfundzwanzigste")
+  , (121393, "einhunderteinundzwanzigtausenddreihundertdreiundneunzigste")
+  , (196418, "einhundertsechsundneunzigtausendvierhundertachtzehnte")
+  , (317811, "dreihundertsiebzehntausendachthundertelfte")
+  , (514229, "fünfhundertvierzehntausendzweihundertneunundzwanzigste")
+  , (832040, "achthundertzweiunddreißigtausendvierzigste")
+  , (1346269, "eine million dreihundertsechsundvierzigtausendzweihundertneunundsechzigste")
+  , (2178309, "zwei millionen einhundertachtundsiebzigtausenddreihundertneunte")
+  , (3524578, "drei millionen fünfhundertvierundzwanzigtausendfünfhundertachtundsiebzigste")
+  , (5702887, "fünf millionen siebenhundertzweitausendachthundertsiebenundachtzigste")
+  , (9227465, "neun millionen zweihundertsiebenundzwanzigtausendvierhundertfünfundsechzigste")
+  , (14930352, "vierzehn millionen neunhundertdreißigtausenddreihundertzweiundfünfzigste")
+  , (24157817, "vierundzwanzig millionen einhundertsiebenundfünfzigtausendachthundertsiebzehnte")
+  , (39088169, "neununddreißig millionen achtundachtzigtausendeinhundertneunundsechzigste")
+  , (63245986, "dreiundsechzig millionen zweihundertfünfundvierzigtausendneunhundertsechsundachtzigste")
+  , (102334155, "einhundertzwei millionen dreihundertvierunddreißigtausendeinhundertfünfundfünfzigste")
+  , (165580141, "einhundertfünfundsechzig millionen fünfhundertachtzigtausendeinhunderteinundvierzigste")
+  , (267914296, "zweihundertsiebenundsechzig millionen neunhundertvierzehntausendzweihundertsechsundneunzigste")
+  , (433494437, "vierhundertdreiunddreißig millionen vierhundertvierundneunzigtausendvierhundertsiebenunddreißigste")
+  , (701408733, "siebenhunderteins millionen vierhundertachttausendsiebenhundertdreiunddreißigste")
+  , (1134903170, "eine milliard einhundertvierunddreißig millionen neunhundertdreitausendeinhundertsiebzigste")
+  , (1836311903, "eine milliard achthundertsechsunddreißig millionen dreihundertelftausendneunhundertdritte")
+  , (2971215073, "zwei milliarden neunhunderteinundsiebzig millionen zweihundertfünfzehntausenddreiundsiebzigste")
+  , (4807526976, "vier milliarden achthundertsieben millionen fünfhundertsechsundzwanzigtausendneunhundertsechsundsiebzigste")
+  , (7778742049, "sieben milliarden siebenhundertachtundsiebzig millionen siebenhundertzweiundvierzigtausendneunundvierzigste")
+  , (12586269025, "zwölf milliarden fünfhundertsechsundachtzig millionen zweihundertneunundsechzigtausendfünfundzwanzigste")
+  , (20365011074, "zwanzig milliarden dreihundertfünfundsechzig millionen elftausendvierundsiebzigste")
+  , (32951280099, "zweiunddreißig milliarden neunhunderteinundfünfzig millionen zweihundertachtzigtausendneunundneunzigste")
+  , (53316291173, "dreiundfünfzig milliarden dreihundertsechzehn millionen zweihunderteinundneunzigtausendeinhundertdreiundsiebzigste")
+  , (86267571272, "sechsundachtzig milliarden zweihundertsiebenundsechzig millionen fünfhunderteinundsiebzigtausendzweihundertzweiundsiebzigste")
+  , (139583862445, "einhundertneununddreißig milliarden fünfhundertdreiundachtzig millionen achthundertzweiundsechzigtausendvierhundertfünfundvierzigste")
+  , (225851433717, "zweihundertfünfundzwanzig milliarden achthunderteinundfünfzig millionen vierhundertdreiunddreißigtausendsiebenhundertsiebzehnte")
+  , (365435296162, "dreihundertfünfundsechzig milliarden vierhundertfünfunddreißig millionen zweihundertsechsundneunzigtausendeinhundertzweiundsechzigste")
+  , (591286729879, "fünfhunderteinundneunzig milliarden zweihundertsechsundachtzig millionen siebenhundertneunundzwanzigtausendachthundertneunundsiebzigste")
+  , (956722026041, "neunhundertsechsundfünfzig milliarden siebenhundertzweiundzwanzig millionen sechsundzwanzigtausendeinundvierzigste")
+  , (1548008755920, "eine billion fünfhundertachtundvierzig milliarden acht millionen siebenhundertfünfundfünfzigtausendneunhundertzwanzigste")
+  , (2504730781961, "zwei billionen fünfhundertvier milliarden siebenhundertdreißig millionen siebenhunderteinundachtzigtausendneunhunderteinundsechzigste")
+  , (4052739537881, "vier billionen zweiundfünfzig milliarden siebenhundertneununddreißig millionen fünfhundertsiebenunddreißigtausendachthunderteinundachtzigste")
+  , (6557470319842, "sechs billionen fünfhundertsiebenundfünfzig milliarden vierhundertsiebzig millionen dreihundertneunzehntausendachthundertzweiundvierzigste")
+  , (10610209857723, "zehn billionen sechshundertzehn milliarden zweihundertneun millionen achthundertsiebenundfünfzigtausendsiebenhundertdreiundzwanzigste")
+  , (17167680177565, "siebzehn billionen einhundertsiebenundsechzig milliarden sechshundertachtzig millionen einhundertsiebenundsiebzigtausendfünfhundertfünfundsechzigste")
+  , (27777890035288, "siebenundzwanzig billionen siebenhundertsiebenundsiebzig milliarden achthundertneunzig millionen fünfunddreißigtausendzweihundertachtundachtzigste")
+  , (44945570212853, "vierundvierzig billionen neunhundertfünfundvierzig milliarden fünfhundertsiebzig millionen zweihundertzwölftausendachthundertdreiundfünfzigste")
+  , (72723460248141, "zweiundsiebzig billionen siebenhundertdreiundzwanzig milliarden vierhundertsechzig millionen zweihundertachtundvierzigtausendeinhunderteinundvierzigste")
+  , (117669030460994, "einhundertsiebzehn billionen sechshundertneunundsechzig milliarden dreißig millionen vierhundertsechzigtausendneunhundertvierundneunzigste")
+  , (190392490709135, "einhundertneunzig billionen dreihundertzweiundneunzig milliarden vierhundertneunzig millionen siebenhundertneuntausendeinhundertfünfunddreißigste")
+  , (308061521170129, "dreihundertacht billionen einundsechzig milliarden fünfhunderteinundzwanzig millionen einhundertsiebzigtausendeinhundertneunundzwanzigste")
+  , (498454011879264, "vierhundertachtundneunzig billionen vierhundertvierundfünfzig milliarden elf millionen achthundertneunundsiebzigtausendzweihundertvierundsechzigste")
+  , (806515533049393, "achthundertsechs billionen fünfhundertfünfzehn milliarden fünfhundertdreiunddreißig millionen neunundvierzigtausenddreihundertdreiundneunzigste")
+  , (1304969544928657, "eine billiard dreihundertvier billionen neunhundertneunundsechzig milliarden fünfhundertvierundvierzig millionen neunhundertachtundzwanzigtausendsechshundertsiebenundfünfzigste")
+  , (2111485077978050, "zwei billiarden einhundertelf billionen vierhundertfünfundachtzig milliarden siebenundsiebzig millionen neunhundertachtundsiebzigtausendfünfzigste")
+  , (3416454622906707, "drei billiarden vierhundertsechzehn billionen vierhundertvierundfünfzig milliarden sechshundertzweiundzwanzig millionen neunhundertsechstausendsiebenhundertsiebte")
+  , (5527939700884757, "fünf billiarden fünfhundertsiebenundzwanzig billionen neunhundertneununddreißig milliarden siebenhundert millionen achthundertvierundachtzigtausendsiebenhundertsiebenundfünfzigste")
+  , (8944394323791464, "acht billiarden neunhundertvierundvierzig billionen dreihundertvierundneunzig milliarden dreihundertdreiundzwanzig millionen siebenhunderteinundneunzigtausendvierhundertvierundsechzigste")
+  , (14472334024676221, "vierzehn billiarden vierhundertzweiundsiebzig billionen dreihundertvierunddreißig milliarden vierundzwanzig millionen sechshundertsechsundsiebzigtausendzweihunderteinundzwanzigste")
+  , (23416728348467685, "dreiundzwanzig billiarden vierhundertsechzehn billionen siebenhundertachtundzwanzig milliarden dreihundertachtundvierzig millionen vierhundertsiebenundsechzigtausendsechshundertfünfundachtzigste")
+  , (37889062373143906, "siebenunddreißig billiarden achthundertneunundachtzig billionen zweiundsechzig milliarden dreihundertdreiundsiebzig millionen einhundertdreiundvierzigtausendneunhundertsechste")
+  , (61305790721611591, "einundsechzig billiarden dreihundertfünf billionen siebenhundertneunzig milliarden siebenhunderteinundzwanzig millionen sechshundertelftausendfünfhunderteinundneunzigste")
+  , (99194853094755497, "neunundneunzig billiarden einhundertvierundneunzig billionen achthundertdreiundfünfzig milliarden vierundneunzig millionen siebenhundertfünfundfünfzigtausendvierhundertsiebenundneunzigste")
+  , (160500643816367088, "einhundertsechzig billiarden fünfhundert billionen sechshundertdreiundvierzig milliarden achthundertsechzehn millionen dreihundertsiebenundsechzigtausendachtundachtzigste")
+  , (259695496911122585, "zweihundertneunundfünfzig billiarden sechshundertfünfundneunzig billionen vierhundertsechsundneunzig milliarden neunhundertelf millionen einhundertzweiundzwanzigtausendfünfhundertfünfundachtzigste")
+  , (420196140727489673, "vierhundertzwanzig billiarden einhundertsechsundneunzig billionen einhundertvierzig milliarden siebenhundertsiebenundzwanzig millionen vierhundertneunundachtzigtausendsechshundertdreiundsiebzigste")
+  , (679891637638612258, "sechshundertneunundsiebzig billiarden achthunderteinundneunzig billionen sechshundertsiebenunddreißig milliarden sechshundertachtunddreißig millionen sechshundertzwölftausendzweihundertachtundfünfzigste")
+  , (1100087778366101931, "eine trillion einhundert billiarden siebenundachtzig billionen siebenhundertachtundsiebzig milliarden dreihundertsechsundsechzig millionen einhunderteinstausendneunhunderteinunddreißigste")
+  , (1779979416004714189, "eine trillion siebenhundertneunundsiebzig billiarden neunhundertneunundsiebzig billionen vierhundertsechzehn milliarden vier millionen siebenhundertvierzehntausendeinhundertneunundachtzigste")
+  , (2880067194370816120, "zwei trillionen achthundertachtzig billiarden siebenundsechzig billionen einhundertvierundneunzig milliarden dreihundertsiebzig millionen achthundertsechzehntausendeinhundertzwanzigste")
+  , (4660046610375530309, "vier trillionen sechshundertsechzig billiarden sechsundvierzig billionen sechshundertzehn milliarden dreihundertfünfundsiebzig millionen fünfhundertdreißigtausenddreihundertneunte")
+  , (7540113804746346429, "sieben trillionen fünfhundertvierzig billiarden einhundertdreizehn billionen achthundertvier milliarden siebenhundertsechsundvierzig millionen dreihundertsechsundvierzigtausendvierhundertneunundzwanzigste")
+  , (12200160415121876738, "zwölf trillionen zweihundert billiarden einhundertsechzig billionen vierhundertfünfzehn milliarden einhunderteinundzwanzig millionen achthundertsechsundsiebzigtausendsiebenhundertachtunddreißigste")
+  , (19740274219868223167, "neunzehn trillionen siebenhundertvierzig billiarden zweihundertvierundsiebzig billionen zweihundertneunzehn milliarden achthundertachtundsechzig millionen zweihundertdreiundzwanzigtausendeinhundertsiebenundsechzigste")
+  , (31940434634990099905, "einunddreißig trillionen neunhundertvierzig billiarden vierhundertvierunddreißig billionen sechshundertvierunddreißig milliarden neunhundertneunzig millionen neunundneunzigtausendneunhundertfünfte")
+  , (51680708854858323072, "einundfünfzig trillionen sechshundertachtzig billiarden siebenhundertacht billionen achthundertvierundfünfzig milliarden achthundertachtundfünfzig millionen dreihundertdreiundzwanzigtausendzweiundsiebzigste")
+  , (83621143489848422977, "dreiundachtzig trillionen sechshunderteinundzwanzig billiarden einhundertdreiundvierzig billionen vierhundertneunundachtzig milliarden achthundertachtundvierzig millionen vierhundertzweiundzwanzigtausendneunhundertsiebenundsiebzigste")
+  , (135301852344706746049, "einhundertfünfunddreißig trillionen dreihunderteins billiarden achthundertzweiundfünfzig billionen dreihundertvierundvierzig milliarden siebenhundertsechs millionen siebenhundertsechsundvierzigtausendneunundvierzigste")
+  , (218922995834555169026, "zweihundertachtzehn trillionen neunhundertzweiundzwanzig billiarden neunhundertfünfundneunzig billionen achthundertvierunddreißig milliarden fünfhundertfünfundfünfzig millionen einhundertneunundsechzigtausendsechsundzwanzigste")
+  , (354224848179261915075, "dreihundertvierundfünfzig trillionen zweihundertvierundzwanzig billiarden achthundertachtundvierzig billionen einhundertneunundsiebzig milliarden zweihunderteinundsechzig millionen neunhundertfünfzehntausendfünfundsiebzigste")
+  , (573147844013817084101, "fünfhundertdreiundsiebzig trillionen einhundertsiebenundvierzig billiarden achthundertvierundvierzig billionen dreizehn milliarden achthundertsiebzehn millionen vierundachtzigtausendeinhunderterste")
+  , (927372692193078999176, "neunhundertsiebenundzwanzig trillionen dreihundertzweiundsiebzig billiarden sechshundertzweiundneunzig billionen einhundertdreiundneunzig milliarden achtundsiebzig millionen neunhundertneunundneunzigtausendeinhundertsechsundsiebzigste")
+  , (1500520536206896083277, "eine trilliard fünfhundert trillionen fünfhundertzwanzig billiarden fünfhundertsechsunddreißig billionen zweihundertsechs milliarden achthundertsechsundneunzig millionen dreiundachtzigtausendzweihundertsiebenundsiebzigste")
+  , (2427893228399975082453, "zwei trilliarden vierhundertsiebenundzwanzig trillionen achthundertdreiundneunzig billiarden zweihundertachtundzwanzig billionen dreihundertneunundneunzig milliarden neunhundertfünfundsiebzig millionen zweiundachtzigtausendvierhundertdreiundfünfzigste")
+  , (3928413764606871165730, "drei trilliarden neunhundertachtundzwanzig trillionen vierhundertdreizehn billiarden siebenhundertvierundsechzig billionen sechshundertsechs milliarden achthunderteinundsiebzig millionen einhundertfünfundsechzigtausendsiebenhundertdreißigste")
+  , (6356306993006846248183, "sechs trilliarden dreihundertsechsundfünfzig trillionen dreihundertsechs billiarden neunhundertdreiundneunzig billionen sechs milliarden achthundertsechsundvierzig millionen zweihundertachtundvierzigtausendeinhundertdreiundachtzigste")
+  , (10284720757613717413913, "zehn trilliarden zweihundertvierundachtzig trillionen siebenhundertzwanzig billiarden siebenhundertsiebenundfünfzig billionen sechshundertdreizehn milliarden siebenhundertsiebzehn millionen vierhundertdreizehntausendneunhundertdreizehnte")
+  , (16641027750620563662096, "sechzehn trilliarden sechshunderteinundvierzig trillionen siebenundzwanzig billiarden siebenhundertfünfzig billionen sechshundertzwanzig milliarden fünfhundertdreiundsechzig millionen sechshundertzweiundsechzigtausendsechsundneunzigste")
+  , (26925748508234281076009, "sechsundzwanzig trilliarden neunhundertfünfundzwanzig trillionen siebenhundertachtundvierzig billiarden fünfhundertacht billionen zweihundertvierunddreißig milliarden zweihunderteinundachtzig millionen sechsundsiebzigtausendneunte")
+  , (43566776258854844738105, "dreiundvierzig trilliarden fünfhundertsechsundsechzig trillionen siebenhundertsechsundsiebzig billiarden zweihundertachtundfünfzig billionen achthundertvierundfünfzig milliarden achthundertvierundvierzig millionen siebenhundertachtunddreißigtausendeinhundertfünfte")
+  , (70492524767089125814114, "siebzig trilliarden vierhundertzweiundneunzig trillionen fünfhundertvierundzwanzig billiarden siebenhundertsiebenundsechzig billionen neunundachtzig milliarden einhundertfünfundzwanzig millionen achthundertvierzehntausendeinhundertvierzehnte")
+  , (114059301025943970552219, "einhundertvierzehn trilliarden neunundfünfzig trillionen dreihunderteins billiarden fünfundzwanzig billionen neunhundertdreiundvierzig milliarden neunhundertsiebzig millionen fünfhundertzweiundfünfzigtausendzweihundertneunzehnte")
+  , (1000, "tausendste")
+  , (10000, "zehntausendste")
+  , (100000, "einhunderttausendste")
+  , (1000000, "millionste")
+  , (10000000, "zehnmillionste")
+  , (100000000, "einhundertmillionste")
+  , (1000000000, "eine milliardte")
+  , (10000000000, "zehnmilliardste")
+  , (100000000000, "einhundertmilliardste")
+  , (1000000000000, "billionste")
+  , (10000000000000, "zehnbillionste")
+  , (100000000000000, "einhundertbillionste")
+  , (1000000000000000, "eine billiardte")
+  , (10000000000000000, "zehnbilliardste")
+  , (100000000000000000, "einhundertbilliardste")
+  , (1000000000000000000, "trillionste")
+  , (10000000000000000000, "zehntrillionste")
+  , (100000000000000000000, "einhunderttrillionste")
+  , (1000000000000000000000, "eine trilliardte")
+  , (10000000000000000000000, "zehntrilliardste")
+  , (100000000000000000000000, "einhunderttrilliardste")
+  , (1000000000000000000000000, "quadrillionste")
+  ]
