Add-on Builderで作成した拡張機能をローカライズ(多言語化)する方法について

「Add-on Builderでローカライズ(多言語化)に対応した拡張機能を開発できません」「(続) Add-on Builderでローカライズ(多言語化)に対応した拡張機能を開発できません」で述べたように Mozillaの "Add-on Builder"ではローカライズ(多言語化)した拡張機能の作成をサポートしていません。
しかし、なんらかの解決方法があるはずだと考えて、Add-on SDKのソースコードを少しハックしたところ、若干の手作業を付け加えることで Add-on Builderで作成した拡張機能をローカライズ(多言語化)することに成功しました。
ということで、ローカライズ(多言語化)に関する前提知識とローカライズ(多言語化)する方法について説明します。

まず前提知識として、次の2つのドキュメントは必読です。
Add-on SDK - Localization
Add-on SDK - l10n

これらのドキュメントからローカライズ(多言語化)のデータは、拡張機能のルートフォルダ直下の localeフォルダに格納されている "xx-YY.properties"というファイルになっています。
my-addon/
data
lib
locale/
en-US.properties
fr-FR.properties
ja-JP.properties

ところが、Add-on SDKをハックしたところ、実行時には拡張機能のルートフォルダ直下の "locales.json"と拡張機能のルートフォルダ直下の localeフォルダに格納されている "xx-YY.json"というファイルが読み込まれていることが判りました。
my-addon/
data
lib
locale/
en-US.json
fr-FR.json
ja-JP.json
locales.json

ということで、"xx-YY.properties"ではなく、"locales.json"と "xx-YY.json"を Add-on Builderで作成した拡張機能のパッケージ(xpiファイル)に埋め込むとローカライズ(多言語化)に対応した拡張機能になるわけです。

拡張機能のパッケージ(xpiファイル)の実体はZIPファイルですので、拡張子を .xpiから .zipに変更すると簡単にファイルやフォルダの変更ができます。
また、ローカライズ(多言語化)データを別管理にするのは面倒なので、拡張機能の dataフォルダの直下に localeフォルダを作成しておいて、拡張機能のパッケージ内でルートフォルダの直下に移動(コピペ)すると簡単だと思います。(locales.jsonも同様です)

locales.jsonのサンプル(用意されている言語データのリスト):
{"locales":[
"en-US",
"fr-FR",
"ja-JP"
]}


en-US.jsonのサンプル(en-US.propertiesを json化したもの):
{
"test": "test en-US",
"test2": "test2 en-US"
}


以上、ご参考になれば幸いです。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 1

ナイス

この記事へのコメント

この記事へのトラックバック