should be treated as if
# it was plus . This is not borne out by the observed data, which
# suggests that plus is the more appropriate choice in some
# situations.
[g.$] { wai̯ → wai ;
wai̯ → uai̯ ;
[g.$] { wau̯ → wau ;
wau̯ → uau̯ ;
jau̯ → iau̯ ;
# Even though "ao" is not a diphthong in Spanish, Mandarin treats it as one.
[^jw] { ao } [^n] → au̯ ;
[^jw] { ao } n $vowel → au̯ ;
# Main pass: Phoneme to Hanzi conversion.
# This generally follows GB/T 17693.5-2009 表 1, unless otherwise noted.
::Null;
'.' → ;
ai̯ → 艾 ;
an } $not_vowel → 安 ;
au̯ → 奥 ;
a → 阿 ;
bai̯ → 拜 ;
ban } $not_vowel → 班 ;
bau̯ → 包 ;
ba → 巴 ;
ben } $not_vowel → 本 ;
be → 贝 ;
bin } $not_vowel → 宾 ;
bi → 比 ;
bja → 比亚 ;
bjen } $not_vowel → 比恩 ;
bje → 别 ;
bju → 比乌 ;
bon } $not_vowel → 邦 ;
bo → 博 ;
bun } $not_vowel → 本 ;
bu → 布 ;
bwan } $not_vowel → 布安 ;
bwa → 布阿 ;
bwen } $not_vowel → 布恩 ; # Should be be 本, per GB/T 17693.5-2009 表 1.
bwe → 布埃 ;
bwin } $not_vowel → 布因 ; # Nonstandard, but fits observed data.
bwi → 布伊 ;
bwo → 博 ;
b → 布 ;
βai̯ → 瓦伊 ;
βan } $not_vowel → 万 ;
βau̯ → 沃 ;
βa → 瓦 ;
βen } $not_vowel → 文 ;
βe → 韦 ;
βin } $not_vowel → 温 ;
βi → 维 ;
βja → 维亚 ;
βjen } $not_vowel → 维恩 ;
βje → 维耶 ;
βju → 维乌 ;
βon } $not_vowel → 翁 ;
βo → 沃 ;
βun } $not_vowel → 文 ;
βu → 武 ;
βwan } $not_vowel → 万 ;
βwa → 瓦 ;
βwen } $not_vowel → 文 ;
βwe → 武埃 ;
βwi → 维 ;
βwo → 沃 ;
β → 夫 ;
dai̯ → 代 ;
dan } $not_vowel → 丹 ;
dau̯ → 道 ;
da → 达 ;
dei̯ → 代 ;
den } $not_vowel → 登 ;
de → 德 ;
din } $not_vowel → 丁 ;
di → 迪 ;
dja → 迪亚 ;
djen } $not_vowel → 迪恩 ;
dje → 迭 ;
dju → 迪乌 ;
don } $not_vowel → 东 ;
do → 多 ;
dun } $not_vowel → 敦 ;
du → 杜 ;
dwan } $not_vowel → 端 ;
dwa → 杜阿 ;
dwen } $not_vowel → 敦 ;
dwe → 杜埃 ;
dwi → 杜伊 ;
dwo → 多 ;
d } $word_boundary → ;
d → 德 ;
ei̯ → 埃 ;
en } $not_vowel → 恩 ;
eu̯ → 欧 ;
e → 埃 ;
fai̯ → 法伊 ;
fan } $not_vowel → 凡 ;
fau̯ → 福 ;
fa → 法 ;
fe → 费 ;
fin } $not_vowel → 芬 ;
fi → 菲 ;
fja → 菲亚 ;
fjen } $not_vowel → 菲恩 ;
fje → 菲耶 ;
fju → 菲乌 ;
fon } $not_vowel → 丰 ;
fo → 福 ;
fun } $not_vowel → 丰 ;
fu → 富 ;
fwan } $not_vowel → 富安 ;
fwa → 富阿 ;
fwen } $not_vowel → 丰 ;
fwe → 富埃 ;
fwi → 富伊 ;
fwo → 福 ;
# The choice of 弗 vs. 夫 sounds simple according to the GB/T standard, but the
# data suggest otherwise. Ideally, 弗 should occur at the beginning of a
# morpheme (e.g. in "villafranca" 比利亚弗兰卡) and 夫 everywhere else. Since
# we don't have morpheme boundaries, we'll fudge it by writing 夫 at the end of
# a word and 弗 everywhere else.
f } $word_boundary → 夫 ;
f → 弗 ;
gai̯ → 盖 ;
gan } $not_vowel → 甘 ;
gau̯ → 高 ;
ga → 加 ;
gei̯ → 盖 ;
gen } $not_vowel → 根 ;
ge → 格 ;
gin } $not_vowel → 金 ;
gi → 吉 ;
gja → 吉亚 ;
gjen } $not_vowel → 吉恩 ;
gje → 吉耶 ;
gju → 吉乌 ;
gon } $not_vowel → 贡 ;
go → 戈 ;
gun } $not_vowel → 贡 ;
gu → 古 ;
gwan } [$] → 古安 ; # Nonstandard, but fits observed data.
gwan } $not_vowel → 关 ;
gwa → 瓜 ;
gwen } $not_vowel → 古恩 ;
gwe → 圭 ;
gwi → 圭 ;
gwo → 果 ;
g → 格 ;
in } $not_vowel → 因 ;
i → 伊 ;
ʝai̯ → 亚伊 ;
ʝan } $not_vowel → 扬 ;
ʝau̯ → 尧 ;
ʝa → 亚 ;
ʝen } $not_vowel → 延 ;
ʝe → 耶 ;
ʝin } $not_vowel → 因 ;
ʝi → 伊 ;
ʝon } $not_vowel → 永 ;
ʝo → 约 ;
ʝun } $not_vowel → 云 ;
ʝu → 尤 ;
ʝwan } $not_vowel → 元 ;
ʝwa → 尤阿 ;
ʝwen } $not_vowel → 云 ;
ʝwe → 尤埃 ;
ʝwi → 尤伊 ;
ʝwo → 约 ;
ʝ → 伊 ;
kai̯ → 凯 ;
kan } $not_vowel → 坎 ;
kau̯ → 考 ;
ka → 卡 ;
kei̯ → 凯 ;
ken } $not_vowel → 肯 ;
ke → 克 ;
kin } $not_vowel → 金 ;
ki → 基 ;
kja → 基亚 ;
kjen } $not_vowel → 基恩 ;
kje → 基耶 ;
kju → 基乌 ;
kon } $not_vowel → 孔 ;
ko → 科 ;
kun } $not_vowel → 昆 ;
ku → 库 ;
kwan } $not_vowel → 宽 ;
kwa → 夸 ;
kwen } $not_vowel → 昆 ;
kwe → 库埃 ;
kwin } $not_vowel → 昆 ;
kwi → 奎 ;
kwo → 阔 ;
k → 克 ;
lae } [^n] → 莱 ;
lai̯ → 莱 ;
lan } $not_vowel → 兰 ;
lau̯ → 劳 ;
la → 拉 ;
len } $not_vowel → 伦 ;
le → 莱 ;
lin } $not_vowel → 林 ;
li → 利 ;
lja → 利亚 ;
ljen } $not_vowel → 连 ;
lje → 列 ;
lju → 柳 ;
lon } $not_vowel → 隆 ;
lo → 洛 ;
lun } $not_vowel → 伦 ;
lu → 卢 ;
lwan } $not_vowel → 卢安 ;
lwa → 卢阿 ;
lwen } $not_vowel → 伦 ;
lwe → 卢埃 ;
lwi → 卢伊 ;
lwo → 洛 ;
l → 尔 ;
ʎan } $not_vowel → 良 ;
ʎau̯ → 廖 ;
ʎa → 利亚 ;
ʎen } $not_vowel → 连 ;
ʎe → 列 ;
ʎin } $not_vowel → 林 ;
ʎi → 利 ;
ʎon } $not_vowel → 利翁 ;
ʎo → 略 ;
ʎu → 柳 ;
ʎwan } $not_vowel → 柳安 ;
ʎwa → 柳阿 ;
ʎwen } $not_vowel → 柳恩 ;
ʎwe → 柳埃 ;
ʎwi → 柳伊 ;
ʎwo → 略 ;
ʎ → 尔 ;
mai̯ → 迈 ;
man } $not_vowel → 曼 ;
martin → 马丁 ;
mau̯ → 毛 ;
ma → 马 ;
men } $not_vowel → 门 ;
me → 梅 ;
min } $not_vowel → 明 ;
mi → 米 ;
mja → 米亚 ;
mjen } $not_vowel → 缅 ;
mje → 米耶 ;
mju → 缪 ;
mon } $not_vowel → 蒙 ;
mo → 莫 ;
mun } $not_vowel → 蒙 ;
mu → 穆 ;
mwan } $not_vowel → 穆安 ;
mwa → 穆阿 ;
mwen } $not_vowel → 门 ;
mwe → 穆埃 ;
mwin } $not_vowel → 穆因 ; # Nonstandard, but fits observed data.
mwi → 穆伊 ;
mwo → 莫 ;
m → 姆 ;
nai̯ → 奈 ;
nan } $not_vowel → 南 ;
nau̯ → 瑙 ;
na → 纳 ;
nen } $not_vowel → 嫩 ;
ne → 内 ;
nin } $not_vowel → 宁 ;
ni → 尼 ;
nja → 尼亚 ;
njen } $not_vowel → 年 ;
nje → 涅 ;
nju → 纽 ;
non } $not_vowel → 农 ;
no → 诺 ;
nun } $not_vowel → 嫩 ;
nu → 努 ;
nwan } $not_vowel → 努安 ;
nwa → 努阿 ;
nwen } $not_vowel → 农 ;
nwe → 努埃 ;
nwi → 努伊 ;
nwo → 诺 ;
n → 恩 ;
ɲan } $not_vowel → 尼扬 ;
ɲau̯ → 尼奥 ;
ɲa → 尼亚 ;
ɲen } $not_vowel → 年 ;
ɲe → 涅 ;
ɲin } $not_vowel → 宁 ;
ɲi → 尼 ;
ɲon } $not_vowel → 尼翁 ;
ɲo → 尼奥 ;
ɲu → 纽 ;
ɲwan } $not_vowel → 纽安 ;
ɲwa → 纽阿 ;
ɲwen } $not_vowel → 纽恩 ;
ɲwe → 纽埃 ;
ɲwi → 纽伊 ;
ɲwo → 尼奥 ;
on } $not_vowel → 翁 ;
ou̯ → 欧 ;
o → 奥 ;
pai̯ → 派 ;
pan } $not_vowel → 潘 ;
pau̯ → 保 ;
pa → 帕 ;
pen } $not_vowel → 彭 ;
pe → 佩 ;
pin } $not_vowel → 平 ;
pi → 皮 ;
pja → 皮亚 ;
pjen } $not_vowel → 皮恩 ;
pje → 彼 ;
pju → 皮乌 ;
pon } $not_vowel → 蓬 ;
po → 波 ;
pun } $not_vowel → 蓬 ;
pu → 普 ;
pwan } $not_vowel → 普安 ;
pwa → 普阿 ;
pwen } $not_vowel → 蓬 ;
pwe → 普埃 ;
pwi → 普伊 ;
pwo → 波 ;
p → 普 ;
rai̯ → 赖 ;
ran } $not_vowel → 兰 ;
rau̯ → 劳 ;
ra → 拉 ;
ren } $not_vowel → 伦 ;
re → 雷 ;
rin } $not_vowel → 林 ;
ri → 里 ;
rja → 里亚 ;
rjen } $not_vowel → 连 ;
rje → 列 ;
rju → 留 ;
ron } $not_vowel → 龙 ;
ro → 罗 ;
run } $not_vowel → 伦 ;
ru → 鲁 ;
rwan } $not_vowel → 鲁安 ;
rwa → 鲁阿 ;
rwen } $not_vowel → 伦 ;
rwe → 鲁埃 ;
rwi → 鲁伊 ;
rwo → 罗 ;
r → R ;
sai̯ → 赛 ;
san } $not_vowel → 桑 ;
sau̯ → 绍 ;
sa → 萨 ;
sen } $not_vowel → 森 ;
se → 塞 ;
sin } $not_vowel → 辛 ;
si → 西 ;
sja → 西亚 ;
sjen } $not_vowel → 先 ;
sje → 谢 ;
sju → 休 ;
son } $not_vowel → 松 ;
so → 索 ;
sun } $not_vowel → 孙 ;
su → 苏 ;
swan } $not_vowel → 苏安 ;
swa → 苏阿 ;
swen } $not_vowel → 孙 ;
swe → 苏埃 ;
swi → 绥 ;
swo → 索 ;
s → 斯 ;
tai̯ → 泰 ;
tan } $not_vowel → 坦 ;
tau̯ → 陶 ;
ta → 塔 ;
tei̯ → 泰 ;
ten } $not_vowel → 滕 ;
te → 特 ;
tin } $not_vowel → 廷 ;
ti → 蒂 ;
tja → 蒂亚 ;
tjen } $not_vowel → 蒂恩 ;
tje → 铁 ;
tju → 蒂乌 ;
ton } $not_vowel → 通 ;
to → 托 ;
# The rules for /ts/ (tz in the orthography) are nonstandard and derived
# entirely from the observed data. They apply mostly to native toponyms
# in Mexico.
tsa → 察 ;
tsen } $not_vowel → 岑 ;
tse → 采 ;
tsin } $not_vowel → 钦 ;
tsi → 齐 ;
tso → 措 ;
tsun } $not_vowel → 聪 ;
tsu → 楚 ;
ts → 茨 ;
tun } $not_vowel → 通 ;
tu → 图 ;
twan } $not_vowel → 图安 ;
twa → 图阿 ;
twen } $not_vowel → 通 ;
twe → 图埃 ;
twi → 图伊 ;
two → 托 ;
t → 特 ;
ʧai̯ → 柴 ;
ʧan } $not_vowel → 钱 ;
ʧau̯ → 乔 ;
ʧa → 查 ;
ʧen } $not_vowel → 琴 ;
ʧe → 切 ;
ʧin } $not_vowel → 钦 ;
ʧi → 奇 ;
ʧjan } $not_vowel → 钱 ;
ʧja → 恰 ;
ʧjen } $not_vowel → 钱 ;
ʧje → 切 ;
ʧjon } $not_vowel → 琼 ;
ʧju → 丘 ;
ʧon } $not_vowel → 琼 ;
ʧo → 乔 ;
ʧun } $not_vowel → 琼 ; # Should be 春, per GB/T 17693.5-2009 表 1.
ʧu → 丘 ;
ʧwan } $not_vowel → 丘安 ;
ʧwa → 丘阿 ;
ʧwen } $not_vowel → 琼 ;
ʧwe → 丘埃 ;
ʧwi → 崔 ;
ʧwo → 乔 ;
ʧ → 奇 ;
un } $not_vowel → 温 ;
u → 乌 ;
wan } $not_vowel → 万 ;
wa → 瓦 ;
wen } $not_vowel → 温 ;
we → 韦 ;
win } $not_vowel → 温 ;
wi → 维 ;
won } $not_vowel → 翁 ; # Unseen.
wo → 沃 ;
xai̯ → 海 ;
xan } $not_vowel → 汉 ;
xau̯ → 豪 ;
xa → 哈 ;
xei̯ → 黑 ;
xen } $not_vowel → 亨 ;
xe → 赫 ;
xin } $not_vowel → 欣 ;
xi → 希 ;
xja → 希亚 ;
xjen } $not_vowel → 希恩 ;
xje → 希耶 ;
xju → 休 ;
xon } $not_vowel → 洪 ;
xo → 霍 ;
xun } $not_vowel → 洪 ;
xu → 胡 ;
xwan } $not_vowel → 胡安 ;
xwa → 华 ;
xwen } $not_vowel → 洪 ;
xwe → 胡埃 ;
xwi → 惠 ;
xwo → 霍 ;
x → 赫 ;
# 尔 simplification pass. The idea is to drop most occurences of 尔
# corresponding to (not to or ) from a word if there is another /l/
# sound nearby. There is a vague pattern like this in the data, but the details
# remain to be determined. At the moment, this does nothing, it just puts 尔 in
# for every in a syllable coda.
::Null;
$r = [R利拉];
#
#
# R } . $r → ;
# R } .. $r → ;
# R } ... $r → ;
# R } .... $r → ;
R → 尔 ;
# Dong-nan-xi-hai pass. Per GB/T 17693.5-2009 表 1, 注 4, replace confusing
# characters at the beginning and end of a word.
::Null;
$word_boundary { 东 → 栋 ;
$word_boundary { 南 → 楠 ;
$word_boundary { 西 → 锡 ;
海 } $word_boundary → 亥 ;
::NFC;
]]>