aboutsummaryrefslogtreecommitdiff
path: root/whispers/services/dict.scm
diff options
context:
space:
mode:
Diffstat (limited to 'whispers/services/dict.scm')
-rw-r--r--whispers/services/dict.scm146
1 files changed, 146 insertions, 0 deletions
diff --git a/whispers/services/dict.scm b/whispers/services/dict.scm
new file mode 100644
index 0000000..8c481f5
--- /dev/null
+++ b/whispers/services/dict.scm
@@ -0,0 +1,146 @@
+;;; 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")))