プログラムで日本語を表示できるかどうかは、どうでもいいかもしれませんけど、私みたいな素人には、表示できるだけで嬉しいものです。できないこと、どうしたらできるのかを私ができた範囲ですが、書いておきます。
現在ではMacOS8.6-9.XのCarbon版のMacPythonやMac OS XのMacPythonなどがほとんどでしょうが、私の環境MacOS8.1+MacPython1.5.2-2.2でのことを書いています。すみません。
おかしいところがあるかもしれません。お気づきの点がございましたら、わたしまでご連絡いただければ幸いです
Pythonを始めてまず使うのが、PythonInterpreterだと思いますが、日本語は表示できません。インライン入力はできませんが、ディスプレイ下部に変換ウィンドウが出て、確定・入力はできます。しかし、「あいうえお」と打っても、文字化けします。「print "あいうえお"」(""内は文字化けの状態です)でReturnを押しても、文字化けしたものが表示されます。
がっかりですね。
MacPythonにはPythonInterpreterの他にPythonIDE(UnixやMac OS Xなどでも使えるIDLEではありません)が付属しています。エディタやデバッガの機能があって便利です。
PythonIDEを起動して、「Python Intaeractive」に先程と同じように打ち込んでみました。インライン入力はできませんが、ディスプレイ下部に変換ウィンドウが出て、確定・入力はできます。
打ち込んだ後、入力を「U.S.」に戻してからReturnキーを押しました。
「print "あいうえお"」を打ち込んでみました。打ち込んだ後、入力を「U.S.」に戻してからReturnキーを押しました。この入力の「ことえり」と「U.S.」で切り替えが面倒です。
やはり文字化けしてしまいました。
しかし、ここで「Python Interactive」ウィンドウの右上にある三角形のポップアップメニューから「Font settings...」を選び、日本語フォントを選択します。「Osaka-等幅」を選びましたが、ここでも文字化けしています。「Size」は「12」にしました。「Done」ボタンを押します。
すると、先程のウィンドウが日本語フォントで表示されます。
このフォント設定だと、以後の実行で日本語が表示できます。
PythonIDEにはエディタの機能もあります。「File」メニューから「New」を選ぶと「Untitled Script 1」というタイトルのスクリプトウィンドウが現れます。
スクリプトウィンドウの右上にもポップアップメニューに「Font settings...」があるので、「Osaka-等幅」を選びました。
そこで先程のように打ち込んでみます。
スクリプトウィンドウの左上にある「Run all」ボタンを押すと、スクリプトの内容を実行してくれます。
押してみると、「Output」ウィンドウが現れて、以下のように表示されます。
また文字化けしてます。
しかし、Outputウィンドウにも右上にもポップアップメニューに「Font settings...」があるので、「Osaka-等幅」を選びました。すると。。。
日本語で表示されました。
以後、スクリプトを「Run all」で実行すると、日本語で表示されます。
ここで作成した「Untitled Script 1」をPythonIDEの「File」メニューの「Save as Applet...」で保存してアプレットにしてみます。できたアプレットをFinder上でダブルクリックで実行すると、PythonInterpreterが起動して以下のように表示されます。
また、「Untitled Script 1」をPythonInterpreterにドロップしても同じです。
PythonInterpreterで実行することになるので、日本語で表示できません。
残念。。。
ユーザに日本語で表示するだけなら、EasyDialogs.Message()が楽かもしれません。
以下のスクリプトファイルを日本語入力可能なエディタで作ります。PythonIDEのスクリプトウィンドウでもかまいません。
import EasyDialogs EasyDialogs.Message("あいうえお")
PythonIDEのスクリプトウィンドウで作成した場合はスクリプトウィンドウの右上のポップアップメニューから「Save options...」を選ぶと、以下のウィンドウが出ます。
ここで「Python Interpreter」のラジオボタンを選んで「Done」を押します。その後、このスクリプトを保存すると、このスクリプトのクリエータを'Pyth'に設定してくれるので、Finderからこのスクリプトをダブルクリックすると、PythonInterpreterで実行してくれます。
SimpleTextなどで作成した場合はファイルをPythonInterpreterにドロップして実行できます。ファイルのダブルクリックで実行したいなら、FinderPopの「ファイルタイプ設定」、あるいはResEditでクリエータを'Pyth'に設定すると、ダブルクリックで実行できます。
実行すると以下のように表示されます。
EasyDialogsのMessageやAskYesNoCancelはこのように日本語で表示できます。
それでも、やはりMac風のウィンドウに表示したい、PythonIDEのOutputウィンドウに表示できるんだから表示したい、という方は、拙作のLightOutputWinをお使い下されば幸いです。
LightOutputWinは、PythonIDEからOutputウィンドウだけを持ってきた(パクってきた)ものです。LightOutputWin.pyをアプレットにして、スクリプトファイルをこのアプレットにドロップするとスクリプトのprint(sys.stdout)をウィンドウに表示します。また、「File」メニューの「Open...」でスクリプトを選んで実行できます。MyApp.pyを使って、単純に実行しています。
先程のスクリプトファイル「print "あいうえお"」を実行すると以下のようになります。もちろん、Outputウィンドウ右上のフォント設定を日本語フォントにしていないといけません。
エディタmiのPythonモードのツールとしてLightOutputWinを使うこともできます。
<<<DROP(----:LightOutputWinアプレットのパス)>>>「LightOutputWinアプレットのパス」には、例えば「Macintosh HD:Pythonファイル:LightOutputWin」など、LightOutputWinアプレットのパスを書きます。
これでmiのPythonモードでツールメニューから「LightOutputWinで実行」を選ぶと、作成中のスクリプトのprintの結果を表示できます。
以上の他にも、Wウィジェットを使ったり、リソースでウィンドウを作ったりなど、方法はあると思います。日本語に言及していませんが、WウィジェットやDlgリソースを使って表示する話はPython(MyApp) で Mac アプリケーションを作るに少し書きました。第9、10回あたりに。。。
以上の話はただ単に「日本語を表示する」という話です。ですから、日本語での文字列の操作はそのままではできません。
例えばPythonIDEで「Python Intaractive」ウィンドウを日本語フォントに設定していても...
文字列の長さやスライスは日本語フォントでのもの(長さ4)になりません。このへんのことはよく知らないのですが、MacPython1.6以降ならユニコードとJapaneseCodecsを使うとできるようです。(Python日本ユーザ会の「日本語環境でのPython」をお読み下さい。)
でも、ユニコードにするとそのままでは表示できません。
エンコードしなければなりません。