Класс GlobalMaterialLocalizations
Класс GlobalMaterialLocalizations реализует
MaterialLocalizations
для десятков языков.
В MaterialApp его передают через
константу GlobalMaterialLocalizations.delegate
в localizationsDelegates.
Язык берут из
Locale
и списка supportedLocales.
Синтаксис
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
],
Пример
Давайте включим перевод Material для en и de:
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
void main()
{
runApp(
MaterialApp(
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: const [
Locale('en'),
Locale('de'),
],
home: Scaffold(
body: Center(
child: Text('abcde'),
),
),
),
);
}
На экране MaterialApp подхватит переводы; диалоги и date picker получат строки на языке локали.
Пример
Давайте прочитаем okButtonLabel через MaterialLocalizations:
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
class DelegateProbe extends StatelessWidget
{
const DelegateProbe({super.key});
@override
Widget build(BuildContext context)
{
var label = MaterialLocalizations.of(context).okButtonLabel;
return Text(label);
}
}
void main()
{
runApp(
MaterialApp(
locale: const Locale('de'),
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
],
supportedLocales: const [Locale('de')],
home: Scaffold(
body: Center(
child: DelegateProbe(),
),
),
),
);
}
На экране по центру немецкая подпись кнопки OK, которую загрузил delegate.
Смотрите также
-
класс
MaterialLocalizations,
интерфейс строк, который реализуетGlobalMaterialLocalizations -
класс
GlobalWidgetsLocalizations,
делегат базовых виджетов -
класс
GlobalCupertinoLocalizations,
делегат Cupertino -
виджет
Localizations,
куда попадают загруженные переводы