<<Tips
BlenderPythonと日本語
日本語、ですかあ。
BlenderPythonに限って言うと、i18nは表示のみ、と割り切って考えた方があとあと悔しい思いをしなくて済みます…
Blenderのテキストエディタは日本語入力できない
Windows版ではテキストエディタ部分の日本語直接入力をできないようにしてありますし、OS X版では他の入力項目も直接日本語を入力できません。
スクリプトに使用する文字コードはUTF-8
BlenderPythonのスクリプト自身に使用する文字コードはUTF-8です。データは知ったこっちゃありません :P
Shift-JISで書かれたスクリプト(例: print(u”あああ") )を実行すると以下のようなエラーが出ることがあります。
Error: File "/sample.py", line 1 SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0x82 in position 0: invalid start byte location: :-1
「SJISでも言語指定のヘッダつけとけば実行できるじゃん」とかいう方は、モグリなんでしょうね :)
以下のようなコードは正常に実行はできても、Blenderのテキストエディタでまともに表示できませんし。
# -*- coding: shift-jis -*- print(u"あああ")
むしろ、こう、ですよね?(Windowsの場合はちょっと事情が違う?)
#!/usr/bin/env python # -*- coding: utf-8 -*-
print(u"あああ")
なお、ファイルを保存する場合は"BOMなし"で。
Windowsではコンソールの文字コード指定をしてあげるとprint文など標準出力を文字化けせずに表示できるそうです。
コメントに日本語を使う場合
自分自身が使う、または日本語圏の人くらいしか使用しないだろう、ということでコメントに日本語を使う場合には、文字エンコードをUTF-8にして保存しましょう。
もし、公式リポジトリに登録してもらいたい、という場合には、レビューアが日本語読めないと思うのでコメントは英語にしておきましょうね。
日本語ファイル名は使用しない
スクリプト自身もそうですし、アクセスするファイル名も日本語は避けましょう。
ファイル名を日本語にすることで、エラー発生時の切り分けが難しくなります。ある漢字1文字が正しい実行を邪魔している、というのを追求するのにかける労力は、はっきり言って無駄です。
ついでに言うとオブジェクト名等にも日本語が入っていると、スクリプトでコケる確率が高くなりますのでご注意ください。
UIの言語実装は「勝手にやって」が公式のスタンス
BlenderPythonでのUIの言語実装は「勝手にやって」が公式のスタンスです。
また、前提として、"International fonts"を有効にしておく必要がある旨はドキュメントに明記しておくこと、があります。
BlenderPythonによるパネルやメッセージについて日本語にしたい、という場合には自前で切り替えの実装が必要になります。
- 独自に実装した例 - スクリプト小ネタ置き場
- 独自に実装した例 - [Blender] Blenderスクリプトを多言語対応させる方法
pasteall.org に貼り付けたい
気軽にソースコードを貼り付けられるサービス、pasteall.org 。日本語貼り付けると文字化けしちゃいますね? gistとか使えばいいんじゃないですか?
まあ方法が無いわけでもなくて。ヒントだけ提示しておきますね?
a = u"はろー" e=a.encode('unicode_escape') print(e) d=e.decode('unicode_escape') print(d) c=b"\\u306f\\u308d\\u30fc".decode('unicode_escape') print(c)
See Also:
- リンク等を貼り付け
コメント
最新を表示する
NG表示方式
NGID一覧