Класс MaterialLocalizations
Класс MaterialLocalizations - абстрактный набор строк
для кнопок диалогов, дат и меню Material.
Геттеры вроде okButtonLabel и cancelButtonLabel
дают подписи на текущем языке.
Экземпляр получают через
of.
Загрузку для Locale делает
GlobalMaterialLocalizations.
Синтаксис
MaterialLocalizations.of(context)
Параметры
| Параметр | Описание |
|---|---|
okButtonLabel |
Подпись кнопки подтверждения на текущем языке. |
cancelButtonLabel |
Подпись кнопки отмены на текущем языке. |
Методы
| Метод | Описание |
|---|---|
of |
Возвращает MaterialLocalizations для context.
|
Пример
Давайте выведем подпись кнопки OK:
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
class OkLabel extends StatelessWidget
{
const OkLabel({super.key});
@override
Widget build(BuildContext context)
{
var strings = MaterialLocalizations.of(context);
return Text(strings.okButtonLabel);
}
}
void main()
{
runApp(
MaterialApp(
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [Locale('en')],
home: Scaffold(
body: Center(
child: OkLabel(),
),
),
),
);
}
На экране по центру появится системная подпись OK на английском.
Пример
Давайте покажем подпись отмены в диалоге:
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
void main()
{
runApp(
MaterialApp(
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: [Locale('en')],
home: Builder(
builder: (context) {
return Scaffold(
body: Center(
child: ElevatedButton(
onPressed: () {
showDialog<void>(
context: context,
builder: (ctx) {
var loc =
MaterialLocalizations.of(ctx);
return AlertDialog(
title: const Text('abcde'),
actions: [
TextButton(
onPressed: () {
Navigator.pop(ctx);
},
child: Text(loc.cancelButtonLabel),
),
],
);
},
);
},
child: const Text('12345'),
),
),
);
},
),
),
);
}
На экране кнопка '12345'; по нажатию откроется диалог с локализованной Cancel.
Смотрите также
-
метод
of,
который достаётMaterialLocalizationsиз context -
класс
GlobalMaterialLocalizations,
который поставляет переводыMaterial -
виджет
Localizations,
в котором лежат делегаты перевода -
класс
GlobalWidgetsLocalizations,
который переводит базовые виджеты