日本語関連モジュール+α

 2005/03/07 更新

JapaneseCodecs

 Python言語の機能として UNICODEと、各種文字コード間の変換を行う枠組みがあります。「各種文字コード」の部分は、対応する Codecsというものをインストールすれば、使えるようになっています。  Python 2.4 以降は、日本語の文字コードも含んだ CJK Codecs が含まれて居ますので、特にこだわりの無い人は、特別な Codecs をインストールする必要はありません。

 日本語の Codecsについては、梶山さんが開発&メンテナンスされています。

http://www.python.jp/Zope/download/JapaneseCodecs

C コンパイラを使える環境であれば、上記 URLから最新版をダウンロードして、指示に従ってコンパイル&インストールすれば良いでしょう。

 Windowsのバイナリ版 Zope 2.5.x or 2.6.x (Python 2.1.xが使われている)を使用の方で、コンパイラを持っていない方は、深町@アトランジアさんが、Mingw32 でコンパイルしたバイナリがあります。

http://www.atransia.co.jp/demo の zope-mingw32test.tgz をダウンロードして、アーカイブを解いたあと

  1. japaneseフォルダから下を $(INST_HOME)\bin にコピーする
  2. $(INST_HOME)\bin に japanese.pthというファイル名で以下の1行だけが入ったファイルを作成する
import japanese

以上で日本語のエンコードが取り扱えるようになります。

Ploneのバイナリをインストールした場合は、JapaneseCodecsをインストールする場所が異なるようです( http://www.freeml.com/message/zope-memo@freeml.com/0000218 参照)。

Python 2.3 の場合は、zip アーカイブし直したものを置いておきましたので、これを解凍して site-packages に配置すれば良いです。

PyKf

 日本語文字コードの判定、変換モジュールのひとつとして、石本さんが公開されている pykf があります。C コンパイラを使える環境であれば、http://www.gembook.jp/html/moin/moin.cgi/PyKf からソースをダウンロードして、指示に従ってインストールすれば良いでしょう。

 Windows版バイナリの Zopeにインストールしたい場合は、http://www.atransia.co.jp/demo の zope-mingw32test.tgz の DLLフォルダ の中に入っている pykf.pyd ファイルを、 $(INST_HOME)\lib\python フォルダにコピーすれば良いでしょう。

Ploneのバイナリをインストールした場合は、JapaneseCodecsをインストールする場所が異なるようです( http://www.freeml.com/message/zope-memo@freeml.com/0000218 参照)。

 

構造化テキストの記法の問題

 構造化テキストの記法で  "Zope memo":http://example.co.jp/ と書けますが、 "Zope メモ":http://example.co.jp/ と書いても「Zope メモ」の部分をリンクにできません。これは、MSBのビットが立っている文字を literalと判定しないためです。
 テキストが、euc-jp や utf-8で書かれているのであれば、 lib/python/StructuredText/STletters.py を以下のように、1行修正すれば、日本語の文字列を literalと判定してくれるようになります。
たかのさんの Structured Text Patchを参考にさせていただきました。)

$ diff -c STletters.py.orig STletters.py
*** STletters.py.orig Mon Feb 17 17:36:18 2003
--- STletters.py Mon Feb 17 17:37:38 2003
***************
*** 8,14 ****
return punc

digits = string.digits
! letters = string.letters
literal_punc = punc_func("'")
dbl_quoted_punc = punc_func("\"")
strongem_punc = punc_func('*')
--- 8,14 ----
return punc

digits = string.digits
! letters = string.letters + '\200-\377\?\!'
literal_punc = punc_func("'")
dbl_quoted_punc = punc_func("\"")
strongem_punc = punc_func('*')

 

その他

 以下のページも参考にしてくださいませ

 

 


Zope メモ