Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
720 of 1024 menu
◀ ▶

Виджет Localizations

Виджет Localizations кладёт в дерево переводы и текущую Locale. Список источников передают в delegates, язык - в locale, интерфейс оборачивают в child. MaterialApp обычно уже ставит Localizations, но локально язык меняют через override.

Синтаксис

Localizations( locale: const Locale('en'), delegates: const [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ], child: child, )

Параметры

Параметр Описание
locale Текущая локаль для поддерева. Тип Locale.
delegates Список делегатов, которые загружают переводы.
child Дочерние виджеты, которые читают локализацию.

Методы

Метод Описание
localeOf Возвращает Locale из ближайшего Localizations.
override Строит виджет с другой локалью для части дерева.

Пример

Давайте подключим стандартные делегаты Material:

import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; void main() { runApp( MaterialApp( locale: const Locale('en'), localizationsDelegates: const [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: [ const Locale('en'), const Locale('de'), ], home: Scaffold( body: Center( child: Text('abcde'), ), ), ), ); }

На экране MaterialApp сам создаст Localizations; кнопки и диалоги получат английские подписи.

Пример

Давайте прочитаем locale через localeOf:

import 'package:flutter/material.dart'; class LocaleLabel extends StatelessWidget { const LocaleLabel({super.key}); @override Widget build(BuildContext context) { var code = Localizations.localeOf(context).languageCode; return Text(code); } } void main() { runApp( MaterialApp( locale: const Locale('de'), home: Scaffold( body: Center( child: LocaleLabel(), ), ), ), ); }

На экране по центру появится 'de'.

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить