ja2hin - 日本語とひんたぼ語とを双方向翻訳
https://you.example.org/cgi-bin/ja2hin.cgi?[;d=dst_lang][;s=string]
https://you.example.org/cgi-bin/ja2hin.cgi?key
ja2hin.cgi [ -HJv ] [ -a | -h [ attr ] ] [ -i code ] [ -o code ] [ -f file | string ... ]
文字列やファイルを、日本語からひんたぼ語、 もしくはひんたぼ語から日本語に翻訳します。 HTML ドキュメントは、 タグや属性値を壊さずに変換できます。
本スクリプトは CGI プログラムとしても、 コマンドラインプログラムとしても利用する事ができます。
本スクリプトの先頭に書かれている perl(1) のパスを確認し、 必要ならば変更して下さい。 また、スクリプト内に以下の設定項目があるので、適宜変更して下さい。
_) のみです。
Encode・Jcode・jcode.pl
のいずれかの値を指定して下さい。
デフォルトでは any (自動選択) です。
alt 属性と title 属性が指定されています。
65536 です。
EUC-JP 、$ContentType が
text/html; charset=EUC-JP 、$Lang が ja です。
__SRC____DST____JAPANESE____HINTABO__<br> 、textarea 要素の内容として挿入する際には
\n 等と使い分けて下さい。
デフォルト値は <br /> です。
本スクリプトをお好みのディレクトリに置き、実行属性を付けて下さい。
public_html/
+- cgi-bin/
+- ja2hin.cgi 755 (-rwxr-xr-x)
アーカイヴに含まれる上記以外のファイルは実行の際に不要です。
なお、文字コード変換処理の為、以下のモジュールのいずれかが別途必要です。
設置した URL へアクセスすると、 翻訳フォームが表示されます。
https://you.example.org/cgi-bin/ja2hin.cgi
クエリに %SrcFile に設定したキーを与えてアクセスすると、 対応するファイルをひんたぼ語に翻訳して表示します。
https://you.example.org/cgi-bin/ja2hin.cgi?key
コマンドラインプログラムとして動作させる場合は、 翻訳したい文字列かファイルを引数に与えて実行して下さい。
> perl ja2hin.cgi -f file
> perl ja2hin.cgi string
コマンドラインプログラムとして動作させる場合は、 以下のオプションを利用できます。
"") を指定して下さい。
hin2ja を含む場合
(シェルで alias hin2ja ja2hin.cgi と設定していたり、
ファイル名 hin2ja で本スクリプトのリンクを作り、
そちらで呼び出した場合等) はこの動作がデフォルトになります。
日本語からひんたぼ語への変換は原則的に以下の規則に従います。
濁点・半濁点は分離して一文字として扱う。
が → か゛
あ → い という風に、五十音順で 1 つ後ろの文字に置き換える。
次の各文字 んっゃゅょ?゛゜ー は以下の変換テーブルに従って置き換える。
| 日本語 | あ-ろわをんっゃゅょ?゛゜ー |
|---|---|
| ひんたぼ語 | い-わをんっゃゅょ?゛゜×あ |
数字も 1 ずつずらし、9 は 0 にする。
| 日本語 | 0-89 | 0-89 |
|---|---|---|
| ひんたぼ語 | 1-90 | 1-90 |
ゲーム中では上記文字しか表示されないようなので、
他の文字の変換規則は不明ですが、本スクリプトでは英字とカタカナ、
及び小さい仮名文字 ぁ-ぉヵヶゎ も対象としてみました。
| 日本語 | A-YZ | a-yz | A-YZ | a-yz |
|---|---|---|---|---|
| ひんたぼ語 | B-ZA | b-za | B-ZA | b-za |
| 日本語 | あ-ろわをんっゃゅょ | ぁ-ぇぉ | ゎ?゛゜ |
|---|---|---|---|
| ひんたぼ語 | い-わをんっゃゅょ? | ぃ-ぉか | を゛゜× |
| 日本語 | ア-ロワヲンッャュョ | ァ-ェォ | ヵヶヮ |
| ひんたぼ語 | イ-ワヲンッャュョ? | ィ-ォヵ | キコヲ |
| 日本語 | ア-ロワヲンッャュョ | ァ-ェォ | ?゙゚ |
| ひんたぼ語 | イ-ワヲンッャュョ? | ィ-ォカ | ゙゚× |
長音はその前に来る文字によって、
あ・ア・ぁ・ァ・
ア・ァ のいずれかに変換されます。
翻訳処理部のテストが不充分です。翻訳結果がおかしい場合はご連絡下さい。
複雑でバックトラックの多い正規表現を使用している為、 長い文字列を処理する際に実行時例外が発生する可能性があります。 特に Perl 5.005_xx では起こり易いので、 可能ならばより新しいヴァージョンの perl(1) で実行して下さい。
use strict 、-T スイッチ (汚染チェック) 、及び
-w (警告) スイッチを付けた状態でエラーが出ないように、
また機能毎にモジュールに分割された状態で開発していますが、
設置の容易さを優先する為、一つのファイルに詰め込み直しています。
Subroutine %s redefined at ... を大量に吐くものの、
Apache::PerlRun でも一応動作を確認しています。
Encode 利用時の文字コード判定処理は、 まかまか般若波羅蜜氏作の JEncode をパクりました。;)
Copyright © 2002-2004 Yaminusi. <yn@byor.org> All Rights Reserved.
一次配布元: BYOR
本スクリプトは修正 BSD ライセンスにて公開されています。
["&<>]
をエスケープしていない箇所があったので修正。