英単語訳ブラウザ拡張を公開(WebExtension)

ブラウザ上で英語の単語の上にマウスオーバーすると、日本語翻訳をホバー表示(ツールチップ表示)するブラウザ拡張、lina_dicto_english for webextensionを公開しました。

 


以前から公開している、エスペラント語翻訳のブラウザ拡張lina_dicto for webextensionの辞書を置き換えて作成しました。ブログ記事も書いてあります。「エスペラント翻訳ブラウザ拡張を公開(WebExtension)

ソースコードはGitHubにてBSD Clause-2にて公開しています。 
今の所FireFox対応Chromium(Chrome)仮対応で、Chromiumは正式対応予定です。

以下、作成の際のちょっとした知見など。

## データサイズ制限

辞書データをJSONで持っているのですが、辞書サイズがエスペラント語辞書データ(3MB)に比べて英語辞書データ(9MB)が3倍程度大きいため、アドオン配布システムのaddons.mozilla.org(以下AMO)から公開するWebExtensionの、4MB制限にひっかかってしまいました。
(エラーメッセージによると、4MB以上のJSONをファイルをパースしていると引っかかる模様。AMOのWebExtensionはモバイルブラウザ対応もありますし、この制約があるのは妥当だと思います。)
 今回は、extensionが今のところ1ワードの単語しか検索しないため、2ワード以上の熟語等を辞書データから取り除くことで軽量化を行いました。今後2ワード対応するつもりですが、それでも辞書は4MBを超えないと思うので、とりあえずはこれでOKとしました。

## 名称によるURL長制限

AMOでextension個別ページに付けられるURLには最大長があるようです。
lina_dicto_english for webextensionでは、
https://addons.mozilla.org/ja/firefox/addon/lina_dicto_english_for_webexte/ 
と途中で切れる結果になってしまいました。 
また、デフォルトではextension名の空白は"-"に置き換えられます。
こんなに長く、アンダーバー等を用いた名前を付けることはあまりないと思いますが、一応、名前付けの際の参考に。

以上です。

0 件のコメント:

コメントを投稿

WebExtensionsのAPIの非同期対応が呼び出し箇所により異なる(Async,Primise)

 TL;DR FireFoxでchrome.*()系APIを使うとき、content_scriptだけpromiseなAPIで、ほかはコールバックな模様 概要 そもそも、 - FireFoxはChrome拡張機能互換の一環として、chrome.storage.local.get(...