Плагин Flutter i18n не может автоматически менять язык - PullRequest
0 голосов
/ 10 октября 2019

После установки Плагин Flutter i18n Я добавил 3 языковых .arb файла. Когда я добавляю localeResolutionCallback:, я могу получить этот язык на этих страницах. Но без localeResolutionCallback: он всегда на английском. Каксделать так, чтобы приложение автоматически меняло язык при смене языка устройства?

lib / main.dart:

...
import 'package:hctodo/generated/i18n.dart';
import 'app.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

void main() {
  ...
  return runApp(CupertinoApp(
      localizationsDelegates: [
        S.delegate,
        GlobalCupertinoLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalMaterialLocalizations.delegate
      ],
      supportedLocales: S.delegate.supportedLocales,
//      localeResolutionCallback: S.delegate.resolution(fallback: new Locale("ja", "JP")),
      home: MyApp()));
}

1 Ответ

0 голосов
/ 10 октября 2019

Попробуйте, сначала объявите поддерживаемые локали:

import 'dart:ui' as ui;   
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      supportedLocales: [
        const Locale('en'), // English
        const Locale('he'), // Hebrew
        const Locale('de'), // Hebrew
        // ... other locales the app supports
      ],
      home: MyHomePage(title: ''),
    );
  }
}

Затем var _sysLng = ui.window.locale.languageCode; в другом файле

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...