Как поменять язык по коду во флаттере - PullRequest
1 голос
/ 06 апреля 2020

У меня проблемы с переключением языка в веб-приложении. Я добавил необходимые зависимости в package.yml.

dependencies:
  flutter:
    sdk: flutter
  intl: ^0.16.1

  flutter_localizations:
      sdk: flutter

dev_dependencies:
  flutter_test:
    sdk: flutter
  intl_translation: ^0.17.9

Затем я инициализировал материал intl в MaterialApp.

 [...]
 child: MaterialApp(
        localizationsDelegates: [
          GlobalMaterialLocalizations.delegate,
          GlobalWidgetsLocalizations.delegate,
          S.delegate,
        ],
        supportedLocales: S.delegate.supportedLocales,
        [...]

Вот код, который я ожидаю изменить locale.

                Text(S.of(context).language),
                RaisedButton(
                  child: Text("deutsch"),
                  onPressed: () {
                    S.load(Locale('de'));
                  },
                ),
                RaisedButton(
                  child: Text("englisch"),
                  onPressed: () {
                    S.load(Locale('en'));
                  },

Вот два arb файла, содержащих перевод.

{
    "language": "Deutsch"
}
{
    "language": "English"
}

Все компилируется, и я могу получить доступ к S.of(context) классам. Я уверен, что что-то пропустил. Поскольку переключение языка также не работает, если я запускаю в эмуляторе Android.

Переключение языкового стандарта системы в эмуляторе приводит к изменению языка.

Буду признателен за любую помощь или подсказки.

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