0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アプリ開発で多言語対応(i18n)したら裏目に出た

0
Last updated at Posted at 2025-08-05

忙しい人向けまとめ

  • アプリ開発をすることになったとき、良かれと思ってi18nを導入した
  • 単純に修正コストがあがっただけ
  • 日本語しか導入してない。YAGNI原則大事

気軽にi18nを導入した

今回はBtoB向けのアプリであったが、外国人労働者の存在を考慮して、i18nで最初から実装することにした
(Flutterを使うことになったが、おそらく他手法でのアプリ開発でも同様の悩みは発生するはず)

開発時に目立つ負担はなかった

繰り返される見た目の修正

文字サイズ、文字色、文字配置など、何度も修正が入った

例:「こんにちは」の文字サイズを修正する

  1. エディタで「こんにちは」で検索をかける
  2. 言語ファイルが出てくる
  3. 言語ファイルのキー名「greeting」を取得する
  4. エディタで「greeting」で検索をかける
  5. greetingの文字サイズを修正する

2~4が明らかに不要な手順である

「実装者ならどこを修正すればいいか覚えているものでしょ?」という
初学者みたいな意見は出ないと思うが、釘はさしておく

ムダに動作も重い

Flutterの場合は描画するウィジェットに対して、constをつけることで静的であることを明記できる

つまり「こんにちは」という表示にconstをつけておけば、静的で再描画不要と判断される

しかし、全テキスト表示をi18n対応したことによって、表示内容に言語分の選択肢を与え、
全テキストは動的に再描画される対象となったのであった。

不要な実装だった

結局、英語すら対応されることなく、開発したアプリの運用は始まった

YAGNI原則をしっかり守って、必要になるときまで実装しなければより良いものができたはず

例えばグローバル展開する場合でもi18nではなく、言語ごとにアプリを開発するという方法も存在するだろう

行き過ぎた考慮は身を滅ぼしかねないのであった

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?