l10n.lisp
19 lines
| 643 B
| text/x-common-lisp
|
CommonLispLexer
/ src / l10n.lisp
r46 | ||||
(in-package txt2web) | ||||
(defparameter *languages* (list "en" "ru")) | ||||
(defparameter *l10n-strings* | ||||
(mapcan (lambda (lang) | ||||
(cons (intern (string-upcase lang) :keyword) | ||||
(read-code-from-string | ||||
(load-src | ||||
(concatenate 'string "strings/" lang ".sexp"))))) | ||||
*languages*)) | ||||
(defun lformat (target key &rest args) | ||||
(let* ((lang (intern (string-upcase (first (system-locale:languages))) | ||||
:keyword)) | ||||
(strings (or (getf *l10n-strings* lang) | ||||
(getf *l10n-strings* :en)))) | ||||
(apply #'format target (getf strings key) args))) | ||||