aboutsummaryrefslogtreecommitdiff
path: root/module/text
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-02-22 17:50:29 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2022-02-22 21:08:41 +0100
commit37267bbcb42f985f5e00cea2a93cc40a3b8ca50b (patch)
tree4a821d9b3bfabafaa9beba338eb425b21383934e /module/text
parentUpdate makefile for localizations. (diff)
downloadcalp-37267bbcb42f985f5e00cea2a93cc40a3b8ca50b.tar.gz
calp-37267bbcb42f985f5e00cea2a93cc40a3b8ca50b.tar.xz
Update (text module) to dispatch.
(text module) now dispatch its functions to the correct (text module lang) module.
Diffstat (limited to 'module/text')
-rw-r--r--module/text/numbers.scm35
1 files changed, 31 insertions, 4 deletions
diff --git a/module/text/numbers.scm b/module/text/numbers.scm
index aceb82cc..168d267e 100644
--- a/module/text/numbers.scm
+++ b/module/text/numbers.scm
@@ -1,8 +1,35 @@
+(define-module (text numbers)
+ :export (number->string-cardinal
+ number->string-ordinal
+ each-string))
-(eval-when (load)
- (throw 'do-not-load-me
- "Import (text numbers <langugage>) instead")
- )
+(define (get mod-symb proc-symb)
+ (module-ref (resolve-interface `(text numbers ,mod-symb))
+ proc-symb))
+
+;; "sv_SE.UTF-8"
+(define (resolve-language)
+ (string->symbol
+ (string-take
+ (or (getenv "LC_MESSAGES")
+ (getenv "LC_ALL")
+ "en")
+ 2)))
+
+(define* (number->string-cardinal
+ n #:optional (language (resolve-language)))
+ ((get language 'number->string-cardinal) n))
+
+(define* (number->string-ordinal
+ n #:optional (language (resolve-language)))
+ ((get language 'number->string-ordinal) n))
+
+;; TODO change API to allow language, and stop having random extra
+;; arguments for implementations.
+(define* (each-string count . args)
+ (define language (resolve-language))
+ (apply (get language 'each-string)
+ count args))
;; scheme@(guile-user)> (number->string-cardinal 123)
;; $10 = "hundratjugotre"