2008/09/07

MacOS X 英語環境で Flash を日本語モードで使う

最近iMacの言語設定を英語優先にして使っています。具体的には、「System Preferences」の「International」にある「Languge」のリストで「English」を一番上に持ってきて使う、ということになります。

ただこう設定すると、Browserが利用しているAdobe Flash Player(ver.9.x)で日本語が上手く表示されなくなり(恐らく、日本語が1バイト系文字として解釈されているような感じ)困っていました。

検索してみたところ、「聖アンドレアスの失敗」さんのページに、そのものズバリの解法が書いてありました。元ネタは「リンゴが好きでぃす♪」さんのページのようです。皆さん有り難うございます!

要は、
  • Carbonアプリは言語設定情報を__CF_USER_TEXT_ENCODING環境変数から取得する
  • ~/.CFUserTextEncodingファイルが存在する場合には、__CF_USER_TEXT_ENCODING環境変数の設定値にはその値が用いられる。
  • 言語設定を変更すると、~/.CFUserTextEncodingファイル値が変更される。
という流れのようです。

__CF_USER_TEXT_ENCODING の正式なフォーマットは見つけられなかったのですが、どうも、UID:CFStringEncoding:RegionCode という形式になっているようです。RegionCodeの実体値は、deprecatedになっているけどScript Manager Referenceなどを見ることになるのかな?

今回の「Flashを日本語環境で使いたい」という要求を満たすためには、~/.CFUserTextEncodingへ1:14と書いておくのが良いみたいです。
% echo -n 1:14 > ~/.CFUserTextEncoding

最初の値は「kCFStringEncodingMacJapanese」で後者は「verJapan」を意味しているものと思われます。

Carbon周りの調査は、歴史が詰まっていて、面白くもあり、苦しくもあり (^^;

0 件のコメント:

コメントを投稿