flutter英语怎么说_flutter 国际化(组件英文转中文)

ios 必须:

eafea0c4d616fa6aa4f4fd5811f10bf4.png

然后:

352d9461a25ea530312d7350593cc09e.png

flutter_localizations:

sdk: flutter

MaterialApp中 增加如下代码:

localizationsDelegates: [

ChineseCupertinoLocalizations.delegate, // 这里加上这个,是自定义的delegate

DefaultCupertinoLocalizations.delegate, // 这个截止目前只包含英文

GlobalMaterialLocalizations.delegate,

GlobalWidgetsLocalizations.delegate,

],

supportedLocales: [

const Locale(‘en’, ‘US’),

const Locale(‘zh’, ‘CH’),

],

ChineseCupertinoLocalizations代码如下:

import ‘package:flutter/cupertino.dart’;

import ‘package:flutter/foundation.dart’;

import ‘package:flutter/material.dart’;

import ‘package:flutter_localizations/flutter_localizations.dart’;

class ChineseCupertinoLocalizations implements CupertinoLocalizations {

final materialDelegate = GlobalMaterialLocalizations.delegate;

final widgetsDelegate = GlobalWidgetsLocalizations.delegate;

final local = const Locale(‘zh’);

MaterialLocalizations ml;

Future init() async {

ml = await materialDelegate.load(local);

print(ml.pasteButtonLabel);

}

@override

String get alertDialogLabel => ml.alertDialogLabel;

@override

String get anteMeridiemAbbreviation => ml.anteMeridiemAbbreviation;

@override

String get copyButtonLabel => ml.copyButtonLabel;

@override

String get cutButtonLabel => ml.cutButtonLabel;

@override

DatePickerDateOrder get datePickerDateOrder => DatePickerDateOrder.mdy;

@override

DatePickerDateTimeOrder get datePickerDateTimeOrder =>

DatePickerDateTimeOrder.date_time_dayPeriod;

@override

String datePickerDayOfMonth(int dayIndex) {

return dayIndex.toString();

}

@override

String datePickerHour(int hour) {

return hour.toString().padLeft(2, “0”);

}

@override

String datePickerHourSemanticsLabel(int hour) {

return “$hour” + “时”;

}

@override

String datePickerMediumDate(DateTime date) {

return ml.formatMediumDate(date);

}

@override

String datePickerMinute(int minute) {

return minute.toString().padLeft(2, ‘0’);

}

@override

String datePickerMinuteSemanticsLabel(int minute) {

return “$minute” + “分”;

}

@override

String datePickerMonth(int monthIndex) {

return “$monthIndex”;

}

@override

String datePickerYear(int yearIndex) {

return yearIndex.toString();

}

@override

String get pasteButtonLabel => ml.pasteButtonLabel;

@override

String get postMeridiemAbbreviation => ml.postMeridiemAbbreviation;

@override

String get selectAllButtonLabel => ml.selectAllButtonLabel;

@override

String timerPickerHour(int hour) {

return hour.toString().padLeft(2, “0”);

}

@override

String timerPickerHourLabel(int hour) {

return “$hour”.toString().padLeft(2, “0”) + “时”;

}

@override

String timerPickerMinute(int minute) {

return minute.toString().padLeft(2, “0”);

}

@override

String timerPickerMinuteLabel(int minute) {

return minute.toString().padLeft(2, “0”) + “分”;

}

@override

String timerPickerSecond(int second) {

return second.toString().padLeft(2, “0”);

}

@override

String timerPickerSecondLabel(int second) {

return second.toString().padLeft(2, “0”) + “秒”;

}

static const LocalizationsDelegate delegate =

_ChineseDelegate();

static Future load(Locale locale) async {

var localizaltions = ChineseCupertinoLocalizations();

await localizaltions.init();

return SynchronousFuture(localizaltions);

}

}

class _ChineseDelegate extends LocalizationsDelegate {

const _ChineseDelegate();

@override

bool isSupported(Locale locale) {

return locale.languageCode == ‘zh’;

}

@override

Future load(Locale locale) {

return ChineseCupertinoLocalizations.load(locale);

}

@override

bool shouldReload(LocalizationsDelegate old) {

return false;

}

}

详细错误分析以及过程请见 :

https://www.kikt.top/posts/flutter/framework/cupertino-paste-tooltip/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值