新設されたフォーラムに初投稿ドキドキ。
先日からXUL/Migemoフォーク版のAPIを国際化を考慮したものに変更するという試みを行っているのですが、躓いています。
XUL/Migemo [Forked Edition] 0.6.xでAPIまわりがゴタゴタしてる件
このエントリに書いたような経緯で、以下のようなことができないものかと悩んでいます。
コード:
var xmJp = Cc['@piro.sakura.ne.jp/xmigemo/core;1?lang=ja']
.getService(Ci.pIXMigemo);
/*
http://www.cozmixng.org/repos/piro/xulmigemo/tags/0.6.3/components/pXMigemoCore.js
このpXMigemoCore.jsの中で
var service = new pXMigemoCore();
service.init('ja');
した結果(service)がpIXMigemoのインターフェースでラッピングされて取得できる
*/
var xmEn = Cc['@piro.sakura.ne.jp/xmigemo/core;1?lang=en-US']
.getService(Ci.pIXMigemo);
/*
pXMigemoCore.jsの中で
var service = new pXMigemoCore();
service.init('en-US');
した結果(service)がpIXMigemoのインターフェースでラッピングされて取得できる
*/
わけのわからないままファクトリー(gModule)の定義をいじってみて、
コード:
return (new pXMigemoCore()).QueryInterface(aIID);
この箇所を
コード:
var instance = (new pXMigemoCore()).QueryInterface(aIID);
instance.init('ja');
return instance;
という風にしてみても、意図通りには動いてくれませんでした。
最終的に目指している所は、pXMigemoEngine*.jsといった感じの独自モジュールを開発したらそのファイルをポンとcomponentsフォルダの中に放り込むだけで
コード:
var xmMy = Cc['@piro.sakura.ne.jp/xmigemo/core;1?lang=my-lang']
.getService(Ci.pIXMigemo);
という使い方ができるようになればいいなあ、と思っているんですが。
こういう場合はやはり現状のようにファクトリーの自作サービスを用意してそれを使うしか無いのでしょうか?