fix vietnamese telex state
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
|
||||
sys.stdout.reconfigure(encoding="utf-8")
|
||||
|
||||
# tone marks: s=rising f=falling r=hook x=tilde j=dot
|
||||
tone = {
|
||||
's': str.maketrans("aăâeêioôơuưy", "áắấéếíóốớúứý"),
|
||||
@@ -24,24 +28,21 @@ modcons = [
|
||||
("dd", "đ"),
|
||||
]
|
||||
|
||||
upper = str.maketrans(
|
||||
"aăâeêioôơuưyđáắấéếíóốớúứýàằầèềìòồờùừỳảẳẩẻểỉỏổởủửỷãẵẫẽễĩõỗỡũữỹạặậẹệịọộợụựỵ",
|
||||
"AĂÂEÊIOÔƠUƯYĐÁẮẤÉẾÍÓỐỚÚỨÝÀẰẦÈỀÌÒỒỜÙỪỲẢẲẨẺỂỈỎỔỞỦỬỶÃẴẪẼỄĨÕỖỠŨỮỸẠẶẬẸỆỊỌỘỢỤỰỴ")
|
||||
|
||||
def addtone(v, t):
|
||||
return v.translate(tone[t])
|
||||
|
||||
entries = []
|
||||
|
||||
def emit(input, output):
|
||||
entries.append((input, output))
|
||||
print(f"{input}\t{output}")
|
||||
def up(s):
|
||||
c = s[0].translate(upper)
|
||||
if c == s[0]:
|
||||
c = s[0].upper()
|
||||
return c + s[1:]
|
||||
print(f"{up(input)}\t{up(output)}")
|
||||
def initialupper(s):
|
||||
return s[0].upper() + s[1:]
|
||||
|
||||
def emit(src, dst):
|
||||
entries.append((src, dst))
|
||||
print(f"{src}\t{dst}")
|
||||
usrc = initialupper(src)
|
||||
udst = initialupper(dst)
|
||||
if (usrc, udst) != (src, dst):
|
||||
print(f"{usrc}\t{udst}")
|
||||
|
||||
def vowel1():
|
||||
for v in "aeiouy":
|
||||
@@ -97,14 +98,6 @@ def mod1tone():
|
||||
for t in tone:
|
||||
emit(i+t, addtone(o, t))
|
||||
|
||||
modvowel = [
|
||||
("aw", "ă"),
|
||||
("aa", "â"),
|
||||
("ee", "ê"),
|
||||
("oo", "ô"),
|
||||
("ow", "ơ"),
|
||||
("uw", "ư"),
|
||||
]
|
||||
def tone1mod():
|
||||
# a+s+w -> ắ
|
||||
for i, o in modvowel:
|
||||
@@ -178,4 +171,5 @@ tone1mod()
|
||||
tone2mod()
|
||||
escape()
|
||||
final()
|
||||
emit("\\", "\\")
|
||||
onsets()
|
||||
|
||||
5212
map/telex.map
5212
map/telex.map
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user