1# @Language: Markdown
2# @Software: VS Code
3# @Author : Di Wang
4# @Email : [email protected]
日语罗马字化与计算机输入
上文My Rime configuration中提到了日语输入的两个小问题, 第一个是拨音的输入, 第二个是如何处理动词变形. 在尝试解决的过程中发现了现行日语输入的混乱之处…
ヘポン式ローマ字 and 訓令式ローマ字
对于日语假名的罗马字化, 简言之, 前者是美国传教士Hepburn
基于英语发音创建的假名与罗马字的对应表, 对于英语使用者来说拼读更符合英语的习惯, 比如つ
记为tsu
. 而后者是日本政府公布的标准, つ
记为tu
.
但是常用的商业输入法, 如macOS与iOS日语输入法, Microsoft IME, Google 日语输入法, 为了用户的输入方便都使用了二者相结合的方式. 也就是说, 主要基于訓令式, 但一些不冲突的码会支持ヘポン式, 比如(ja ju je jo
).
特殊的ん
传统Hepburn
记法中, ん可以写成m
或n
, 比如群馬(ぐんま): Gumma
. 但新式Hepburn
记法中则和訓令式相同:
对于记法, 二者统一, 在元音和y
之前写为n'
, 其他情况记为n
, 例:
- 簡易(かんい): kan’i
- カニ(かに): kani
但对于计算机输入, 输入单引号显得繁琐. 一是日语键盘配列中需要键入Shift+7
来输出'
. 二是手机端输入单引号需要切换面板.
因此虽然罗马字记法中使用n
来输入ん
, 但为了减少歧义, 更多情况下使用nn
来输入ん
.
这样一来, 记法就与编码不同. 对于Rime字典来说, 就需要手动更新. 例如将kan'i
修改为kanni
Solution
使用假名作为字典编码, 也就是和
mozc
同样的方案. 经过测试, Rime支持假名编码方案, 这样的话可以直接使用mozc
的字典. 可参见项目 m13253/rime-nihongo-romaji 和 sgalal/rime-kunyomi使用罗马字母进行编码, 通过Rime提供的
speller/algebra
转写, 此种方案需要自行编写脚本转换mozc
的字典, 此项目已包含脚本lazyfoxchan/rime-jaroomaji
当前我正在使用方案2. 能满足基本输入要求, 能处理拨音, 也能处理动词变形, 其处理方案与mozc
一致, 将变形写入字典, 如下所示:
1まがった ma ga xtu ta 60129
2まがって ma ga xtu te 60129
3まがっと ma ga xtu to 60129
4曲がった ma ga xtu ta 61962
5曲がって ma ga xtu te 61962
6曲がっと ma ga xtu to 61962
但此方案自动提示功能不可用, 待时间充足与精力恢复会逐渐准备方案1.
zh zj zk zl
对于Google日语输入法(或开源版本的mozc
, 字典源文件参见GitHub mozc), 有以下一组mapping, 用于输入方向箭头, 显然hjkl
代表的方向指向是源于Vim传统. 何人加入此项配置的不详.
但蹊跷的是, 在Apple日语输入法中, 同样有此feature. 而Windows日语IME却不支持. 由此猜测, 莫非Apple是复用/借鉴了Google日语输入法的词库? 而微软日语输入法则是"独立自主研发"? (www
简单搜索后并无答案, 但鉴于Apple进入日本市场的时间之早, 很难相信Apple会复用Google的词库, 许是Google复用/借鉴Apple日语输入法也说不准, 这其中想必有一段趣事. 只可惜实验室的那台NeXTstation
已无法启动, 不然倒可以验证下90年代的macOS前身OS是否支持此feature.