Flutter国际化|利用Android studio lntl插件国际化超简单自动化[最新教程]

  • 下载 flutter lntl插件
    在Tools中找到Flutter intl
    在这里插入图片描述

    一次点击 initial project
    Add locae 【操作2次分别添加en ,zh]
    完成上面操作后将在lib目录下分别生成l10n文件夹
    generated文件夹

      generated文件夹
        l10n.dart
      	intl文件夹
             messages_en.dart [修改,保存arb后自动生成]
             messages_zh.dart[修改,保存arb后自动生成]
      l10n文件夹
      	intl_en.arb
      	intl_zh.arb
    
    

编写代码

分别在两个arb写入如下代码
intl_en.arb

{
  "app_name": "lozn techlogy",
 }

intl_zh.arb

{
  "app_name": "Lozn 科技",
 }

配置代码

说明 intl只需要在pubspec.yaml
flutter

flutter_intl:
 enabled: true

保存后输入flutter pub get自动生成l10n.dart
但是这个工具已经帮我们自动添加好了,没有自动添加的话自己添加,
顺便提一下flutter_localizations国际化
flutter_localizations

  • 配置插件 pubspec.yaml 的dev_dependencies节点添加

flutter_localizations:
sdk: flutter
# intl: 0.17.0

S是intl生成的
GlobalCupertinoLocalizations.delegate等是package:flutter_localizations里面的,是使用flutter_localizations:生成的

  • 配置入口代码
    在入口dart导入 import 'package:flutter_localizations/flutter_localizations.dart';
    在build节点添加如下字段

      localizationsDelegates: const [
            S.delegate,
            GlobalMaterialLocalizations.delegate,
            GlobalCupertinoLocalizations.delegate,
            GlobalWidgetsLocalizations.delegate
          ],
          // 设置中文为首选项
          supportedLocales: [const Locale('zh', ''), ...S.delegate.supportedLocales],
    
    
  • 使用国际化键名

  S.of(context).app_name
  children: <Widget>[
             Text(
              S.of(context).app_name ,
            ),
            

不 要加常量修饰符哦
值得注意的是这自动添加操作会在yaml最下面添加

flutter_intl:
  enabled: true

网上的教程比较老,我这个还是比较简单的。
备注:markdown语法
https://www.jianshu.com/p/ebe52d2d468f

Logo

一站式 AI 云服务平台

更多推荐