【Flutter】slangによる多言語化のメリットについて
はじめに
Flutterは多言語に対応するアプリの開発を行うことができます。
多言語化する方法は複数あり、インターネットで検索するとFlutterが公式に出しているflutter_localizationsパッケージを使用した多言語化の記事が多くみつかりました。
flutter_localizationsを使って多言語化することもできますが、slangという多言語化のパッケージを使ってみて便利だったので今回はslangについて書いていきたいと思います。
slangとは
slangはDartの多言語化パッケージです。
JSON、YAML、CSV、ARBファイル形式のファイルに多言語化対応したい文言を追加して使用することができます。
flutter_localizationsで実現できる内容に加えて便利な機能が多々あるので、より多言語化しやすいです。
またFlutterに依存していないので、Flutter以外のDartでの開発にも使用することもできます。
slangのメリット
slangを使用するメリットは複数ありますが、特にコメントをかけたり、翻訳ファイルを分割できる点が大きいと思います。
flutter_localizationsではarbファイルの分割がサポートされておらず、arbファイルの中にすべての文言を書く必要がありました。大きなアプリになればなるほど、 文言の数も増えて、arbファイルが肥大化します。
文言を追加したり、読んだりしやすいように、できるだけどこに何が書いてあるか把握できるようにする必要があります。
またarbファイルはコメントを書くことができません。コメントを書くことができないので、コメントで画面ごとに文言をまとめたり、補足をいれることができません。
slangを使えば、上記の問題を解消することができます。
slangではファイル分割をサポートしており、以下のように翻訳ファイルを分割することもできます。
lib/i18n/
└── en/
└── text1.yaml
└── text2.yaml
└── text3.yaml
└── ja/
└── text1.yaml
└── text2.yaml
└── text3.yaml
またYAMLファイルも使用することができるので、コメントを書くこともできます。
ファイル分割やYAMLを使用する場合は、プロジェクト直下のslang.yamlもしくはbuild.yamlに設定が必要になります。色々な設定をすることができるので、詳細は公式を御覧ください。
その他にも高速でコードの生成できたり、名前付き引数の使用、埋め込みのステークホルダーの記法変更、RichText への対応などslangを使うメリットは多くあると思います。
おわりに
今回はslangについて書いていきました。
flutter_localizationsはFlutterの公式のパッケージなので安心して使用することができますが、slangを使用することでより便利に開発を行うことができると考えています。
定期的に更新されているので使用しても問題も無いと思いました。