Flutter实战-国际化

Flutter实战-国际化

添加插件

终端中输入

flutter pub add flutter_localizations --sdk=flutter
flutter pub add intl:any

然后pubspec.yaml中就会自动添加下面内容

dependencies:
flutter_localizations:
sdk: flutter
intl: any
flutter_intl:
enabled: true

pubspec.yamlflutter模块中添加下面配置

flutter:  
generate: true

创建国际化字符串

  1. 在 lib 目录下创建一个名为 l10n 的子目录,并在其中创建 arb 文件(.arb 格式是 JSON 字符串映射的格式,用于存储翻译字符串)。
    {
    "@@locale": "en",
    "helloWorld": "Hello, World!",
    "appTitle": "My App",
    }
    image.png

注意: 默认是intl_xxx.arb,格式如下,根据pubspec.yamlflutter_xx字段来
flutter_intl -> intl_xxx.arb
flutter_app -> `app_xxx.arb

  1. 创建配置
    intl.config.json
    {  
    "arb_dir": "lib/l10n",
    "template_arbs": [
    "intl_en.arb"
    ],
    "output_dir": "lib/generated" //输出文件夹
    }

生成命令

flutter pub run intl_utils:generate --config=lib/l10n/intl.config.json
  1. 生成多语言文件(不建议)
    flutter gen-l10n
    image.png

使用

1、MaterialApp组件处添加多语言配置
image.png

2、使用字符串

import 'package:flutter_gen/gen_l10n/app_localizations.dart';
Text(AppLocalizations.of(context)!.helloWorld)
   Vector Landscape Vectors by Vecteezy
作者

AriaLyy

发布于

2024-08-19

许可协议

CC BY-NC-SA 4.0

评论