美文网首页
Flutter-国际化开发

Flutter-国际化开发

作者: WhoJun | 来源:发表于2024-07-11 09:10 被阅读0次

flutter 国际化方面,在网上蛮多的。这篇文章只是记录,用来稳固我的记忆力。

部署环境&初始化

这边用到vscode进行开发,需要下载 Flutter Intl 插件。

image.png
下载完成后,在项目中的pubspec.yaml添加依赖库。
...
dependencies:
    flutter_localizations:
        sdk: flutter
...

vscode中按command\ctrl+shift+p,然后会弹出一个输入vscode内置命令的输入框和下拉结果。
在flutter项目中,首次需要搜索Flutter Intl: Initialize命令,回车即可初始化和生成国际化相关文件代码。

image.png image.png

就在项目中lib中默认生成了以下文件:

|-- generated 自动生成的文件,不需要手动编辑
    |-- intl
    |   |-- messages_all.dart 桥接多个语言文件 下面en zh等文件。
    |   |-- messages_en.dart 转译文件 自动从l10n/intl_en.arb 提取key/value 自动生成代码
    |-- l10n.dart 入口文件代码,不需要手动编辑
|-- l10n  存放国际化json文件位置 arb=json
    |-- intl_en.arb

在入口Widget添加,localizationsDelegatessupportedLocales变量。

import 'package:flutter_localizations/flutter_localizations.dart';
import 'generated/l10n.dart';
class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
        return new MaterialApp(
            localizationsDelegates: [
                S.delegate,
                GlobalMaterialLocalizations.delegate,
                GlobalWidgetsLocalizations.delegate,
                GlobalCupertinoLocalizations.delegate,
            ],
            supportedLocales: S.delegate.supportedLocales,
            title: 'Flutter Demo',
            home: new MyHomePage(title: 'Flutter Demo Home Page'),
        );
    }
}

新增国际化

添加新的国际化文件可以搜索Flutter Intl: Add Locale命令,回车会切换到输入国际化编码。

image.png
会提示输入国际化编码,例如简体中文就 zh_Hans_CN。
image.png

然后就会在l10n文件夹,自动添加 intl_zh_Hans_CN.arb文件,以及在generated/l10n中生成转译文件。

注:在ios中按需添加以下配置:


image.png

在代码中使用

首先在arb文件里面分别添加国家化。
intl_en.arb

{
  "hello": "hello"
}

intl_zh_Hans_CN.arb

{
  "hello": "你好"
}

保存后就会在转译文件自动生成相应代码。

在页面上使用:

Widget build(BuildContext context) {
    return Column(children: [
        Text(
            S.current.hello,
        ),
    ]);
}

页面内国际化切换

Flutter项目默认是自动跟随系统语言的。
页面内切换语言。

const locale = Locale('zh', 'CN');
MyApp.of(context).setLocale(locale)

相关文章

  • flutter在iOS中发布

    购买开发者证书。在android studio中右击项目->Flutter->Open iOS in Xcode ...

  • Flutter-国际化

    可以参考flutter中文社区的做法:https://flutterchina.club/tutorials/in...

  • Flutter-现有iOS工程引入Flutter

    Flutter-现有iOS工程引入Flutter Flutter-现有iOS工程引入Flutter

  • Flutter-国际化支持

    Flutter 国际化 详情链接[https://book.flutterchina.club/chapter13...

  • IOS 快速国际化配置

    国际化开发的两种情况 1.在App开发之初,就已经有了国际化开发的打算,这种情况下进行国际化是很容易的,只要在开发...

  • 【基础系列】SpringBoot 国际化支持实例开发

    【基础系列】SpringBoot 国际化支持实例开发 国际化的支持,对于app开发的小伙伴来说应该比价常见了;作为...

  • Day18 - Flutter - 国际化

    概述 国际化的认识 国际化的适配 国际化的工具 一、国际化的认识 开发一个App,如果我们的App需要面向不同的语...

  • 2018-02-08

    iOS开发 App本地化(国际化)笔记

  • PHP目前热招岗位

    一、滴滴 国际化php开发工程师 工作职责: 1、负责滴滴国际化用户增长方向项目的设计和开发 2、结合业务需求,研...

  • Flutter 国际化(多语言处理)

    项目内最近加入国际化内容,那么我们需要转化对应语言内容,来展示UI App国际化开发主要包括: 文本国际化 Wid...

网友评论

      本文标题:Flutter-国际化开发

      本文链接:https://www.haomeiwen.com/subject/fqdthjtx.html