
flutter iOSで多言語対応する方法
アプリを英語と日本語の多言語対応したいなぁと思い、色々やってみたんですが、iOSではうまくいかずに結構な時間を費やしてしまいました。
解決策を書き留めておきます。
まずは、localizationsDelegatesとsupportedLocalesを設定
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new CupertinoApp(
localizationsDelegates: [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [
const Locale("en", "US"),
const Locale("ja", "JP")
],
:
:
次に、デバイスの言語コードを取得
Locale myLocale = Localizations.localeOf(context);
myLocale.languageCode
を使ってごにょごにょ
これだけではうまくいかずハマった。
調べると、info.plistに言語を追加しなきゃいけないことが判明。
↓を追加したらバッチリ期待通り多言語対応できた!
your_project/ios/Runner/Info.plistに
<key>CFBundleLocalizations</key>
<array>
<string>English</string>
<string>ja</string>
</array>
↓大変参考になりました!ありがとうございます!
https://github.com/flutter/flutter/issues/14128#issuecomment-401028142