アドオン紹介: Simple Translate

 
 
 

昨年7月ぐらいからFirefox向けのアドオンを作っている。アドオンを作った経緯などについて軽くまとめてみる。

Simple Translate – Firefox 向けアドオン

f:id:sienori:20180119023055p:plain
f:id:sienori:20180119023057p:plain


初めて作ったアドオン。テキストを選択するとボタンが出てきて,クリックすると翻訳を表示する。元々翻訳アドオンはS3.Translatorを使っていたが,いつぞやのアップデートから動かなくなった。代わりのアドオンを探してみたものの,どれも動作が遅かったり機能が足りなかったり逆に機能が多すぎたりしたので自分で作ろうと決心。

元々jsには多少触ったことがある程度だった。プログラミング自体は中学の頃なでしこを触ったのが始まりで,その後は高校辺りでwebページを作ってみたりJavaをちょこっと触ったりといった感じ。大学に入って授業でCを書くようになってからまともに書けるようになった気がする。しかし1つのアプリケーションとしてちゃんと仕上げて公開したという経験はなく,何か作りたいとウズウズしていたところで良い題材を見つけることができた。ちょうどFirefox57でレガシーアドオンのサポートが終了する数ヶ月前に作り始められたのも,競合相手が少なく時期的にはベストだった。

実際のコーディングは数行書いては止まっての繰り返しだった。翻訳API?非同期処理?プロセス?ストレージ?多言語対応?色々あったが細かくは省略。プロセス周りを理解するのが一番大変だったかも。WebExtensionsの保存領域にアクセスするAPIとかも辛かった。詰まっている所をどうにか試行錯誤して突破する度に小さな成功体験が得られるので,モチベーションとしては高かった。

大学2年の夏休み前辺りに作り始めて,1週間ぐらいで翻訳システム周りは完成。夏休み中は部活でゲロ忙しかったため放置し,夏休みが終わってからUIなどを仕上げた。ツールバーポップアップ内の,改行に応じて高さの変わるテキストフィールドは割と苦労して実装した(というかhtmlで対応してくれ)。WebExtensionsの仕様についてはMDNのドキュメントが充実していたので助かった。

そんなこんなでAMOで公開したのが9月の後半ごろ。githubを使うのも初めてだったので右も左も分からなかったが,徐々に使い方を覚えていって綺麗なcommitも意識するようになった。外国の人から飛んでくるissueに対応するのも刺激的でよかった。その後ソフトウェアの翻訳プラットフォームであるCrowdinに登録し,現在10の言語にローカライズして頂いている(Crowdin超便利)。

自分で使う目的で作ったので,自分にとって必要な機能が詰め込まれててすっごく便利。例えば「翻訳の必要がなければボタンを表示しない」オプションは,webページ上で選択したテキストの言語を判定し,日本語だったら翻訳ボタンを出さないということができる。単にコピペをしたくて文字を選択しただけなのに翻訳ボタンが出て来てイラッとする,みたいなことがなくなる。 また,後のアップデートで追加された「自動的に第二言語に切り替える」オプションは,ツールバーポップアップに入力された言語に応じて翻訳先言語を切り替える。つまりは日本語を入力したら英語に翻訳,英語を入力したら日本語に翻訳,ということができる。便利。

今後の方針としては要望があったいくつかの機能を追加したい。が,現状のままでも概ね満足している&Tab Session Managerの方のアップデートが要望てんこ盛りで忙しいため更新頻度は少なめになりそう。

おかげさまでユーザ数は15000人を突破,なかなか気に入ってるアドオンなんでみんな使ってくれたら嬉しいなというお話でした。