ローマ字変換テーブルの差し換え対応。
1 parent 989a7c0 commit 181900bae8eaae5a46245ed3ca14ec9c5d156ab8
@tamra tamra authored on 5 Mar 2005
Showing 5 changed files
View
333
scim-wnn/data/scim-wnn-def.rkt 0 → 100644
# utf8
 
a
i
u
e
o
ka
ki
ku
ke
ko
sa
si
su
se
so
ta
ti
tu
te
to
na
ni
nu
ne
no
ha
hi
hu
he
ho
ma
mi
mu
me
mo
ya
yi
yu
ye いぇ
yo
ra
ri
ru
re
ro
la
li
lu
le
lo
wa
wi
wu
we
wo
nn
N
xa
xi
xu
xe
xo
xtu
xya
xyu
xyo
ga
gi
gu
ge
go
za
zi
zu
ze
zo
da
di
du
de
do
ba
bi
bu
be
bo
pa
pi
pu
pe
po
kya きゃ
kyi きぃ
kyu きゅ
kye きぇ
kyo きょ
sya しゃ
syi
syu しゅ
sye しぇ
syo しょ
sha しゃ
shi
shu しゅ
she しぇ
sho しょ
cha ちゃ
chi
chu ちゅ
che ちぇ
cho ちょ
tya ちゃ
tyi てぃ
tyu ちゅ
tye ちぇ
tyo ちょ
dya ぢゃ
dyi でぃ
dyu ぢゅ
dye ぢぇ
dyo ぢょ
va ヴぁ
vi ヴぃ
vu
ve ヴぇ
vo ヴぉ
zya じゃ
zyi じぃ
zyu じゅ
zye じぇ
zyo じょ
ja じゃ
ji
ju じゅ
je じぇ
jo じょ
fa ふぁ
fi ふぃ
fu
fe ふぇ
fo ふぉ
hya ひゃ
hyi ひぃ
hyu ひゅ
hye ひぇ
hyo ひょ
rya りゃ
ryi りぃ
ryu りゅ
rye りぇ
ryo りょ
nya にゃ
nyi にぃ
nyu にゅ
nye にぇ
nyo にょ
gya ぎゃ
gyi ぎぃ
gyu ぎゅ
gye ぎぇ
gyo ぎょ
bya びゃ
byi びぃ
byu びゅ
bye びぇ
byo びょ
pya ぴゃ
pyi ぴぃ
pyu ぴゅ
pye ぴぇ
pyo ぴょ
mya みゃ
myi みぃ
myu みゅ
mye みぇ
myo みょ
Za
Zb
Zc
Zd
Ze
Zf
Zg
Zh
Zi
Zj
Zk
Zl
Zm
Zn
Zo
Zp
Zq
Zr
Zs
Zt
Zu
Zv
Zw
Zx
Zy
Zz
ZA
ZB
ZC
ZD
ZE
ZF
ZG
ZH
ZI
ZJ
ZK
ZL
ZM
ZN
ZO
ZP
ZQ
ZR
ZS
ZT
ZU
ZV
ZW
ZX
ZY
ZZ
Z1
Z2
Z3
Z4
Z5
Z6
Z7
Z8
Z9
Z0
 
Z^
z1
z2
z3
z4
z5
z6
z7
z8
z9
z0
z-
z^
z\\
z,
z.
z/
 
-
[
]
.
,
{
}
@
:
;
?
<
>
*
+
/
\\
 
z-
z[
z]
z.
z,
z{
z}
z@
z:
z;
z?
z<
z>
z* ×
z+ ±
z/
 
Z-
Z[
Z]
Z.
Z,
Z{
Z}
Z@
Z:
Z;
Z?
Z<
Z>
Z*
Z+
Z/
Z\\
Z,  
 
zb °
zc
zd
zf
zg
zh
zj
zk
zl
zm
zn
zp
zq
zr
zs
zt
zv
zw
zx :-
View
65
scim-wnn/src/romkan.cpp
}
 
 
/*!
\fn Romkan::loadTable(const String &filename)
*/
void Romkan::loadTable(const String &filename)
{
RomkanTable.clear();
keepTable.clear();
FILE *f = fopen(filename.c_str(),"r");
if (!f) return;
while(-1) {
char s[256];
if(fgets(s,256,f) == NULL) break;
String k,r;
unsigned int i = 0;
for(;s[i];i ++) {
if (s[i] == ' ') {
if (k.size()) break;
else continue;
}
if (s[i] == '#') break;
if ((s[i] == '\\') && (s[i + 1] != 0)) {
i ++;
}
k += s[i];
}
if ((!k.size()) || (s[i] == 0) || (s[i] == '#')) continue;
i ++;
for(;s[i];i ++) {
if ((s[i] == '#') || (s[i] == '\n')) break;
if (s[i] == ' ') {
if (r.size()) break;
else continue;
}
if ((s[i] == '\\') && (s[i + 1] != 0)) {
i ++;
}
r += s[i];
}
if (!r.size()) continue;
RomkanTable.insert(pair<String,WideString>(k,utf8_mbstowcs(r)));
for(unsigned int j = k.length();j > 1;j --) {
String keep = k.substr(0,j - 1);
if ((keepTable.find(keep) == keepTable.end()) && (RomkanTable.find(keep) == RomkanTable.end())) {
keepTable.insert(keep);
}
}
}
fclose(f);
}
 
 
/*!
\fn Romkan::init()
*/
void Romkan::init()
{
String(SCIM_DEFAULT_WNN_KEY_ROMKAN_ASCIIMODE)));
scim_string_to_key_list(key_wascii_mode,
config->read(String(SCIM_CONFIG_WNN_KEY_ROMKAN_WASCIIMODE),
String(SCIM_DEFAULT_WNN_KEY_ROMKAN_WASCIIMODE)));
String rk_table = config->read(SCIM_CONFIG_WNN_ROMKAN_TABLE_FILE,String(SCIM_DEFAULT_WNN_ROMKAN_TABLE_FILE));
if (rk_table.size()) {
loadTable(rk_table);
return;
}
 
RomkanTable.clear();
keepTable.clear();
 
}
}
i += 2;
}
 
 
}
 
 
}
 
 
 
 
View
scim-wnn/src/romkan.h
View
scim-wnn/src/romkan_table.h
View
scim-wnn/src/scim_wnn_def.h