いやあ、
を見たらむらむら作りたくなって、作ったらあっさりできちゃったという。
NAME Lingua::CJKV::Simplify - (Simplified|Traditional) Chinese Characters SYNOPSIS use Lingua::CJKV::Simplify; my $cjkv = Lingua::CJKV::Simplify->new( "Dan,\x{5F3E},\x{5F48},\x{5F39}" ); print $cjkv, $cjkv->simplifed, $cjkv->traditional;
DEMO
- 文字列
- 简体字
- 繁體字
我ながら、この手があったか、と感心しています。
お(楽|乐|樂)しみあれ!
(小飼弾|小饲弹|小飼彈|ダ㌆㌰㌑㌐イ)
DEMO Source:
Perl (server)
#!/usr/local/bin/perl # # $Id: cjkv_simptrad.cgi,v 0.1 2008/06/10 06:24:43 dankogai Exp dankogai $ # use strict; use warnings; use blib './Lingua-CJKV-Simplify/trunk'; use Lingua::CJKV::Simplify; use CGI; use CGI::Carp qw/fatalsToBrowser/; use Encode; use URI::Escape; my $q = CGI->new; my ( $callback, $str ) = ( $ENV{PATH_INFO} =~ m{^/(.*?)/(.*)} ); die "No callback" unless $callback; my $utf8 = decode_utf8( $str ? uri_unescape($str) : $q->param('s') || $q->param('str') ); my $cjkv = Lingua::CJKV::Simplify->new($utf8); my $obj = { original => $utf8, simplified => $cjkv->simplified, traditional => $cjkv->traditional, }; if ( $callback eq 'xml' ) { require XML::Simple; print "Content-Type: text/xml; charset=utf-8\n\n", XML::Simple::XMLout( $obj, NoAttr => 1 ); } else { require JSON::Syck; print "Content-Type: application/x-javascript; charset=utf-8\n\n", "$callback(", JSON::Syck::Dump($obj), ");\n"; } # __END__
HTML
<div style="border:outset 1px; padding:0.5em"><dl> <dt>文字列</dt> <dd><input id='src', type="text" value="日本語の弾は簡体字では弹で繁体字では彈" size="64"></dd> <dd><input type="submit" value="简繁" onclick=" cjkv.parse(document.getElementById('src').value)"></dd> <dt>简体字</dt> <dd id="simp"></dd> <dt>繁體字</dt> <dd id="trad"></dd> </dl> </div>
JavaScript
(function(){ var CJKV_SimpTrad = function(proxy, callback){ this.proxy = proxy || 'http://api.dan.co.jp/cjkv_simptrad'; this.callback = callback || 'jsonp'; this.parse = function(str){ var script = document.createElement('script'); script.id = this.proxy + '/' + this.callback + '/' + encodeURIComponent(str); script.charset = 'UTF-8'; script.src = script.id; document.body.appendChild(script); }; return this; } var $ = function(id){ return document.getElementById(id) }; cjkv = new CJKV_SimpTrad(); jsonp = function(json){ $('simp').innerHTML = json.simplified; $('trad').innerHTML = json.traditional; } cjkv.parse($('src').value); })()
このブログにコメントするにはログインが必要です。
さんログアウト
この記事には許可ユーザしかコメントができません。