Flutter项目国际化(本地化,全球化,多语言)
  t3Z7nq5uJKNJ 2023年11月02日 45 0


目标

在Flutter项目中实现国际化,支持多种语言。

Flutter项目国际化(本地化,全球化,多语言)_ci

开发工具

​​下载IntelliJ IDEA​​

安装插件:Flutter Intl

安装完成后重启IDE。

Flutter项目国际化(本地化,全球化,多语言)_android_02

使用Intl对项目进行初始化

Flutter项目国际化(本地化,全球化,多语言)_ide_03

添加语言

Flutter项目国际化(本地化,全球化,多语言)_flutter_04


Flutter项目国际化(本地化,全球化,多语言)_ci_05


Flutter项目国际化(本地化,全球化,多语言)_flutter_06

添加内容

Flutter项目国际化(本地化,全球化,多语言)_ide_07


Flutter项目国际化(本地化,全球化,多语言)_ci_08

修改pubspec.yaml

dependencies:
flutter:
sdk: flutter

修改为:

dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter

调用

import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'generated/l10n.dart';

void main() {
runApp(const MyApp());
}

class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);

@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
supportedLocales: S.delegate.supportedLocales,
localizationsDelegates: const [
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
S.delegate
],
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}

class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;

@override
State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
S.of(context).app_name,
),
],
),
),
);
}
}

关键代码:

import 'package:flutter_localizations/flutter_localizations.dart';
import 'generated/l10n.dart';
S.of(context).app_name

完整代码参考样例

​https://gitee.com/lblbc/notepad-multi-lang​


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  b1UHV4WKBb2S   2023年11月13日   40   0   0 ide抗锯齿
  iD7FikcuyaVi   2023年11月30日   26   0   0 MacWindowsandroid
  b1UHV4WKBb2S   2023年11月13日   34   0   0 裁剪ideflutter
  b1UHV4WKBb2S   2023年11月13日   27   0   0 flutterDart
  zSWNgACtCQuP   2023年11月13日   32   0   0 ide
t3Z7nq5uJKNJ