mirror of
https://github.com/logseq/logseq.git
synced 2026-05-19 02:12:41 +00:00
improve i18n
This commit is contained in:
@@ -133,9 +133,10 @@
|
||||
;; Matches files containing dynamic translation-call `if`/`or` forms, `i18n-key`
|
||||
;; `if` forms, literal `:prompt-key`/`:title-key` options, `built-in-colors`,
|
||||
;; `navs` vectors, date NLP labels, built-in property/class definitions, or
|
||||
;; `:shortcut.category/*` keys for later exact extraction.
|
||||
;; `:shortcut.category/*` keys, or supported dynamic `keyword` i18n patterns for
|
||||
;; later exact extraction.
|
||||
(def ^:private derived-ui-key-candidate-rg-pattern
|
||||
"(?:[(](?:[[:alnum:]._-]+/)?tt?[[:space:]]+[(](?:if|or)\\b|:?i18n-key[[:space:]]+[(]if\\b|:prompt-key[[:space:]]+:|:title-key[[:space:]]+:|[(]def[[:space:]]+built-in-colors\\b|\\bnavs[[:space:]]+\\[|[(]def[[:space:]]+nlp-pages\\b|[(]def[[:space:]]+\\^:large-vars/data-var[[:space:]]+built-in-(?:properties|classes)\\b|:shortcut\\.category/)")
|
||||
"(?:[(](?:[[:alnum:]._-]+/)?tt?[[:space:]]+[(](?:if|or)\\b|:?i18n-key[[:space:]]+[(]if\\b|:prompt-key[[:space:]]+:|:title-key[[:space:]]+:|[(]def[[:space:]]+built-in-colors\\b|\\bnavs[[:space:]]+\\[|[(]def[[:space:]]+nlp-pages\\b|[(]def[[:space:]]+\\^:large-vars/data-var[[:space:]]+built-in-(?:properties|classes)\\b|:shortcut\\.category/|[(]keyword[[:space:]]+\"flashcard\\.rating\")")
|
||||
|
||||
(def ^:private built-in-db-ident-candidate-rg-pattern
|
||||
"[(]def[[:space:]]+\\^:large-vars/data-var[[:space:]]+built-in-(?:properties|classes)\\b")
|
||||
|
||||
@@ -78,6 +78,14 @@
|
||||
(def ^:private shortcut-category-key-pattern
|
||||
#":shortcut\.category/[A-Za-z0-9._-]+")
|
||||
|
||||
;; Matches FSRS flashcard rating translation keys derived with
|
||||
;; `(keyword "flashcard.rating" ...)`.
|
||||
(def ^:private flashcard-rating-label-keyword-pattern
|
||||
#"\(keyword\s+\"flashcard\.rating\"\s+\(name\s+[^\)]+\)\)")
|
||||
|
||||
(def ^:private flashcard-rating-desc-keyword-pattern
|
||||
#"\(keyword\s+\"flashcard\.rating\"\s+\(str\s+\(name\s+[^\)]+\)\s+\"-desc\"\)\)")
|
||||
|
||||
;; Matches the start of `(comment ...)` forms.
|
||||
(def ^:private comment-form-prefix-pattern
|
||||
#"\(comment\b")
|
||||
@@ -353,6 +361,18 @@
|
||||
(map #(keyword (subs % 1)))
|
||||
set))
|
||||
|
||||
(defn flashcard-rating-translation-keys
|
||||
"Return `:flashcard.rating/*` keys derived from supported FSRS dynamic
|
||||
keyword construction."
|
||||
[content]
|
||||
(let [ratings [:again :hard :good :easy]]
|
||||
(into #{}
|
||||
(concat
|
||||
(when (re-find flashcard-rating-label-keyword-pattern content)
|
||||
(map #(keyword "flashcard.rating" (name %)) ratings))
|
||||
(when (re-find flashcard-rating-desc-keyword-pattern content)
|
||||
(map #(keyword "flashcard.rating" (str (name %) "-desc")) ratings))))))
|
||||
|
||||
(defn derived-translation-keys
|
||||
"Return translation keys derived from supported non-literal UI patterns.
|
||||
|
||||
@@ -366,7 +386,8 @@
|
||||
(built-in-color-keys content)
|
||||
(left-sidebar-translation-keys content)
|
||||
(date-nlp-translation-keys content)
|
||||
(shortcut-category-translation-keys content)]
|
||||
(shortcut-category-translation-keys content)
|
||||
(flashcard-rating-translation-keys content)]
|
||||
(apply concat)
|
||||
set))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user