こんにちは。趣味グラマのNobu(@nm_aru)です。
相変わらず本業の忙しさから、個人開発が中々できず、ブログの更新もストップしてしまっていました。
このままではプログラミングから遠ざかってしまうので、今日は久しぶりに新規でFlutterアプリの開発に着手する事にしました。(以前に開発していたものは、一旦お蔵入り)
Flutterのコードを見るのも書くのも半年ぶりぐらいになってしまったため、ほぼ初心者状態に戻っているのですが、今度こそ何とかFlutterでアプリを1本リリースするところまで持っていきたいと考えています。
今回作ろうと思っているアプリは、日本に閉じた物じゃなくても良いと思ったので、まずはアプリの国際化(i18n)の部分について調査、実装したところについて備忘録として残そうと思います。
Flutterの国際化は難しい…?
調査するにあたって、まずは公式ドキュメントと思い、Flutterの公式サイトを確認します。
何かやる事めっちゃある…。
後半にミニマムなやり方も書いてあるんだけど、これらを自分で実装しないといけないのは面倒くさい。
さてどうしようと思い、Googleで「Flutter i18n」でググると、いくつかある記事の中で、いつものようにmonoさんの記事が見つかる。(monoさんには本当に感謝)
記事を読む限り、公式ドキュメントを分かりやすく解説してくれてはいるが、やる内容は変わらないようだ。
monoさんですらやるのだからと、仕方なし公式ドキュメント&monoさんの記事を見ながら進めていたところ、.arbファイルを作成した時に、VSCodeが神のようなレコメンドをしてくれた。
VSCodeのプラグイン(Flutter Intl)を使えば国際化は楽勝!
.arbファイルを触るなら、こんなプラグインがあるよと勧めてくれたのが以下のプラグイン。(IntelliJやAndroid Studio向けにもある)
何々と説明を見ると、国際化をめっちゃ楽にできそうな手順が書いてある!
大まかに手順だけ書くと(ドキュメントとは順番を少し入れ替えてます)
- VSCodeにプラグインをインストールする
- pubspec.yamlに必要なライブラリ書いてインストールする
- 「Flutter Intl: Initialize」で初期化する
- 「Flutter Intl: Add locale」で必要なロケールを追加する(ja_JPとか)
- iOS向けの設定をInfo.plistに書く
- コードを修正する
たったこれだけ!
1〜5は最初に1回やるだけなので、後は.arbに文言を追加していくだけ。
このプラグインの素晴らしいのは、ロケールを追加したり、.arbを編集すると「/lib/generated/」以下に作られたファイルを自動更新してくれるところ。
pubspec.yamlにオプションを書くことでカスタマイズ出来るので、私は以下の2つだけ指定しています。
.arbファイルの更新は手動で…
monoさんの記事で、BabelEditというツールが紹介されていた。
便利そうではあるのだが、ライセンス料(1回きりだけど)が5,000円ほどかかるので、貧乏趣味グラマ的には、一旦手動で頑張る事に…。
まぁ、翻訳しないといけない文言数もそんなに多くならないはずなので、Google翻訳またはDeepLで地道にやろうかなと。(米中韓ぐらいの想定だし)
まとめ
国際化は、後からやろうとすると結構大変な分野なので、今回さくっとできたのは良かった。
プラグインの作者(会社)には感謝しかない。
公開目指して頑張るぞー。
コメント