栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何更改CupertinoDatePicker显示语言?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何更改CupertinoDatePicker显示语言?

将所需的语言添加到MaterialApp(或CupertinoApp)配置中。像这样:

return MaterialApp(    localizationsDelegates: [      // ... app-specific localization delegate[s] here      GlobalMaterialLocalizations.delegate,      GlobalWidgetsLocalizations.delegate,      DefaultCupertinoLocalizations.delegate,    ],    supportedLocales: [      const Locale('en', 'US'), // English      const Locale('de', 'DE'), // German      // ... other locales the app supports    ],  <the rest of your configuration> );

这应该做。

不要忘记进口:

import 'package:toothscout/GermanCupertinoLocalizations.dart';import 'package:flutter_localizations/flutter_localizations.dart';import 'package:flutter/cupertino.dart';import 'package:flutter/material.dart';

另外,Cupertino Widget还没有完全本地化。但是您可以编写自己的本地化配置类,并将其添加到我的代码中“
DefaultCupertinoLocalizations.delegate”行下方。

例如,我必须创建以使用德语使用CupertinoDatePicker的自定义德语本地化看起来像这样:

import 'dart:async';import 'package:flutter/cupertino.dart';import 'package:flutter/foundation.dart';import 'package:flutter/widgets.dart';class _CupertinoLocalizationsDelegate extends LocalizationsDelegate<CupertinoLocalizations> {  const _CupertinoLocalizationsDelegate();  @override  bool isSupported(Locale locale) => locale.languageCode == 'de';  @override  Future<CupertinoLocalizations> load(Locale locale) => GermanCupertinoLocalizations.load(locale);  @override  bool shouldReload(_CupertinoLocalizationsDelegate old) => false;  @override  String toString() => 'DefaultCupertinoLocalizations.delegate(de_DE)';}/// US English strings for the cupertino widgets.class GermanCupertinoLocalizations implements CupertinoLocalizations {  /// Constructs an object that defines the cupertino widgets' localized strings  /// for US English (only).  ///  /// [LocalizationsDelegate] implementations typically call the static [load]  /// function, rather than constructing this class directly.  const GermanCupertinoLocalizations();  static const List<String> _shortWeekdays = <String>[    'Mo',    'Di',    'Mi',    'Do',    'Fr',    'Sa',    'So',  ];  static const List<String> _shortMonths = <String>[    'Jan',    'Feb',    'Mär',    'Apr',    'Mai',    'Jun',    'Jul',    'Aug',    'Sep',    'Okt',    'Nov',    'Dez',  ];  static const List<String> _months = <String>[    'Januar',    'Februar',    'März',    'April',    'Mai',    'Juni',    'Juli',    'August',    'September',    'Oktober',    'November',    'Dezember',  ];  @override  String datePickerYear(int yearIndex) => yearIndex.toString();  @override  String datePickerMonth(int monthIndex) => _months[monthIndex - 1];  @override  String datePickerDayOfMonth(int dayIndex) => dayIndex.toString();  @override  String datePickerHour(int hour) => hour.toString();  @override  String datePickerHourSemanticsLabel(int hour) => hour.toString() + " Uhr";  @override  String datePickerMinute(int minute) => minute.toString().padLeft(2, '0');  @override  String datePickerMinuteSemanticsLabel(int minute) {    if (minute == 1)      return '1 Minute';    return minute.toString() + ' Minuten';  }  @override  String datePickerMediumDate(DateTime date) {    return '${_shortWeekdays[date.weekday - DateTime.monday]} '        '${_shortMonths[date.month - DateTime.january]} '        '${date.day.toString().padRight(2)}';  }  @override  DatePickerDateOrder get datePickerDateOrder => DatePickerDateOrder.mdy;  @override  DatePickerDateTimeOrder get datePickerDateTimeOrder => DatePickerDateTimeOrder.date_time_dayPeriod;  @override  String get anteMeridiemAbbreviation => 'AM';  @override  String get postMeridiemAbbreviation => 'PM';  @override  String get alertDialogLabel => 'Info';  @override  String timerPickerHour(int hour) => hour.toString();  @override  String timerPickerMinute(int minute) => minute.toString();  @override  String timerPickerSecond(int second) => second.toString();  @override  String timerPickerHourLabel(int hour) => hour == 1 ? 'Stunde' : 'Stunden';  @override  String timerPickerMinuteLabel(int minute) => 'Min';  @override  String timerPickerSecondLabel(int second) => 'Sek';  @override  String get cutButtonLabel => 'Ausschneiden';  @override  String get copyButtonLabel => 'Kopieren';  @override  String get pasteButtonLabel => 'Einfügen';  @override  String get selectAllButtonLabel => 'Alles auswählen';  /// Creates an object that provides US English resource values for the  /// cupertino library widgets.  ///  /// The [locale] parameter is ignored.  ///  /// This method is typically used to create a [LocalizationsDelegate].  static Future<CupertinoLocalizations> load(Locale locale) {    return SynchronousFuture<CupertinoLocalizations>(const GermanCupertinoLocalizations());  }  /// A [LocalizationsDelegate] that uses [DefaultCupertinoLocalizations.load]  /// to create an instance of this class.  static const LocalizationsDelegate<CupertinoLocalizations> delegate = _CupertinoLocalizationsDelegate();}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/437272.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号