diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-04-07 22:12:29 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-04-07 22:12:29 +0200 |
commit | e377df7b305514d721510fe1f15921647ebc7552 (patch) | |
tree | 35dd17aaf5e29c44c0f13401b6cb86e4d7df5acd /module/text/numbers.scm | |
parent | Rename filename-extension{ => ?}. (diff) | |
parent | Fix translation for (vcomponent datetime output). (diff) | |
download | calp-e377df7b305514d721510fe1f15921647ebc7552.tar.gz calp-e377df7b305514d721510fe1f15921647ebc7552.tar.xz |
Merge branch 'translation'
Diffstat (limited to 'module/text/numbers.scm')
-rw-r--r-- | module/text/numbers.scm | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/module/text/numbers.scm b/module/text/numbers.scm index ba44a495..168d267e 100644 --- a/module/text/numbers.scm +++ b/module/text/numbers.scm @@ -1,9 +1,35 @@ +(define-module (text numbers) + :export (number->string-cardinal + number->string-ordinal + each-string)) -;; TODO this is bad, but this file is replaced once translations are merged -(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" |