码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【国际化Intl】Flutter 国际化多语言实践


    目标:实现flutter国际化

    提示:这里参考一下几个链接

    例如:

    • https://github.com/ThinkerWing/language
    • https://juejin.cn/post/6844903823119482888
      这篇也很详细,还有包括兼容中文的繁体简体… 可以看看

    feat/use-Flutter-Intl

    该分支对应的提交是使用Android Studio 和 Flutter Intl插件 并根据掘金这篇文章的实践,兼容汉字简体和繁体字
    https://github.com/ThinkerWing/language/commit/f5fd58453f85b5b9c0e58df6270fac4cf22f200d

    实现效果

    • 本地语言中文:你好,think
    • 本地语言英语:hello,think

    在这里插入图片描述

    开始之前先创建项目

    flutter create `project`
    
    可以看我git上的提交记录,创建项目完之后initial commit了,然后第二次提交就是增加多语言的功能。
    https://github.com/ThinkerWing/language
    
    • 1
    • 2
    • 3
    • 4

    第一步,添加intl and flutter_localizations,并启动generate标志:

    https://pub.flutter-io.cn/packages/intl/install
    这将在您的包的 pubspec.yaml 中添加这样一行
    在这里插入图片描述
    https://docs.flutter.dev/development/accessibility-and-localization/internationalization
    在这里插入图片描述
    在这里插入图片描述
    启动generate标志
    在这里插入图片描述


    第二步,lib文件夹中新建文件夹l10n或者locale,并在其中创建app_en.arb 和app_zh.arb文件:

    在这里插入图片描述


    第三步,在flutte项目的根目录中添加l10n.yaml, 内容如下:

    Add a new yaml file to the root directory of the Flutter project called l10n.yaml with the following content:

    arb-dir: lib/l10n
    template-arb-file: app_en.arb
    output-localization-file: app_localizations.dart
    
    • 1
    • 2
    • 3

    添加完成之后,执行命令 flutter run,dart_tools会自动生成相关的文件
    在这里插入图片描述


    第四步,在主程序MaterialApp中,添加下面内容:

    需要导入的包

    import 'package:flutter/material.dart';
    import 'package:flutter_gen/gen_l10n/app_localizations.dart';
    import 'package:flutter_localizations/flutter_localizations.dart';
    
    • 1
    • 2
    • 3
    return const MaterialApp(
      title: 'Localizations Sample App',
      localizationsDelegates: [							// 本地化应用的代理
        AppLocalizations.delegate,  					// 应用程序本地化代理
        GlobalMaterialLocalizations.delegate, 			// 全局材质组件的本地化代理
        GlobalWidgetsLocalizations.delegate,			// 全局组件本地化代理
      ],
      supportedLocales: [
        Locale('en', 'US'), // English, no country code
        Locale('zh', 'CN'), // Spanish, no country code
      ],
      home: MyHomePage(),
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在您的应用程序的任何位置使用 AppLocalizations。 在这里,翻译后的消息用于文本小部件。
    Use AppLocalizations anywhere in your app. Here, the translated message is used in a Text widget.

    Text(AppLocalizations.of(context)!.helloWorld);
    
    • 1

  • 相关阅读:
    数组问题之《两数之和》以及《三数之和 》
    B站:AB test [下]
    金融科技开题资源汇总
    【机器学习】消息传递神经网络(MPNN)在分子预测领域的医学应用
    Java练手任务总结【19】
    21天经典算法之希尔排序
    PyTorch深度学习实战(3)——使用PyTorch构建神经网络
    适应复杂环境的工业路由器钡铼R40在大型基础设施中的应用
    运维监控系统
    Mysql提取表字段中的字符串
  • 原文地址:https://blog.csdn.net/daddykei/article/details/128124815
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号