services: dico: Add symbols to help users configure FreeDict with dicod.

* gnu/services/dict.scm: (dicod-freedict-database): New procedure;
(%dicod-databases:freedict): new variable.
* doc/guix.texi (Dictionary Service): Document them.

Signed-off-by: Runciter <runciter@whispers-vpn.org>
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Change-Id: Id5b20e235b988953a66e0344872d1fa165c4c773
This commit is contained in:
Runciter 2025-01-09 14:14:31 +00:00 committed by Ludovic Courtès
parent 4fa122bc4d
commit a47bbf6965
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 123 additions and 4 deletions

View file

@ -41514,7 +41514,25 @@ A @code{<dicod-database>} object serving the GNU Collaborative International
Dictionary of English using the @code{gcide} package.
@end defvar
The following is an example @code{dicod-service-type} configuration.
@deffn {Procedure} dicod-freedict-database dictionary-name
Returns a record of type @code{dicod-database} for purpose of
configuring a database for the FreeDict multilingual dictionary named by
@var{dictionary-name}, a string such as @code{"kur-eng"} for the
Kurdish-to-English dictionary, into a service of type
@code{dicod-service-type}.
@end deffn
@defvar %dicod-databases:freedict
A relatively large list of records of type @code{dicod-database}, made
available for users who wish to configure all the FreeDict multilingual
dictionaries provided by the @code{freedict-dictionaries} package into a
service of type @code{dicod-service-type}.
@end defvar
The following is an example @code{dicod-service-type} configuration,
extending a @command{dicod} daemon serving databases for the wordnet and
gcide dictionaries, as well as a selection of FreeDict multilingual
dictionaries.
@lisp
(service dicod-service-type
@ -41525,12 +41543,15 @@ The following is an example @code{dicod-service-type} configuration.
(module "wordnet")
(options
(list #~(string-append "wnhome=" #$wordnet))))))
(databases (list
(databases (cons*
(dicod-database
(name "wordnet")
(complex? #t)
(handler "wordnet"))
%dicod-database:gcide))))
%dicod-database:gcide
(map
dicod-freedict-database
'("fra-eng" "eng-fra" "eng-spa" "spa-eng"))))))
@end lisp
@cindex Docker

View file

@ -2,6 +2,7 @@
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016, 2017, 2018, 2020, 2022, 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Huang Ying <huang.ying.caritas@gmail.com>
;;; Copyright © 2024 Runciter <runciter@whispers-vpn.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -40,7 +41,9 @@
dicod-configuration
dicod-handler
dicod-database
%dicod-database:gcide))
%dicod-database:gcide
dicod-freedict-database
%dicod-databases:freedict))
;;;
@ -94,6 +97,101 @@
(options (list #~(string-append "dbdir=" #$gcide "/share/gcide")
#~(string-append "idxdir=" #$%dicod-gcide-index)))))
(define (dicod-freedict-database dictionary-name)
"Returns a record of type @code{dicod-database} for purpose of configuring a
database for the FreeDict multilingual dictionary named by the string
@var{dictionary-name} into a service of type @code{dicod-service-type}."
(dicod-database (name (string-append "freedict-"
dictionary-name))
(handler "dictorg")
(options (list #~(string-append "database="
#$freedict-dictionaries
"/share/dictd/"
#$dictionary-name)))))
(define %dicod-databases:freedict
(map dicod-freedict-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 %dicod-accounts
(list (user-group
(name "dicod")