wikipediaを利用した単語の翻訳(日本語->英語)
作成の経緯
最近、コーディング中に業務用語や技術用語を表す変数名として、英語の単語を使います。
その際に、日本語版wikipediaのページ内の英語版wikipediaへのリンクをたどって、英語名称を調べることが多いです。
そこで、この手順をスクリプトにしてしまえば、ブラウザ操作の手間が減るかなと思い、作成しました。
スクリプトの手順は以下のようになります。
スクリプト
- コマンドプロンプトで実行します。
- 翻訳できると、結果が画面に表示されます。
※注:調べる単語がべた書きです(日本語の扱いが不明で、とりあえず放置してます。)
####UTF-8で保存する必要あり### require 'net/http' require 'uri' # 日本語名(引数にしたい・・・) japanese_name = "為替相場" Net::HTTP.version_1_2 # おまじないだそうで FILE_JP = "wiki.tmp" # 一時ファイル # Webサーバからページを取得する。 def getPage( address, page, &func ) Net::HTTP.start( address ) do | http | response = http.get( page ) if ( response.code == '301' ) then response['Location'].sub( /^http:\/\/([^\/]*)(\/.*)$/ ) do getPage( $1, $2, &func ) end elsif ( response.code == '200' ) then yield response.body else puts "error: response.code = #{response.code}" exit( 1 ) end end end # Webサーバからページを読み込み、ファイルに書き込む。 File.open( FILE_JP, 'w' ) do | f | getPage( 'ja.wikipedia.org', URI.escape( '/wiki/' + japanese_name ) ) do | str | f.write str end end # ページを読み込み、英語名を探す。 english_name = '' File.open( FILE_JP, 'r' ) do | f | f.each do | line | line.sub( /<li class="interwiki-en"><a href="http:\/\/en.wikipedia.org\/wiki\/([^"]*)">English<\/a><\/li>/ ) do # 英語名 english_name = $1 end end end # 結果表示 puts "#{english_name}"