英語版などのブラウザで、日本語やヘブライ語が読めるようにすることを想定して、テキスト変換の手助けをするためのproxyです。
68userさんの作成した1st-proxy.plをもとにして、更に2nd-proxy.plを参考として、いろいろ機能追加(その副作用として性能ダウンがあるかもしれません)をしたproxyです。
よくわかってない状態で色々いじったので、致命的なBUGを埋め込んだかもしれません。
このファイル名をproxy.plとした場合、使用方法です(perl5以上で確かめました)。
perl proxy.pl : 標準出力にログを出力する。 perl proxy.pl debug : debug.logにログを出力する。
英語版などのブラウザで、日本語やヘブライ語が読めるようにすることを想定した、テキスト変換をするscriptです。
&filter'split_html($c1,$c2,$c3,$clcc,$clps) =&filter'split_html($content,$clcc,$clps,$delimiter,$scheme,$host, $port,$path,$fpat,$fjcom,$fjchr,$fhchr); INPUTs $content : text input this filter $clcc : content charset $clps : previous status $delimiter : text modification switch (if '/', it kicks &src_change) $scheme : (http) scheme $host : (http) host name $port : (http) port $path : (http) path $fpat : content type recognizing pattern in HTML file (always meta tag) $fjcom : external filter command $fjchr : folding (Japanese) $fhchr : folding (Hebrew) OUTPUTs $c1 : text output this filter (it is just end of '>' or before of '<') $c2 : text remaining this filter (it is after of '<' or just start of '>') $c3 : text remaining status ( 0 : after of '<' or 1 : start of '>') $clcc : content charset (after detected, it is not change) $clps : this status (it'll be previous status in the next transfer)
&filter'filter($out,$ns)=&filter'filter($intext,$mode,$com,$fcou,$lfbb,$tcou); INPUTs $intext : input text $mode : j is Japanese / h is Hebrew $com : external system command $fcou : folding charactor count $lfbb : before (previous) status $tcou : temporary internal file's unique ID OUTPUTs $out : output text after filtering $ns : this status for next $lfbb
&filter'src_change$tbuf=&filter'src_change($tbuf,$scheme,$host,$port,$path); INPUTs $tbuf : input text $scheme : (http) scheme $host : (http) host name $port : (http) port $path : (http) path OUTPUTs $tbuf : output text
双方向アルゴリズムの perl scriptを参照してください。
以下のがそうです。
Netscape Navigator Version 3.03 [ja]で、ヘブライ語(iso-logical)のページを表示した例を示します。
スナップショット
!![]()
![]()
![]()
(Shalom!)となるべきところが、左右逆(![]()
![]()
![]()
!)に表示されています。
スナップショット
ちゃんと、!![]()
![]()
![]()
(Shalom!)と表示されています。感激!