From 37267bbcb42f985f5e00cea2a93cc40a3b8ca50b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Tue, 22 Feb 2022 17:50:29 +0100 Subject: Update (text module) to dispatch. (text module) now dispatch its functions to the correct (text module lang) module. --- module/text/numbers.scm | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) (limited to 'module') 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 ) 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" -- cgit v1.2.3