diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-02-22 17:50:29 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-02-22 21:08:41 +0100 |
commit | 37267bbcb42f985f5e00cea2a93cc40a3b8ca50b (patch) | |
tree | 4a821d9b3bfabafaa9beba338eb425b21383934e /module/text | |
parent | Update makefile for localizations. (diff) | |
download | calp-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 '')
-rw-r--r-- | module/text/numbers.scm | 35 |
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" |