diff options
Diffstat (limited to 'src/FSD/Translation.hs')
-rw-r--r-- | src/FSD/Translation.hs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/FSD/Translation.hs b/src/FSD/Translation.hs new file mode 100644 index 0000000..d825baa --- /dev/null +++ b/src/FSD/Translation.hs @@ -0,0 +1,41 @@ +{- +Copyright (C) 2022 Yuchen Pei. + +This file is part of fsd. + +fsd is free software: you can redistribute it and/or modify it under +the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +fsd is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General +Public License for more details. + +You should have received a copy of the GNU Affero General Public +License along with fsd. If not, see <https://www.gnu.org/licenses/>. + +-} + +{-# LANGUAGE ImportQualifiedPost #-} +{-# LANGUAGE OverloadedStrings #-} + +module FSD.Translation where + +import FSD.Control +import Data.List.Extra +import Data.Maybe +import Data.Text (Text) +import Data.Text qualified as T +import Debian.Control +import FSD.Types + +getTranslation :: Paragraph -> Maybe Translation +getTranslation para = do + package <- T.pack <$> fieldValue "Package" para + (shortDesc, fullDesc) <- fSynFV <$> fieldValue "Description-en" para + return $ Translation package shortDesc fullDesc + +getTranslations :: Control -> [Translation] +getTranslations = catMaybes . fmap getTranslation . unControl |