カテゴリ: Flutterの機能拡張 更新日: 2025/12/20

Flutterで多言語対応を実装する方法!i18nの基本と例を初心者向けに解説

286
Flutterで多言語対応を実装する方法!i18nの基本と例

先生と生徒の会話形式で理解しよう

生徒

「Flutterでアプリを多言語対応にしたいんですが、どうやってやればいいですか?」

先生

「Flutterでは、国際化対応(i18n)を簡単に実装できる仕組みがあります。公式のflutter_localizationsパッケージを使うのが一般的ですよ。」

生徒

「日本語と英語の切り替えとかもできますか?」

先生

「もちろん可能です!それではFlutterでの多言語対応のやり方を、基本から実装例まで詳しく見ていきましょう!」

1. Flutterのi18nとは?

1. Flutterのi18nとは?
1. Flutterのi18nとは?

Flutterにおけるi18n(Internationalization)とは、アプリを複数の言語に対応させる仕組みのことです。英語・日本語・中国語など、ユーザーの端末言語に応じて自動的に表示を切り替えることができます。

Flutter公式が提供するflutter_localizationsライブラリと、コード生成に便利なintlパッケージを使えば、iOS・Android両方に対応した多言語化が実現できます。

2. Flutterの多言語対応に必要な準備

2. Flutterの多言語対応に必要な準備
2. Flutterの多言語対応に必要な準備

まず、Flutterで多言語対応を行うための依存関係をpubspec.yamlに追加しましょう。


dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  intl: ^0.18.0

次に、サポートしたい言語を設定します。FlutterのMaterialAppウィジェットにローカライズ設定を追加しましょう。


import 'package:flutter_localizations/flutter_localizations.dart';

MaterialApp(
  localizationsDelegates: const [
    GlobalMaterialLocalizations.delegate,
    GlobalWidgetsLocalizations.delegate,
    GlobalCupertinoLocalizations.delegate,
  ],
  supportedLocales: const [
    Locale('en'), // 英語
    Locale('ja'), // 日本語
  ],
  home: MyHomePage(),
);

この設定で、Flutterは英語と日本語の翻訳ファイルを使って、自動的に表示を切り替えるようになります。

3. 翻訳ファイル(.arbファイル)の作成と配置

3. 翻訳ファイル(.arbファイル)の作成と配置
3. 翻訳ファイル(.arbファイル)の作成と配置

Flutterでは、lib/l10nディレクトリに.arb形式の翻訳ファイルを用意します。たとえば、英語と日本語に対応するには次のようなファイルを作成します。

lib/l10n/intl_en.arb


{
  "@@locale": "en",
  "hello": "Hello!",
  "welcome": "Welcome to Flutter!"
}

lib/l10n/intl_ja.arb


{
  "@@locale": "ja",
  "hello": "こんにちは!",
  "welcome": "Flutterへようこそ!"
}

このように、各言語ごとに対応する翻訳をkey-value形式で記述します。

Flutterを「実務レベル」で使えるようになりたい人や、 iPhone / Android両対応アプリ開発の流れをまとめて学びたい人には、 定番の実践書がこちらです。

Flutter実践開発をAmazonで見る

※ Amazon広告リンク

4. Flutterでコード生成とローカライズ設定

4. Flutterでコード生成とローカライズ設定
4. Flutterでコード生成とローカライズ設定

l10n.yamlをプロジェクトルートに追加し、ローカライズ設定を行います。


arb-dir: lib/l10n
template-arb-file: intl_en.arb
output-localization-file: app_localizations.dart

その後、以下のコマンドで翻訳コードを生成します。


flutter gen-l10n

これでAppLocalizationsクラスが自動生成され、アプリ内で翻訳テキストを呼び出すことができます。

5. 翻訳テキストの使い方とUIへの反映

5. 翻訳テキストの使い方とUIへの反映
5. 翻訳テキストの使い方とUIへの反映

実際にFlutterのUIで翻訳文を表示するには、次のように記述します。


import 'package:flutter_gen/gen_l10n/app_localizations.dart';

Text(AppLocalizations.of(context)!.hello),

AppLocalizations.of(context)!.helloのように書くことで、ユーザーの設定言語に応じた翻訳テキストが自動で表示されます。

6. Flutterで言語を手動で切り替える方法

6. Flutterで言語を手動で切り替える方法
6. Flutterで言語を手動で切り替える方法

ユーザーに言語選択をさせたい場合は、Localeを明示的に設定します。


MaterialApp(
  locale: Locale('ja'), // 日本語を強制的に表示
  supportedLocales: const [
    Locale('en'),
    Locale('ja'),
  ],
  ...
);

設定画面でsetStateなどを使ってlocaleを動的に変更することも可能です。国際的なアプリでは言語切替ボタンを用意するのが一般的です。

7. Flutterでの多言語対応の注意点とベストプラクティス

7. Flutterでの多言語対応の注意点とベストプラクティス
7. Flutterでの多言語対応の注意点とベストプラクティス
  • 翻訳キーはシンプルかつ意味のある名前にしましょう(例:loginButton)。
  • flutter gen-l10nを実行した後は、必ずビルドが通るか確認しましょう。
  • 翻訳ファイルの文字エンコーディングはUTF-8を使うようにしましょう。
  • 言語が増えるほど管理が複雑になるので、共通翻訳やコメントを活用しましょう。

Flutterの多言語対応(i18n)は、アプリの国際展開ユーザビリティ向上に欠かせない要素です。日本語だけでなく英語や他の言語への切り替えを実現することで、より多くのユーザーに使いやすいアプリになります。

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Flutterで多言語対応(i18n)とは何ですか?意味をわかりやすく教えてください

Flutterにおけるi18n(国際化)とは、アプリを複数の言語に対応させる仕組みのことです。ユーザーの端末言語に応じて、日本語・英語・中国語など自動的に表示を切り替えることができます。
Flutterの機能拡張の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク