Translations of menu-items ^_^
This commit is contained in:
parent
dafccb17a1
commit
e21d16069b
|
@ -60,14 +60,14 @@ If not, have some tea on me: I’m paying. =w="
|
|||
(defun say (speaker &rest text)
|
||||
(list
|
||||
(list :speaker speaker :face 'talking-face :progress 0
|
||||
:text (or (getf text (…:system-language)) (getf text :en)))
|
||||
:text (…:getf-lang text))
|
||||
(car (face speaker 'normal-face))))
|
||||
|
||||
|
||||
(defun mumble (speaker &rest text)
|
||||
(list
|
||||
(list :speaker speaker :progress 0
|
||||
:text (or (getf text (…:system-language)) (getf text :en)))))
|
||||
:text (…:getf-lang text))))
|
||||
|
||||
|
||||
(defun move (speaker world-coords &key (delay .05))
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
;;;; A simple TUI-game made for the text-flavoured LibreJam of 2023-06!
|
||||
;;;; See: https://jamgaroo.xyz/jams/2
|
||||
|
||||
(ql:quickload '(alexandria assoc-utils cl-charms cl-tiled str))
|
||||
(ql:quickload '(alexandria anaphora assoc-utils cl-charms cl-tiled str))
|
||||
|
||||
(load "util.lisp")
|
||||
(load "input.lisp")
|
||||
|
@ -107,16 +107,17 @@ with STATE-LOOP."
|
|||
args))))
|
||||
|
||||
|
||||
(defparameter *submenu* `(((label . "IDK") (selection . 100) (selected t))
|
||||
((label . "GO BACK") (return . nil))))
|
||||
(defparameter *submenu* `(((LABEL :en "IDK") (selection . 100) (selected t))
|
||||
((LABEL :en "GO BACK") (return . nil))))
|
||||
|
||||
|
||||
(defparameter *main-menu* `(((label . "PLAY") (selection . 100) (selected . t)
|
||||
(defparameter *main-menu* `(((LABEL :en "PLAY" :eo "EKLUDI")
|
||||
(selection . 100) (selected . t)
|
||||
(return . ,(make-main-overworld-state)))
|
||||
((label . "SUBMENU") (return . ,(📋:make-menu-state *submenu*)))
|
||||
((label . "QUIT") (return . nil))))
|
||||
|
||||
|
||||
((LABEL :en "SUBMENU" :eo "SUBMENUO")
|
||||
(return . ,(📋:make-menu-state *submenu*)))
|
||||
((LABEL :en "QUIT" :eo "REZIGNI")
|
||||
(return . nil))))
|
||||
|
||||
|
||||
(defun main ()
|
||||
|
|
5
ui.lisp
5
ui.lisp
|
@ -111,11 +111,12 @@ left-to-right, unless negative — in which case, right-to-left."
|
|||
"Render several menu items to the matrix, starting at the given x/y coordinates,
|
||||
maximum width for any given item, and the height of all items.
|
||||
The item list should be an alist of the following format:
|
||||
(((LABEL . “FOO”)(SELECTED . T)(SELECTION . 100)) ((LABEL . “BAR”)(SELECTION . -20)) ⋯)"
|
||||
(((LABEL :en “BIRD” :eo “BIRDO”)(SELECTED . T)(SELECTION . 100))
|
||||
((LABEL :en “BAR” :eo “BARO”)(SELECTION . -20)) ⋯)"
|
||||
(let ((x x))
|
||||
(mapcar
|
||||
(lambda (item)
|
||||
(let* ((label (cdr (assoc 'label item)))
|
||||
(let* ((label (…:getf-lang (cdr (assoc 'label item))))
|
||||
(selection (or (cdr (assoc 'selection item))
|
||||
0))
|
||||
(width (…:at-most max-item-width
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
(:export #:split-string-by-length
|
||||
#:plist=
|
||||
#:at-least #:at-most
|
||||
#:system-language #:langcode->keysym))
|
||||
#:system-language #:langcode->keysym #:getf-lang))
|
||||
|
||||
(in-package :flora-search-aurora.util)
|
||||
|
||||
|
@ -88,3 +88,10 @@ if the language is among the supported. Otherwise, nil."
|
|||
"Return the system language, if among the supported; otherwise, EN-glish."
|
||||
(or (langcode->keysym (uiop:getenv "LANG"))
|
||||
:en))
|
||||
|
||||
|
||||
(defun getf-lang (plist &optional (language (system-language)) (fallback-lang :en))
|
||||
"With a plist containing keys of language-codes, return the property either fitting the
|
||||
preferred LANGUAGE, or the backup FALLBACK-LANG (if LANGUAGE’s is NIL)."
|
||||
(or (getf plist language)
|
||||
(getf plist fallback-lang)))
|
||||
|
|
Ŝarĝante…
Reference in New Issue