はじめに
漢字からローマ字に変換したい!と思って、rubyで使えるライブラリがないか調べました。
意外にもあんまりなかったので、メモしておこうと思います。
romaji
カタカナ → ローマ字 ○
ローマ字 → カタカナ ○
※漢字からは変換できない。が、便利だと思ったのでメモ。
Github: https://github.com/makimoto/romaji
gem 'romaji'
bundle install
使い方
require "romaji"
Romaji.kana2romaji "スシ" #=> "sushi"
Romaji.romaji2kana "sushi" #=> "スシ"
Romaji.romaji2kana "sushi", :kana_type => :hiragana #=> "すし"
require "romaji/core_ext/string"
"sushi".kana #=> "スシ"
"スシ".romaji #=> "sushi"
a = "sushi"
a.kana!
p a #=> "スシ"
a.romaji!
p a #=> "sushi"
簡単ですね!
KAKASI
漢字かなまじり文をひらがな文やローマ字文に変換する
漢字 → ローマ字 ○
ひらがな → ローマ字 ○
※混ざっていてもOK!
KAKASIはフリーソフトウェアです。
http://kakasi.namazu.org/index.html.ja
上記URLから最新版のソースをダウンロードします。
(現時点では、kakasi-2.3.6)
ダウンロードしてきたら以下のコマンドを実行
cd kakasi-2.3.6
./configure
make
make install
gem kakasiをinstall
gem "kakasi"
bundle install
rubyとkakasiの連携!
github: https://github.com/eitoball/kakasi-ruby.git
gem 'kakasi'
bundle install
terminalから
git clone https://github.com/eitoball/kakasi-ruby.git
cd kakasi-ruby
ruby extconf.rb
make
引用
Ruby2.0以降を使う場合はここでエラーがでるので、ソースを変更する。
(らしいです!)
mv kakasi.c kakasi.c.org # 元ソースバックアップのため
cat kakasi.c.org | sed "s/RSTRING\(([^)]*)\)->len/RSTRING_LEN\\1/" | sed "s/RSTRING\(([^)]*)\)->ptr/RSTRING_PTR\\1/" > kakasi.c
make
これでOK!
使い方
require 'kakasi'
Kakasi.kakasi('-Ja -Ha', "兵庫県")
#=> "hyougoken"
Kakasi.kakasi('-JK -HK', 'Unfortunately, 今日は雨です。')
#=> "Unfortunately, コンニチハアメデス。"
Kakasi.kakasi('-Ja -Ha', 'Unfortunately, 今日は雨です。')
#=> "Unfortunately, konnichihaamedesu。"
変換したい文字の指定は以下を参照して行います。
J : 漢字
a : ローマ字
H : ひらがな
K : カタカナ
漢字からローマ字に変換できるgemは調べたところ、KAKASIしかなかった。。
KAKASI、便利!
コメント
どうしてもローマ字にしたいっていう場面はあんまりないと思うのですが、
使いたい場面があったのでまとめました。。
が、しかし!
実装完了後、仕様を再度確認してみると、、、
そこには「ローマ字」ではなく「英語」がががががががが。
泣く泣くkakasiとバイバイし、I18nを使いました。
色々苦労したけど、年末案山子と過ごせてよかったです。
ありがとうございました。