1
日本語ファイル名をローマ字に変換する ruby + kakasi script
Palm TX で使っている pTunes が例によってSDカード上の日本語ファイルを扱ってくれない(id3tagは大丈夫だがファイルリストに表示されない)ので、ディレクトリ名・ファイル名をローマ字に変換するスクリプトを書いた。引数にディレクトリを指定すると recursive に日本語ファイル名をローマ字に変換する。処理には libkakasi を使用して、前段では -w での分かち処理もしている。また空白はアンダーラインに変換。割と破壊的なので利用には注意を。
#!/usr/bin/ruby
require 'kakasi'
require 'find'
require 'nkf'
def romanize_dir dir
Find.find(dir) do |fpath|
next if NKF.guess(fpath) == 5 && !/\s+/ =~ fpath # ascii or whitespace
begin
filename = Kakasi.kakasi('-w', NKF.nkf('-e',fpath)).gsub(/\s*\/\s*/, '/')
filename_roman = Kakasi.kakasi('-Ha -Ka -Ja -Ea -ka', filename)
filename_roman.gsub!(/\s+/, '_').gsub!(/\^/,'-')
rescue
puts "failed to convert string #{fpath} - #{$!}:#{$@}"
next
end
begin
File.rename(fpath, filename_roman)
puts fpath + " to " + filename_roman
rescue
puts "failed to convert filename #{fpath} - #{$!}:#{$@}"
end
if(File.directory? filename_roman)
puts " + into directory #{filename_roman}"
romanize_dir filename_roman
end
end
end
dir = ARGV.shift
romanize_dir dir
Windows だと同様の用途には
Flexible Renamer や
Ganmigi と言ったものがあるみたい。試してはいない。