ルビ振りWebサービス
漢字かな交じり文に、ひらがなとローマ字のふりがな(ルビ)を付けます。
grade=1 | 小学1年生向け。全漢字にふりがな。 |
grade=2 | 小学2年生向け。 |
grade=3 | 小学3年生向け。 |
grade=4 | 小学4年生向け。 |
grade=5 | 小学5年生向け。 |
grade=6 | 小学6年生向け。 |
grade=7 | 中学生以上向け。 |
grade=8 | 一般向け。常用漢字はふりがな無し。 |
$appid は自分で取得したものを使ってくださいね。#!/usr/bin/perl -T use strict; use warnings; use CGI; use LWP::Simple; use XML::Simple; use HTML::Template; use URI::Escape; use Encode; use utf8; binmode STDOUT, ":utf8"; my $appid = "YahooDemo"; my $q = new CGI; my $sentence = $q->param('sentence') || ""; my $grade = $q->param('grade') || 1; my $r_ref = yapi({sentence => $sentence, grade => $grade}); my $template = join("", <DATA>); my $t = HTML::Template->new(scalarref => \$template, global_vars => 1, die_on_bad_params => 0); $t->param(sentence => decode('utf-8', $sentence)); $t->param(grade => $grade); $t->param(results => $r_ref); print $q->header(-charset => 'UTF-8'), $t->output(); sub yapi { my ($args_ref) = @_; my $s = URI::Escape::uri_escape($args_ref->{sentence}) || ""; my $g = $args_ref->{grade} || 1; return [] unless $s; my $url = "http://jlp.yahooapis.jp/FuriganaService/V1/furigana?" ."appid=$appid&grade=$g&sentence=$s"; my $response = get($url); return [] unless $response; my $xmlsimple = XML::Simple->new(ForceArray => [ 'Word' ]); my $xml = $xmlsimple->XMLin($response); return [] unless $xml->{Result}; return $xml->{Result}->{WordList}->{Word}; } __DATA__ <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ルビ振りデモ</title> </head> <body> <h1>ルビ振りデモ</h1> <form> <input type="input" name="sentence" size="60" value="<TMPL_VAR name=sentence>"> <input type="input" name="grade" size="1" value="<TMPL_VAR name=grade>"> <input type="submit"> </form> <TMPL_LOOP name=results><TMPL_VAR name=Surface><TMPL_IF name=Furigana>(<TMPL_VAR name=Furigana>, <TMPL_VAR name=Roman>)</TMPL_IF></TMPL_LOOP> <hr> <a href="http://developer.yahoo.co.jp/about">Webサービス by Yahoo! JAPAN</a> </body> </html>