要使用Flutter本地化Launcher中显示的应用名称,可以按照以下步骤进行操作:
l10n
的文件夹,用于存放本地化相关的文件。l10n
文件夹中创建一个名为intl_en.arb
的文件,用于存放英文本地化字符串。文件内容如下:{
"@@locale": "en",
"app_name": "My App"
}
l10n
文件夹中创建一个名为intl_zh.arb
的文件,用于存放中文本地化字符串。文件内容如下:{
"@@locale": "zh",
"app_name": "我的应用"
}
pubspec.yaml
文件中添加以下依赖:dependencies:
flutter_localizations:
sdk: flutter
flutter_localized_locales:
sdk: flutter
main.dart
文件中添加以下代码:import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'l10n/l10n.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
localizationsDelegates: [
AppLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
],
supportedLocales: AppLocalizations.supportedLocales,
title: AppLocalizations.of(context).appName,
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(AppLocalizations.of(context).appName),
),
body: Center(
child: Text(AppLocalizations.of(context).appName),
),
);
}
}
l10n
文件夹中创建一个名为l10n.dart
的文件,用于定义本地化相关的类和方法。文件内容如下:import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
class AppLocalizations {
final Locale locale;
AppLocalizations(this.locale);
static AppLocalizations of(BuildContext context) {
return Localizations.of<AppLocalizations>(context, AppLocalizations);
}
static const LocalizationsDelegate<AppLocalizations> delegate =
_AppLocalizationsDelegate();
static List<Locale> get supportedLocales {
return const [
Locale('en', ''),
Locale('zh', ''),
];
}
String get appName {
switch (locale.languageCode) {
case 'zh':
return '我的应用';
default:
return 'My App';
}
}
}
class _AppLocalizationsDelegate
extends LocalizationsDelegate<AppLocalizations> {
const _AppLocalizationsDelegate();
@override
bool isSupported(Locale locale) {
return ['en', 'zh'].contains(locale.languageCode);
}
@override
Future<AppLocalizations> load(Locale locale) {
return SynchronousFuture<AppLocalizations>(AppLocalizations(locale));
}
@override
bool shouldReload(_AppLocalizationsDelegate old) {
return false;
}
}
这样,你就可以使用Flutter本地化Launcher中显示的应用名称了。根据需要,你可以在intl_en.arb
和intl_zh.arb
文件中添加更多的本地化字符串,并在AppLocalizations
类中进行相应的修改。
领取专属 10元无门槛券
手把手带您无忧上云