2006.12.30
userChrome.js スクリプトで日本語を使う
年の瀬というのに userChrome.js に嵌ってます。で、これは手軽にメニュー等を追加出来るのはいいんですが、そのまんまだと日本語が使えないんですね。それで日本語が使えればなと少し調べたら、Greasemonkey スクリプトと同じようにエスケープした文字列を書いとけばいけるようです。
実際に使う時は Firefox のロケールを調べて、その値によってラベルの文字列を変えておけば、何となくそれらしくなるかな。
var locale = Components.classes["@mozilla.org/preferences-service;1"]. getService(Components.interfaces.nsIPrefBranch); locale = locale.getCharPref("general.useragent.locale"); var menuitem = document.createElement("menuitem"); menuitem.setAttribute("label", locale.indexOf("ja-JP") == -1 ? "Sample" : "\u30B5\u30F3\u30D7\u30EB");
日本語版の Firefox の場合は日本語のメニューが出るように、以前公開したスクリプトも少し修正しました。
エスケープした文字列を所得するには色々方法があるようです。私は Firebug のコマンドラインに日本語を入力して結果をコピーしています。
- エラーコンソールに入力して結果をコピー
- Latest topics > 通常の文字列とUnicodeエスケープの相互変換 - outsider reflex
- ブックマークレット
- (new Hatena).blog() - galgalgal(vimを使う)
Days on the Moon の nanto_vi さんからコメントを頂きまして、userChrome.js 用スクリプト: Days on the Moon で公開されている UCJS Loader を使えばスクリプト内に直接日本語文字(UTF-8)を記入出来るようです。便利なスクリプトも多数公開されてますし、勉強になります。
追記日時:2007-01-08T20:43
- 関連記事
Posted at 22:00 | userChrome.js
- この記事へのトラックバックURL
- http://wildlifesanctuary.blog38.fc2.com/tb.php/149-c6107cd1
- この記事へのトラックバック
| HOME |
http://www.ne.jp/asahi/nanto/moon/2006/12/31/copy-url-lite.uc.js
私の場合はscript要素経由でJSファイルを読み込むローダー(*)を使っているので、JSファイルはXULファイルと同じ文字コード(UTF-8)として読み込まれます。
* http://www.ne.jp/asahi/nanto/moon/2006/12/31/userChrome.js
ご指摘ありがとうございます。私は Sub-Script Loader でスクリプトを読み込んでいたので化けてたようです。
>>nant_vi さん
なるほど。読み込みの方法で扱える文字コードが決まっているとは知りませんでした。
勉強になります。