码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Flutter】vscode快速估计插件 Flutter Intl


    文章目录

    • 前言
    • 一、Flutter Intl是什么?
    • 二、使用步骤(vscode 为例子)
      • 1.安装
      • 2.输入命令:
      • 3.pubspec.yaml 里面做一些配置
        • 如果你的设备是ios的话,还需要在xcode 里面设置info.plist 添加支持的语言类型:
      • 4.在代码里面使用
      • 5.其他使用
      • 6.新增其他的语言支持,在这边新建一个arb的文件
      • 7.如何使用
        • 1.简单使用
        • 2.如果你的内容是不确定,动态的,你可以使用如下:
        • 3.可以选项的内容和复数
    • 总结


    在这里插入图片描述

    前言

    当软件有国际化的需求的时候,你可以就需要多种语言的支持了。如果你使用的ide 支持该插件的话,vscode I,ntelliJ /,Android Studio.,那么你可以使用里面的快速国际化的插件Flutter Intl来快速完成这项工作


    一、Flutter Intl是什么?

    快速构建国际化功能的插件,如果不使用也可以构建国际化的

    二、使用步骤(vscode 为例子)

    1.安装

    在这里插入图片描述

    2.输入命令:

    ctrl+shift+p
    Flutter Intl: Initialize
    在这里插入图片描述

    执行之后会自动产生一个文件和文件夹:
    lib/l10n/intl_en.arb.
    在这里插入图片描述

    3.pubspec.yaml 里面做一些配置

    dependencies:
    flutter:
    sdk: flutter
    flutter_localizations: # 添加这个
    sdk: flutter # 添加这个

    flutter_intl: # 添加这个
    enabled: true # 添加这个

    如果你的设备是ios的话,还需要在xcode 里面设置info.plist 添加支持的语言类型:

    可以在命令输入ios/Runner/Info.plist 会自动打开xcode的页面,比如下面的添加就是支持英语和德语

    <key>CFBundleLocalizations</key>
    <array>
        <string>en</string>
        <string>de_DE</string>
        ...
    </array>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4.在代码里面使用

    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({super.key});
    
      // This widget is the root of your application.
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          localizationsDelegates: const [
            S.delegate,
            GlobalMaterialLocalizations.delegate,
            GlobalWidgetsLocalizations.delegate,
            GlobalCupertinoLocalizations.delegate,
          ],
          supportedLocales: S.delegate.supportedLocales,//生成的支持的语言种类
          title: 'Flutter Demo',
          home: const MyHomePage(title: 'Flutter Demo Home Page'),
        );
      }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    5.其他使用

    Intl.getCurrentLocale() //获取当前的语言环境
    
    • 1

    6.新增其他的语言支持,在这边新建一个arb的文件

    你新增一个他会自动的获取到你新增了一个并自动添加到message_all 里面;在这里插入图片描述

    7.如何使用

    英文对应的其他的语言,比如下图:
    arb 文件是

    1.简单使用

    直接使用,这样就会在该页面上面显示,里面的内容,前提是你手机设备当前语言是你设置语言里面支持的,手机设备切换下中英文,页面显示的就会不一样

     S.of(context).myName,
    
    • 1

    在这里插入图片描述

    2.如果你的内容是不确定,动态的,你可以使用如下:

    arb 文件加入 {} 可以传入参数

    {
        "myName": "马大帅",
        "myFullName": "马大帅 {work} {age}"
    }
    
    • 1
    • 2
    • 3
    • 4
            children: <Widget>[
                Text(
                  ' ${S.of(context).myName}',
                ),
                Text(
                  ' ${S.of(context).myFullName('sb 工作', 50)}',
                ),
              ],
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    3.可以选项的内容和复数

    复数:

        "getMessageTips": "{howMany, plural, zero{你选择的零} two{你选择的二} other{你选择了{howMany}其他}}",
    
    • 1
      Text(S.of(context).getMessageTips(2)),
    
    • 1

    可以选项的内容:相当于是一个字典,传入key ,然后传入value 就可以完成

    "select": "{select,select, option1{{lastName}, select} option2{{lastName}, select} other{{lastName}, default select}}",
    
    • 1
    Text(S.of(context).select("option2", "USA"));
    Text(S.of(context).select("other", "china"));
    
    • 1
    • 2

    总结

    欢迎关注,留言,咨询,交流!
    在这里插入图片描述

  • 相关阅读:
    东郊到家app小程序公众号软件开发预约同城服务系统成品源码部署
    正则化函数表达是什么意思,一般是怎么用的
    【在Java实际开发项目中,有几个关键要点需要注意】在Java开发过程中,可能会遇到一些常见的问题和挑战。以下是一些c常见问题
    车间静电消除不掉?静电接地桩来帮忙!
    (完整版)英语常用词组大全(2000词以上)
    tensorrt deeplabv3+ 部署踩坑
    Json Schema高性能.net实现库 LateApexEarlySpeed.Json.Schema - 直接从code生成json schema validator
    Spring Boot文档目录
    【小题练手】---Java基础
    Java线程池
  • 原文地址:https://blog.csdn.net/weixin_43444734/article/details/127816708
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号