Kenji Suzuki
kenji****@gmail*****
2011年 10月 7日 (金) 08:01:08 JST
Kenji です。 解説どうもです。やっとわかりました。 On Fri, 7 Oct 2011 07:20:17 +0900 Fumito Mizuno <ounzi****@gmail*****> wrote: > 水野です。 > > 説明不足ですいません。 > rst英語はsphinx対応のドキュメント、html英語は今までのドキュメントを指します。 > > やろうとしたのは、rst英語=>rst日本語のテキスト置換です。 > その置換のためのデータを、html英語とhtml日本語から取ってくる、というものです。 > (今までのhtml日本語をrst化、ではないです。) > > html英語の行とhtml日本語の行がそろっているので、 > 例えば、※「x行めのhtml英語」があったら、「x行めのhtml日本語」に差し替える > というものです。 ※ ここはほぼ揃ってますが > (このときに英語、日本語の対を作るので、CSV形式の対訳ファイル生成は可能。 > omegaTは用語集がCSV形式対応) > > ※の作業を、rst英語に実行すれば、日本語に置換されたものができるかも、ということです。 rst英語とhtml英語の行数は、rstはラップされて改行されているので、かなりずれて いると思います。 その結果、見出しなどの短いものは OK で、長い文章は NG となったようですね。 // Kenji > テキスト置換のコードは以下のとおりです。(str_replaceのところで複数適用されてしまうケースがある) > <?php > $source_file = "en.html"; // 古いユーザーガイドの原文 > $target_file = "ja.html"; // 古いユーザーガイドの日本語 > $sphinx_file = "en.rst"; // 新しいユーザーガイドの原文 > $output_file = "ja.rst"; // 新しいユーザーガイドの日本語 > > $fh_source = fopen($source_file,'rb'); > $fh_target = fopen($target_file,'rb'); > $fh_sphinx = fopen($sphinx_file,'rb'); > $fh_output = fopen($output_file,'wb'); > > // $line_source $line_target の同じ行が対応することを想定 > $line_source_array = array(); > $line_target_array = array(); > for( $line_source = fgets($fh_source); !feof($fh_source);$line_source > = fgets($fh_source)){ > $line_target = fgets($fh_target); > > // タグなどを取り除き、それぞれの配列に格納する > $line_source_stripped = trim(strip_tags($line_source)); > if ($line_source_stripped != "") { > $line_source_array[] = $line_source_stripped; > } > $line_target_stripped = trim(strip_tags($line_target)); > if ($line_target_stripped != "") { > $line_target_array[] = $line_target_stripped; > } > > } > > // 力技で置換する > for( $line_sphinx = fgets($fh_sphinx); !feof($fh_sphinx);$line_sphinx > = fgets($fh_sphinx)){ > $data = str_replace($line_source_array,$line_target_array,$line_sphinx); > fwrite($fh_output,$data); > } > fclose($fh_source); > fclose($fh_target); > fclose($fh_sphinx); > fclose($fh_output); > ?> > > > > > -- > Fumito Mizuno > Standing on the Shoulder of Linus > http://ounziw.com/ > > _______________________________________________ > Codeigniter-users mailing list > Codei****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users