Chrome拡張開発の多言語対応ファイル用のLinterを作った
はじめに
最近個人開発しているChrome拡張のTabTabTabを多言語対応した。
Chrome拡張では多言語対応時に各言語ごとにmessages.json
内に対応する単語を設定するのだが、単語数が多くなってくるとある言語で設定し忘れている単語が発生するなどミスが出てくる。
こういったChrome拡張の多言語対応周りでの面倒ごとを減らすためにchromex-locale-lint
というLinterを作成した。
使い方
まずはnpm、またはyarnからインストールする。
npm install --save-dev chromex-locale-lint
yarn add --dev chromex-locale-lint
リントを実行する際は以下のようにする。
npx chromex-locale-lint --localesDir /path/to/locales --baseLang en
引数は以下。どちらも省略可能だ。
--localesDir
: 多言語対応用の_locales
ディレクトリがあるディレクトリを指定する。デフォルトは./_locales
。--baseLang
: ベースとなる言語を指定する。デフォルトはen
。
機能
現時点(v0.0.2
)における主な機能は以下だ。
- ベースの言語ファイルに存在せず、他の言語ファイルに存在するKeyがあればエラーを出す。
- ベースの言語ファイルには存在するが、他の言語ファイルに存在しないKeyがあれば警告を出す。
- 多言語対応用のJSONがあるディレクリ名がChrome拡張によってサポートされていないものであった場合にエラーを出す。
おわり
もしChrome拡張開発をされている方で多言語対応をしている・これからしようと思っている方がいらっしゃれば、chromex-locale-lint
の使用を検討してみてほしい。
また、現時点では自分自身が必要な機能しか実装していないが、機能要望やバグレポートなどあればお気軽にGitHubにてイシューを作成していただきたい。