aboutsummaryrefslogtreecommitdiff
;;; Whispers --- Stealth VPN and ssh tunneler
;;; Copyright © 2024 Runciter <runciter@whispers-vpn.org>
;;;
;;; This file is part of Whispers.
;;;
;;; Whispers is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; Whispers 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 General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with Whispers.  If not, see <http://www.gnu.org/licenses/>.

(define-module (whispers services dict)
  #:use-module (guix gexp)
  #:use-module (gnu services dict)
  #:use-module (whispers packages dict)
  #:export (%dictorg-handler
            freedict-dictorg-database
            %freedict-dictorg-databases
            %cedict-dictorg-databases))

(define %dictorg-handler
  (dicod-handler (name "dictorg")
                 (module "dictorg")
                 (options (list #~(string-append "dbdir=/")))))

(define (freedict-dictorg-database dict-name)
  "Return a record of type @code{<dicod-database>} that configures a
database for the freedict multilingual dictionary named by the string
DICT-NAME."
  (dicod-database (name (string-append "freedict-"
                                       dict-name))
                  (complex? #t)
                  (handler "dictorg")
                  (options (list #~(string-append "database="
                                                  #$freedict-dictionaries
                                                  "/share/dictd/"
                                                  #$dict-name)))))
(define %freedict-dictorg-databases
  (map freedict-dictorg-database (list "afr-deu"
                                       "afr-eng"
                                       "ara-eng"
                                       "bre-fra"
                                       "ces-eng"
                                       "ckb-kmr"
                                       "cym-eng"
                                       "dan-eng"
                                       "deu-ita"
                                       "deu-kur"
                                       "deu-nld"
                                       "deu-por"
                                       "deu-tur"
                                       "eng-afr"
                                       "eng-ara"
                                       "eng-ces"
                                       "eng-cym"
                                       "eng-dan"
                                       "eng-ell"
                                       "eng-fra"
                                       "eng-gle"
                                       "eng-hin"
                                       "eng-hrv"
                                       "eng-hun"
                                       "eng-ita"
                                       "eng-lat"
                                       "eng-lit"
                                       "eng-nld"
                                       "eng-pol"
                                       "eng-por"
                                       "eng-rom"
                                       "eng-rus"
                                       "eng-spa"
                                       "eng-srp"
                                       "eng-swh"
                                       "eng-tur"
                                       "fra-bre"
                                       "fra-eng"
                                       "fra-nld"
                                       "gla-deu"
                                       "gle-eng"
                                       "gle-pol"
                                       "hrv-eng"
                                       "hun-eng"
                                       "isl-eng"
                                       "ita-deu"
                                       "ita-eng"
                                       "jpn-deu"
                                       "jpn-eng"
                                       "jpn-fra"
                                       "jpn-rus"
                                       "kha-deu"
                                       "kha-eng"
                                       "kur-deu"
                                       "kur-eng"
                                       "kur-tur"
                                       "lat-deu"
                                       "lat-eng"
                                       "lit-eng"
                                       "mkd-bul"
                                       "nld-deu"
                                       "nld-eng"
                                       "nld-fra"
                                       "nno-nob"
                                       "oci-cat"
                                       "pol-gle"
                                       "por-deu"
                                       "por-eng"
                                       "san-deu"
                                       "slk-eng"
                                       "slv-eng"
                                       "spa-ast"
                                       "spa-eng"
                                       "spa-por"
                                       "srp-eng"
                                       "swe-eng"
                                       "swh-eng"
                                       "swh-pol"
                                       "tur-deu"
                                       "tur-eng"
                                       "wol-fra")))

(define (cedict-dictorg-database variant)
  "Return a record of type @code{<dicod-database>} that configures a
database for the CC-CEDICT chinese-english multilingual dictionary
variant described by the string VARIANT."
  (dicod-database (name (string-append "cedict-"
                                       variant))
                  (complex? #t)
                  (handler "dictorg")
                  (options (list #~(string-append "database="
                                                  #$cc-cedict
                                                  "/share/cc-cedict/cedict-"
                                                  #$variant)))))

(define %cedict-dictorg-databases
  (map cedict-dictorg-database (list "bare"
                                     "numb"
                                     "pinyin"
                                     "smpl"
                                     "trad")))