我这种日语渣根本看不懂日语!(超级自豪) 这时候如果我想要打日语歌词,我保证百分之百看不懂!这时候Kakasi就派上用场了!Kakasi能够把日语转换成平假,或者是罗马音,这样就看得懂了

0.介绍


kakasi是一个语言处理过滤器,可以把汉字转换成平假名,片假名以及罗马音。
名称KAKASI汉字假名汉字转换器的缩写

1.安装

环境:MacOS Catalina 10.15.2

1.1.下载程序

需要去官网下载程序包。目前最新版的程序包如下

http://kakasi.namazu.org/stable/kakasi-2.3.6.tar.gz

使用Wget下载程序包并且解压。

cd /tmp
wget http://kakasi.namazu.org/stable/kakasi-2.3.6.tar.gz -O kakasi.tar.gz
tar -vxf kakasi.tar.gz

1.2.编译安装

进入程序目录,编译安装。

cd kakasi-2.3.6
./configure

执行之后会看到如下输出

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
----省略----
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing default commands

下面执行make

make -j2
make install

这样就安装好了。

如果要指定文件夹安装,请在configure后加prefix
mkdir -p build
./configure --prefix=$(PWD)/build
make
make install

2.使用kakasi

2.1.kakasi参数

执行kakasi --help即可看到提示信息。

KAKASI - Kanji Kana Simple Inverter  Version 2.3.6
Copyright (C) 1992-1999 Hironobu Takahashi. All rights reserved.

Usage: kakasi -a[jE] -j[aE] -g[ajE] -k[ajKH] -E[aj] -K[ajkH] -H[ajkKH] -J[ajkKH]
              -i{oldjis,newjis,dec,euc,sjis,utf8} -o{oldjis,newjis,dec,euc,sjis,utf8}
              -r{hepburn,kunrei} -p -s -f -c"chars"  [jisyo1, jisyo2,,,]

      Character Sets:
       a: ascii  j: jisroman  g: graphic  k: kana (j,k     defined in jisx0201)
       E: kigou  K: katakana  H: hiragana J: kanji(E,K,H,J defined in jisx0208)

      Options:
      -i: input coding system    -o: output coding system
      -r: romaji conversion system
      -p: list all readings (with -J option)
      -s: insert separate characters (with -J option)  -S"chars": set separator
      -f: furigana mode (with -J option)
      -F[rl]"chars": set parentheses around furigana
      -c: skip chars within jukugo (with -J option: default TAB CR LF BLANK)
      -C: romaji Capitalize (with -Ja or -Jj option)
      -U: romaji Upcase     (with -Ja or -Jj option)
      -u: call fflush() after 1 character output
      -t: use old romaji table
      -w: wakatigaki mode
      -{l,L}: level {hiragana,furigana} mode (-{l,L}[123456jn])
      -y: display yomi of each kanji characters

Report bugs to <[email protected]>.

2.2.使用事例

用管道符传递信息即可实现转换。比如我要把うわkakasiは本当に使いやすいです!这个转换成罗马音,那么就在命令行打

echo "うわkakasiは本当に使いやすいです!" | iconv -f utf8 -t eucjp | kakasi -i euc -w | kakasi -i euc -Ha -Ka -Ja -Ea -ka
Output:
uwa kakasi ha hontou ni tsukai yasuidesu !

是不是非常方便呢

当然你还可以配合cat之类的命令,直接对文档进行转换。
比如有这样一个japanese.txt

これは日本語のテストです。
それは実際には単なるテストです。

这时候我们输入以下命令,把他保存到out.txt

/tmp  cat japanese.txt
これは日本語のテストです。
それは実際には単なるテストです。
 /tmp  cat japanese.txt | iconv -f utf8 -t eucjp | kakasi -i euc -w | kakasi -i euc -Ha -Ka -Ja -Ea -ka > out.txt
 /tmp  cat out.txt
koreha nihongo no tesuto desu .
soreha jissaini ha tannaru tesuto desu .

也可以配合EOF直接在命令行转换

 /tmp  cat <<EOF | iconv -f UTF8 -t EUCJP | kakasi -i euc -w | kakasi -i euc -Ha -Ka -Ja -Ea -ka
pipe pipe pipe heredoc> これは日本語のテストです!
pipe pipe pipe heredoc> これは日本語のテストです!
pipe pipe pipe heredoc> EOF
koreha nihongo no tesuto desu !
koreha nihongo no tesuto desu !

3.结语

kakasi的使用可谓是非常方便了,既然是shell命令,那么也可以用php调用了,有时间去写个把。
(当然学日语是最好的解决方案w

Last modification:March 6th, 2020 at 05:06 pm
如果我的文章对你有帮助,请赞助我吧~