Support AZIK (#238)

This commit is contained in:
Tokuhiro Matsuno
2023-01-26 11:33:26 +09:00
committed by GitHub
parent ab149ff95a
commit fcebd87b07
4 changed files with 855 additions and 0 deletions

4
developers/README.md Normal file
View File

@ -0,0 +1,4 @@
# developers/
akaza そのものの開発に関わる人が使うためのスクリプトを保管するためのディレクトリです。

218
developers/azik.pl Normal file
View File

@ -0,0 +1,218 @@
use strict;
use warnings FATAL => "all";
use v5.10.0;
use utf8;
# romkan/azik.yml の生成スクリプト
binmode STDOUT, ":utf8";
binmode STDERR, ":utf8";
sub run {
my ($name, $s) = @_;
my @s = split /\n/, $s;
my @shiins = split /\s+/, shift @s;
if ($shiins[0] eq "") {
shift @shiins;
}
say " # $name";
for my $i (0..@shiins-1) {
# 「あ」行用の特別処置
$shiins[$i] = "" if $shiins[$i] eq "*";
}
for my $cols (@s) {
my @cols = split /\s+/, $cols;
my $boin = shift @cols;
for my $i (0..@cols-1) {
my $col = $cols[$i];
next if !defined($col) || $col eq "" || $col eq "*";
say " @{[$shiins[$i]]}$boin: $col";
}
}
say"";
}
say "---";
say "mapping:";
say " # generated by developers/azik.pl";
say " # http://hp.vector.co.jp/authors/VA002116/azik/azikinfo.htm";
run('清音(あ行〜わ行)', <<'EOT');
* k s t n h f m y r w
a
i
u
e
o
EOT
run('撥音拡張', <<'EOT');
k s t n h f m y r w
z かん さん たん なん はん ふぁん まん やん らん わん
n かん さん たん はん ふぁん * やん らん わん
k きん しん ちん にん ひん ふぃん みん りん うぃん
j くん すん つん ぬん ふん ふん むん ゆん るん
d けん せん てん ねん へん ふぇん めん れん うぇん
l こん そん とん のん ほん ふぉん もん よん ろん うぉん
EOT
run('二重母音拡張', <<'EOT');
k s t n h f m y r w
q かい さい たい ない はい ふぁい まい やい らい わい
h くう すう つう ぬう ふう ふう むう ゆう るう
w けい せい てい ねい へい ふぇい めい れい
p こう そう とう のう ほう ふぉー もう よう ろう うぉー
EOT
#  発音拡張キーのZは左手小指のため多少打ちにくい。このため、Nを発音拡張キーの互換キーとして割り当てている。(mnは例外的に、特殊拡張として【もの】が入力される)
run('撥音拡張互換キー', <<'EOT');
k s t n h f m y r w
n かん さん たん はん ふぁん もの やん らん わん
EOT
run('濁音、半濁音 撥音拡張、二重母音拡張', <<'EOT');
g z d b p
a
i
u
e
o
EOT
run('濁音、半濁音 撥音拡張、二重母音拡張', <<'EOT');
g z d b p
z がん ざん だん ばん ぱん
n がん ざん だん ばん ぱん
k ぎん じん ぢん びん ぴん
j ぐん ずん づん ぶん ぷん
d げん ぜん でん べん ぺん
l ごん ぞん どん ぼん ぽん
EOT
run('濁音、半濁音 撥音拡張、二重母音拡張', <<'EOT');
g z d b p
q がい ざい だい ばい ぱい
h ぐう ずう づう ぶう ぷう
w げい ぜい でい べい ぺい
p ごう ぞう どう ぼう ぽう
EOT
run('ザ行は打ちにくいので以下のようにしても打てるようにする。', <<'EOT');
z
c
v ざい
x ぜい
EOT
run('拗音、拗音互換', <<'EOT');
ky kg sy x ty c ny ng hy hg my mg ry
a きゃ きゃ しゃ しゃ ちゃ ちゃ にゃ にゃ ひゃ ひゃ みゃ みゃ りゃ
u きゅ きゅ しゅ しゅ ちゅ ちゅ にゅ にゅ ひゅ ひゅ みゅ みゅ りゅ
e きぇ きぇ しぇ しぇ ちぇ ちぇ にぇ にぇ ひぇ ひぇ みぇ みぇ りぇ
o きょ きょ しょ しょ ちょ ちょ にょ にょ ひょ ひょ みょ みょ りょ
EOT
run('拗音、拗音互換', <<'EOT');
ky kg sy x ty c ny ng hy hg my mg ry
z きゃん きゃん しゃん しゃん ちゃん ちゃん にゃん にゃん ひゃん ひゃん みゃん みゃん りゃん
n きゃん きゃん しゃん しゃん ちゃん ちゃん にゃん にゃん ひゃん ひゃん みゃん みゃん りゃん
j きゅん きゅん しゅん しゅん ちゅん ちゅん にゅん にゅん ひゅん ひゅん みゅん みゅん りゅん
d きぇん きぇん しぇん しぇん ちぇん ちぇん にぇん にぇん ひぇん ひぇん みぇん みぇん りぇん
l きょん きょん しょん しょん ちょん ちょん にょん にょん ひょん ひょん みょん みょん りょん
EOT
run('拗音、拗音互換', <<'EOT');
ky kg sy x ty c ny ng hy hg my mg ry
q きゃい きゃい しゃい しゃい ちゃい ちゃい にゃい にゃい ひゃい ひゃい みゃい みゃい りゃい
h きゅう きゅう しゅう しゅう ちゅう ちゅう にゅう にゅう ひゅう ひゅう みゅう みゅう りゅう
w きぇい きぇい しぇい しぇい ちぇい ちぇい にぇい にぇい ひぇい ひぇい みぇい みぇい りぇい
p きょう きょう しょう しょう ちょう ちょう にょう にょう ひょう ひょう みょう みょう りょう
EOT
run('拗音 (濁音、半濁音)', <<'EOT');
gy zy j by py pg
a ぎゃ じゃ じゃ びゃ ぴゃ ぴゃ
u ぎゅ じゅ じゅ びゅ ぴゅ ぴゅ
e ぎぇ じぇ じぇ びぇ ぴぇ ぴぇ
o ぎょ じょ じょ ぴょ ぴょ ぴょ
EOT
run('拗音 (濁音、半濁音)', <<'EOT');
gy zy j by py pg
z ぎゃん じゃん じゃん びゃん ぴゃん ぴゃん
n ぎゃん じゃん じゃん びゃん ぴゃん ぴゃん
j ぎゅん じゅん じゅん びゅん ぴゅん ぴゅん
d ぎぇん じぇん じぇん びぇん ぴぇん ぴぇん
l ぎょん じょん じょん びょん ぴょん ぴょん
EOT
run('拗音 (濁音、半濁音)', <<'EOT');
gy zy j by py pg
q ぎゃい じゃい じゃい びゃい ぴゃい ぴゃい
h ぎゅう じゅう じゅう びゅう ぴゅう ぴゅう
w ぎぇい じぇい じぇい びぇい ぴぇい ぴぇい
p ぎょう じょう じょう びょう ぴょう ぴょう
EOT
run('拗音 (外来語、他)', <<'EOT');
f v tg dc w ws l ly
a ふぁ
i ふぃ てぃ でぃ うぃ
u とぅ どぅ
e ふぇ うぇ
o ふぉ うぉ
EOT
# 撥音拡張、二重母音拡張
run('拗音 (外来語、他)', <<'EOT');
f v tg dc w ws l ly
z ふぁん ぁん
k ふぃん ぃん てぃん でぃん うぃん ぃん
j ふん とぅん どぅん ぅん ゅん
d ふぇん ぇん うぇん ぇん
l ふぉん ぉん をん うぉん ぉん ょん
n ふぁん ぁん
EOT
# 二重母音拡張
run('拗音 (外来語、他)', <<'EOT');
f v tg dc w ws l ly
q ふぁい ぁい ぁい ゃい
h ふう とぅう どぅう ぅう ゅう
w ふぇい ぇい うぇい ぇい
p ふぉお ぉお をお うぉお ぉお ょお
EOT
say " # 促音、撥音、長音符";
say " \";\": っ";
say " q: ん";
say " \"-\": ー";
say " \":\": ー";
say "";
# 特殊拡張
my $t = <<'EOT';
  こと   した     たち     ひと  
  わた    もの    ます    です 
  かも    ため    でも    から 
  する    たら    なる    よる 
  られ    ざる    また    たび 
  ねば    びと    がら    ごと 
  にち    だち    われ     
EOT
$t =~ tr/[-]/[a-z]/;
say " # 特殊拡張";
for my $line (split /\n/, $t) {
my @cells = split /\s+/, $line;
while (@cells) {
my $k = shift @cells;
my $v = shift @cells;
say " $k: $v";
}
}

View File

@ -197,4 +197,15 @@ mod tests {
assert_eq!(converter.to_hiragana("tso"), "つぉ");
Ok(())
}
#[test]
fn test_azik() -> anyhow::Result<()> {
let _ = env_logger::builder()
.filter_level(LevelFilter::Info)
.try_init();
let converter = RomKanConverter::new("../romkan/azik.yml")?;
assert_eq!(converter.to_hiragana("dn"), "だん");
Ok(())
}
}

622
romkan/azik.yml Normal file
View File

@ -0,0 +1,622 @@
---
mapping:
# generated by developers/azik.pl
# http://hp.vector.co.jp/authors/VA002116/azik/azikinfo.htm
# 清音(あ行〜わ行)
a:
ka:
sa:
ta:
na:
ha:
fa:
ma:
ya:
ra:
i:
ki:
si:
ti:
ni:
hi:
fi:
mi:
u:
ku:
su:
tu:
nu:
hu:
fu:
mu:
yu:
ru:
e:
ke:
se:
te:
ne:
he:
fe:
me:
o:
ko:
so:
to:
no:
ho:
fo:
mo:
yo:
ro:
# 撥音拡張
kz: かん
sz: さん
tz: たん
nz: なん
hz: はん
fz: ふぁん
mz: まん
yz: やん
rz: らん
wz: わん
kn: かん
sn: さん
tn: たん
nn:
hn: はん
fn: ふぁん
yn: やん
rn: らん
wn: わん
kk: きん
sk: しん
tk: ちん
nk: にん
hk: ひん
fk: ふぃん
mk: みん
yk: りん
rk: うぃん
kj: くん
sj: すん
tj: つん
nj: ぬん
hj: ふん
fj: ふん
mj: むん
yj: ゆん
rj: るん
kd: けん
sd: せん
td: てん
nd: ねん
hd: へん
fd: ふぇん
md: めん
yd: れん
rd: うぇん
kl: こん
sl: そん
tl: とん
nl: のん
hl: ほん
fl: ふぉん
ml: もん
yl: よん
rl: ろん
wl: うぉん
# 二重母音拡張
kq: かい
sq: さい
tq: たい
nq: ない
hq: はい
fq: ふぁい
mq: まい
yq: やい
rq: らい
wq: わい
kh: くう
sh: すう
th: つう
nh: ぬう
hh: ふう
fh: ふう
mh: むう
yh: ゆう
rh: るう
kw: けい
sw: せい
tw: てい
nw: ねい
hw: へい
fw: ふぇい
mw: めい
yw: れい
kp: こう
sp: そう
tp: とう
np: のう
hp: ほう
fp: ふぉー
mp: もう
yp: よう
rp: ろう
wp: うぉー
# 撥音拡張互換キー
kn: かん
sn: さん
tn: たん
nn:
hn: はん
fn: ふぁん
mn: もの
yn: やん
rn: らん
wn: わん
# 濁音、半濁音 撥音拡張、二重母音拡張
ga:
za:
da:
ba:
pa:
gi:
zi:
di:
bi:
pi:
gu:
zu:
du:
bu:
pu:
ge:
ze:
de:
be:
pe:
go:
zo:
do:
bo:
po:
# 濁音、半濁音 撥音拡張、二重母音拡張
gz: がん
zz: ざん
dz: だん
bz: ばん
pz: ぱん
gn: がん
zn: ざん
dn: だん
bn: ばん
pn: ぱん
gk: ぎん
zk: じん
dk: ぢん
bk: びん
pk: ぴん
gj: ぐん
zj: ずん
dj: づん
bj: ぶん
pj: ぷん
gd: げん
zd: ぜん
dd: でん
bd: べん
pd: ぺん
gl: ごん
zl: ぞん
dl: どん
bl: ぼん
pl: ぽん
# 濁音、半濁音 撥音拡張、二重母音拡張
gq: がい
zq: ざい
dq: だい
bq: ばい
pq: ぱい
gh: ぐう
zh: ずう
dh: づう
bh: ぶう
ph: ぷう
gw: げい
zw: ぜい
dw: でい
bw: べい
pw: ぺい
gp: ごう
zp: ぞう
dp: どう
bp: ぼう
pp: ぽう
# ザ行は打ちにくいので以下のようにしても打てるようにする。
zc:
zv: ざい
zx: ぜい
# 拗音、拗音互換
kya: きゃ
kga: きゃ
sya: しゃ
xa: しゃ
tya: ちゃ
ca: ちゃ
nya: にゃ
nga: にゃ
hya: ひゃ
hga: ひゃ
mya: みゃ
mga: みゃ
rya: りゃ
kyu: きゅ
kgu: きゅ
syu: しゅ
xu: しゅ
tyu: ちゅ
cu: ちゅ
nyu: にゅ
ngu: にゅ
hyu: ひゅ
hgu: ひゅ
myu: みゅ
mgu: みゅ
ryu: りゅ
kye: きぇ
kge: きぇ
sye: しぇ
xe: しぇ
tye: ちぇ
ce: ちぇ
nye: にぇ
nge: にぇ
hye: ひぇ
hge: ひぇ
mye: みぇ
mge: みぇ
rye: りぇ
kyo: きょ
kgo: きょ
syo: しょ
xo: しょ
tyo: ちょ
co: ちょ
nyo: にょ
ngo: にょ
hyo: ひょ
hgo: ひょ
myo: みょ
mgo: みょ
ryo: りょ
# 拗音、拗音互換
kyz: きゃん
kgz: きゃん
syz: しゃん
xz: しゃん
tyz: ちゃん
cz: ちゃん
nyz: にゃん
ngz: にゃん
hyz: ひゃん
hgz: ひゃん
myz: みゃん
mgz: みゃん
ryz: りゃん
kyn: きゃん
kgn: きゃん
syn: しゃん
xn: しゃん
tyn: ちゃん
cn: ちゃん
nyn: にゃん
ngn: にゃん
hyn: ひゃん
hgn: ひゃん
myn: みゃん
mgn: みゃん
ryn: りゃん
kyj: きゅん
kgj: きゅん
syj: しゅん
xj: しゅん
tyj: ちゅん
cj: ちゅん
nyj: にゅん
ngj: にゅん
hyj: ひゅん
hgj: ひゅん
myj: みゅん
mgj: みゅん
ryj: りゅん
kyd: きぇん
kgd: きぇん
syd: しぇん
xd: しぇん
tyd: ちぇん
cd: ちぇん
nyd: にぇん
ngd: にぇん
hyd: ひぇん
hgd: ひぇん
myd: みぇん
mgd: みぇん
ryd: りぇん
kyl: きょん
kgl: きょん
syl: しょん
xl: しょん
tyl: ちょん
cl: ちょん
nyl: にょん
ngl: にょん
hyl: ひょん
hgl: ひょん
myl: みょん
mgl: みょん
ryl: りょん
# 拗音、拗音互換
kyq: きゃい
kgq: きゃい
syq: しゃい
xq: しゃい
tyq: ちゃい
cq: ちゃい
nyq: にゃい
ngq: にゃい
hyq: ひゃい
hgq: ひゃい
myq: みゃい
mgq: みゃい
ryq: りゃい
kyh: きゅう
kgh: きゅう
syh: しゅう
xh: しゅう
tyh: ちゅう
ch: ちゅう
nyh: にゅう
ngh: にゅう
hyh: ひゅう
hgh: ひゅう
myh: みゅう
mgh: みゅう
ryh: りゅう
kyw: きぇい
kgw: きぇい
syw: しぇい
xw: しぇい
tyw: ちぇい
cw: ちぇい
nyw: にぇい
ngw: にぇい
hyw: ひぇい
hgw: ひぇい
myw: みぇい
mgw: みぇい
ryw: りぇい
kyp: きょう
kgp: きょう
syp: しょう
xp: しょう
typ: ちょう
cp: ちょう
nyp: にょう
ngp: にょう
hyp: ひょう
hgp: ひょう
myp: みょう
mgp: みょう
ryp: りょう
# 拗音 (濁音、半濁音)
gya: ぎゃ
zya: じゃ
ja: じゃ
bya: びゃ
pya: ぴゃ
pga: ぴゃ
gyu: ぎゅ
zyu: じゅ
ju: じゅ
byu: びゅ
pyu: ぴゅ
pgu: ぴゅ
gye: ぎぇ
zye: じぇ
je: じぇ
bye: びぇ
pye: ぴぇ
pge: ぴぇ
gyo: ぎょ
zyo: じょ
jo: じょ
byo: ぴょ
pyo: ぴょ
pgo: ぴょ
# 拗音 (濁音、半濁音)
gyz: ぎゃん
zyz: じゃん
jz: じゃん
byz: びゃん
pyz: ぴゃん
pgz: ぴゃん
gyn: ぎゃん
zyn: じゃん
jn: じゃん
byn: びゃん
pyn: ぴゃん
pgn: ぴゃん
gyj: ぎゅん
zyj: じゅん
jj: じゅん
byj: びゅん
pyj: ぴゅん
pgj: ぴゅん
gyd: ぎぇん
zyd: じぇん
jd: じぇん
byd: びぇん
pyd: ぴぇん
pgd: ぴぇん
gyl: ぎょん
zyl: じょん
jl: じょん
byl: びょん
pyl: ぴょん
pgl: ぴょん
# 拗音 (濁音、半濁音)
gyq: ぎゃい
zyq: じゃい
jq: じゃい
byq: びゃい
pyq: ぴゃい
pgq: ぴゃい
gyh: ぎゅう
zyh: じゅう
jh: じゅう
byh: びゅう
pyh: ぴゅう
pgh: ぴゅう
gyw: ぎぇい
zyw: じぇい
jw: じぇい
byw: びぇい
pyw: ぴぇい
pgw: ぴぇい
gyp: ぎょう
zyp: じょう
jp: じょう
byp: びょう
pyp: ぴょう
pgp: ぴょう
# 拗音 (外来語、他)
fa: ふぁ
va: う゛ぁ
tga:
dca:
fi: ふぃ
vi: う゛ぃ
tgi: てぃ
dci: でぃ
wi: うぃ
wsi:
fu:
vu: う゛
tgu: とぅ
dcu: どぅ
wu:
wsu:
fe: ふぇ
ve: う゛ぇ
tge: うぇ
dce:
fo: ふぉ
vo: う゛ぉ
tgo:
dco: うぉ
wo:
wso:
# 拗音 (外来語、他)
fz: ふぁん
vz: う゛ぁん
tgz:
dcz:
fk: ふぃん
vk: う゛ぃん
tgk: てぃん
dck: でぃん
wk: うぃん
wsk: ぃん
fj: ふん
vj: う゛ん
tgj: とぅん
dcj: どぅん
wj: ぅん
wsj: ゅん
fd: ふぇん
vd: う゛ぇん
tgd: うぇん
dcd: ぇん
fl: ふぉん
vl: う゛ぉん
tgl: をん
dcl: うぉん
wl: ぉん
wsl: ょん
fn: ふぁん
vn: う゛ぁん
tgn:
dcn:
# 拗音 (外来語、他)
fq: ふぁい
vq: う゛ぁい
tgq: ぁい
dcq: ゃい
fh: ふう
vh: う゛う
tgh: とぅう
dch: どぅう
wh: ぅう
wsh: ゅう
fw: ふぇい
vw: う゛ぇい
tgw: うぇい
dcw: ぇい
fp: ふぉお
vp: う゛ぉお
tgp: をお
dcp: うぉお
wp: ぉお
wsp: ょお
# 促音、撥音、長音符
";":
q:
"-":
":":
# 特殊拡張
kt: こと
st: した
tt: たち
ht: ひと
wt: わた
mn: もの
ms: ます
ds: です
km: かも
tm: ため
dm: でも
kr: から
sr: する
tr: たら
nr: なる
yr: よる
rr: られ
zr: ざる
mt: また
tb: たび
nb: ねば
bt: びと
gr: がら
gt: ごと
nt: にち
dt: だち
wr: われ