added function to get phonetics from Ňyqy text
This commit is contained in:
parent
8fa7818b70
commit
757ac2ea2d
88
funcs.el
88
funcs.el
@ -214,3 +214,91 @@ runes during org-mode export"
|
|||||||
(conlanging//replace-string-by-char text conlanging//eittlanda-latin-to-latex)
|
(conlanging//replace-string-by-char text conlanging//eittlanda-latin-to-latex)
|
||||||
"}")
|
"}")
|
||||||
(conlanging//replace-string-by-char text conlanging//eittlanda-latin-to-runes)))
|
(conlanging//replace-string-by-char text conlanging//eittlanda-latin-to-runes)))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
; Ňyqy ;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
(setq conlanging//nyqy-phonetics '(("q" t t "q" "ħ")
|
||||||
|
("g" t t "ɢ" "ʢ")
|
||||||
|
("ň" t t "ɴ" "m")
|
||||||
|
("c" t t "t͡ʃ" "ɬ")
|
||||||
|
("j" t t "d͡ʒ" "ɮ")
|
||||||
|
("w" t t "w" "l")
|
||||||
|
("p" t nil "p" "χ")
|
||||||
|
("b" t nil "b" "ʁ")
|
||||||
|
("m" t nil "m" "ʀ")
|
||||||
|
("n" t nil "n" "j")
|
||||||
|
("s" t nil "s" "x")
|
||||||
|
("z" t nil "z" "ɣ")
|
||||||
|
("y" nil nil "y")
|
||||||
|
("ú" nil nil "u")
|
||||||
|
("i" nil nil "ɪ")
|
||||||
|
("u" nil nil "ʊ")
|
||||||
|
("é" nil nil "e")
|
||||||
|
("ó" nil nil "o")
|
||||||
|
("e" nil nil "ɛ")
|
||||||
|
("o" nil nil "ɔ")
|
||||||
|
(" " nil nil " ")
|
||||||
|
("," nil nil " ")
|
||||||
|
(";" nil nil " ")
|
||||||
|
("." nil nil " ")))
|
||||||
|
|
||||||
|
(defun conlanging//is-consonant (elem)
|
||||||
|
(nth 1 elem))
|
||||||
|
|
||||||
|
(defun conlanging//is-dorsal (elem)
|
||||||
|
(nth 2 elem))
|
||||||
|
|
||||||
|
(defun conlanging//nyqy-get-phoneme (consonant phon need-dorsal)
|
||||||
|
(let* ((is-dorsal (nth 1 phon)))
|
||||||
|
(nth (if (or (eq need-dorsal 2) (not consonant)) 3
|
||||||
|
(if (eq is-dorsal need-dorsal) 3 4))
|
||||||
|
phon)))
|
||||||
|
|
||||||
|
(defun conlanging//find-elem-in-list (elem list)
|
||||||
|
"In a list containing lists, returns the element of `list'
|
||||||
|
whose first element equals `elem'"
|
||||||
|
(if list
|
||||||
|
(if (string= (caar list)
|
||||||
|
elem)
|
||||||
|
(car list)
|
||||||
|
(conlanging//find-elem-in-list elem
|
||||||
|
(cdr list)))
|
||||||
|
nil))
|
||||||
|
|
||||||
|
(defun conlanging//nyqy-convert (text phonetics need-dorsal)
|
||||||
|
"
|
||||||
|
need-dorsal: initial = 2, sinon t ou nil
|
||||||
|
"
|
||||||
|
(if (null text)
|
||||||
|
(mapconcat 'identity phonetics "")
|
||||||
|
(let* ((curr-char (car text))
|
||||||
|
(curr-phon-list (conlanging//find-elem-in-list curr-char conlanging//nyqy-phonetics))
|
||||||
|
(consonant (conlanging//is-consonant curr-phon-list))
|
||||||
|
(dorsal (conlanging//is-dorsal curr-phon-list))
|
||||||
|
(phon (conlanging//nyqy-get-phoneme consonant curr-phon-list need-dorsal)))
|
||||||
|
(if (eq need-dorsal 2)
|
||||||
|
(setq need-dorsal dorsal))
|
||||||
|
(conlanging//nyqy-convert (cdr text)
|
||||||
|
(append phonetics
|
||||||
|
(list phon))
|
||||||
|
(if consonant
|
||||||
|
(not need-dorsal)
|
||||||
|
need-dorsal)))))
|
||||||
|
|
||||||
|
(defun conlanging/nyqy-to-phonetics (text)
|
||||||
|
"Adds to Ňyqy text its phonetics equivalent, either as a
|
||||||
|
tooltip in HTML or as plain text appended in LaTeX.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
- text: text to convert to phonetics"
|
||||||
|
(interactive)
|
||||||
|
(setq-local phonetics
|
||||||
|
(conlanging//nyqy-convert (split-string text "" t)
|
||||||
|
()
|
||||||
|
2))
|
||||||
|
(if (org-export-derived-backend-p org-export-current-backend
|
||||||
|
'latex)
|
||||||
|
(concat text " /" phonetics "/")
|
||||||
|
(concat text " <span class=\"tooltip\">/"
|
||||||
|
phonetics "/</span>")))
|
||||||
|
Reference in New Issue
Block a user