@@ -39,17 +39,20 @@ import Control.Monad.State.Strict hiding (when)
3939import Data.Char (chr)
4040import Data.List (sortBy)
4141import qualified Data.Map as Map
42+import Data.Maybe (fromMaybe)
4243import Data.Ord (comparing)
4344import qualified Data.Set as Set
4445import Data.Text (Text)
4546import Text.Pandoc.BCP47 (Lang (..), parseBCP47)
46−import Text.Pandoc.Class (PandocMonad, report)
47+import Text.Pandoc.Class (PandocMonad, report, translateTerm,
48+ setTranslations, toLang)
4749import Text.Pandoc.Definition
4850import Text.Pandoc.Logging
4951import Text.Pandoc.Options
5052import Text.Pandoc.Pretty
5153import Text.Pandoc.Shared (linesToPara)
5254import Text.Pandoc.Templates (renderTemplate')
55+import Text.Pandoc.Translations (Term(Figure))
5356import Text.Pandoc.Writers.Math
5457import Text.Pandoc.Writers.Shared
5558import Text.Pandoc.XML
@@ -223,6 +226,9 @@ handleSpaces s
223226-- | Convert Pandoc document to string in OpenDocument format.
224227writeOpenDocument :: PandocMonad m => WriterOptions -> Pandoc -> m Text
225228writeOpenDocument opts (Pandoc meta blocks) = do
229+ lang <- fromMaybe (Lang "en" "US" "" []) <$>
230+ toLang (metaValueToString <$> lookupMeta "lang" meta)
231+ setTranslations lang
226232 let colwidth = if writerWrapText opts == WrapAuto
227233 then Just $ writerColumns opts
228234 else Nothing
@@ -413,19 +419,20 @@ blockToOpenDocument o bs
413419 | otherwise = do
414420 id' <- gets stImageId
415421 imageDoc <- withParagraphStyle o "FigureWithCaption" [Para [Image attr caption (source,title)]]
416− captionDoc <- numberedFigureCaption id' <$> inlinesToOpenDocument o caption
422+ captionDoc <- inlinesToOpenDocument o caption >>= numberedFigureCaption id'
417423 return $ imageDoc $$ captionDoc
418424
419−numberedFigureCaption :: Int -> Doc -> Doc
420−numberedFigureCaption num caption =
421− let t = text "Figure "
422− r = num - 1
423− s = inTags False "text:sequence" [ ("text:ref-name", "refIllustration" ++ show r),
425+numberedFigureCaption :: PandocMonad m => Int -> Doc -> OD m Doc
426+numberedFigureCaption num caption = do
427+ figterm <- translateTerm Figure
428+ let t = text figterm
429+ let r = num - 1
430+ let s = inTags False "text:sequence" [ ("text:ref-name", "refIllustration" ++ show r),
424431 ("text:name", "Illustration"),
425432 ("text:formula", "ooow:Illustration+1"),
426433 ("style:num-format", "1") ] $ text $ show num
427− c = text ": "
428− in inParagraphTagsWithStyle "FigureCaption" $ hcat [ t, s, c, caption ]
434+ let c = text ": "
435+ return $ inParagraphTagsWithStyle "FigureCaption" $ hcat [ t, text " ", s, c, caption ]
429436
430437colHeadsToOpenDocument :: PandocMonad m
431438 => WriterOptions -> [String] -> [[Block]]