Flutter本地化(国际化)之App名称

文章目录

  • Android国际化
  • IOS国际化

Flutter开发的App,如果名称想要跟随着系统的语言自动改变,则必须同时配置Android和IOS原生。

Android国际化

  1. 打开android\app\src\main\res\values
    在这里插入图片描述
  2. 创建strings.xml
    在values上右键,选择New>Values Resource File
    在这里插入图片描述
    在新窗口中输入文件名strings.xml
    在这里插入图片描述
    strings.xml文件中,输入以下内容
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <!--    appName是key,后面的值就是本地化实际的名称--><string name="appName">App name default locale</string>
    </resources>
    
  3. 创建多个语言的strings.xml
    在res目录上右键,选择New>Android Resource Directory
    在这里插入图片描述
    左侧Available Qualifiers选择Locale,点击中间的右箭头,然后在右边选择需要国际化的语言和地区,点击OK.
    在这里插入图片描述
    会自动创建values前缀的文件夹,将之前的strings.xml复制进去.
    在这里插入图片描述
    然后将值修改成对应语言.
    这里推荐使用Android Studio自带的国际化编辑器Translations Editor,在strings.xml的右上角,点击Open editor打开。
    在这里插入图片描述
    在国际化编辑器,可以很方便地修改每一种语言定义的值,这样就不需要打开多个string.xml来修改了。
    在这里插入图片描述
  4. 引用多语言的key
    打开Manifest.xml,将label的值替换为我们定义的资源id,引用方式为@string/id名
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.flutter_app"><applicationandroid:label="@string/appName"android:name="${applicationName}"android:icon="@mipmap/ic_launcher"><!-- 其他省略... --></application>
</manifest>

Android官方推荐资源的key命名方式全部小写,单词之间以下划线分开,例如app_name

最后重新运行App,当系统语言切换时,App的名称也会跟着改变。
当然了,如果切换的语言是不被App支持,会以默认的values文件下的资源值为主。

IOS国际化

  1. 首先要添加支持的语言。默认是en(英语)。如果已经设置过了,请看下一步。
    如果要设置其他语言为默认语言,选中语言后点击Set Default
    在这里插入图片描述

  2. 创建InfoPlist文件。
    选中Runner,右键New File...
    在这里插入图片描述
    在弹出的窗口中,选择Resouce中的String Catalog,点击Next
    在这里插入图片描述
    保存名称为InfoPlist,点击Creat创建文件
    在这里插入图片描述

  3. 定义多语言的key和value。
    打开InfoPlist,可以看到会自动有我们支持的语言。
    在这里插入图片描述
    点击+号,创建一个字符串资源.
    在这里插入图片描述
    将key的名称改为CFBundleDisplayName,后面的值就是本地化的app名称。
    在这里插入图片描述
    在这里插入图片描述
    对应的源码文件是ios/Runner/InfoPlist.xcstrings,看结构就是一个JSON。

    {"sourceLanguage" : "en","strings" : {"CFBundleDisplayName" : {"extractionState" : "manual","localizations" : {"en" : {"stringUnit" : {"state" : "translated","value" : "App Name"}},"zh-Hans" : {"stringUnit" : {"state" : "translated","value" : "App名称"}}}}},"version" : "1.0"
    }
    
  4. 最后在Info.plist中引用key。
    CFBundleDisplayNameCFBundleName的value都改为$(PRODUCT_NAME)
    在这里插入图片描述

重新运行IOS App,只要支持当前系统的语言,就会显示对应的app名称。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/291684.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

12、Qt:用QProcess类启动外部程序:简单使用

一、说明 简单使用&#xff1a;在一个函数中&#xff0c;使用QProcess类的临时对象调用可执行文件exe&#xff0c;只有这个exe执行完了&#xff0c;这个函数才往下执行&#xff0c;一次性打印出exe所有输出信息&#xff1b;复杂使用&#xff1a;创建QProcess类的全局对象&…

使用HTTP协议有哪些风险?HTTP与HTTPS的区别是什么

作为两种常见的网络协议&#xff0c;HTTP和HTTPS都是用于在浏览器和服务器之间传输数据的。然而在保障数据安全性方面&#xff0c;HTTPS远远优于HTTP。在网络安全愈发重要的当下&#xff0c;HTTP协议的不安全性使得其逐渐被淘汰弃用。那么使用HTTP协议有哪些风险呢&#xff1f;…

Unity中Shader缩放矩阵

文章目录 前言一、直接相乘缩放1、在属性面板定义一个四维变量&#xff0c;用xyz分别控制在xyz轴上的缩放2、在常量缓存区申明该变量3、在顶点着色器对其进行相乘&#xff0c;来缩放变换4、我们来看看效果 二、使用矩阵乘法代替直接相乘缩放的原理1、我们按如下格式得到缩放矩阵…

大模型之二十一-小语言模型塞道开启

当前提到大语言模型&#xff0c;大家想到的都是动辄百亿规模以上参数量的模型&#xff0c;13B、70B都是稀疏平常入门级的&#xff0c;但是目前从模型层面来看&#xff0c;模型参数量的规模两极分化已经来临&#xff0c;早期各大公司为了效果怼上去&#xff0c;采取了简单粗暴的…

伽马校正:FPGA

参考资料&#xff1a; Tone Mapping 与 Gamma Correction - 知乎 (zhihu.com) Book_VIP: 《基于MATLAB与FPGA的图像处理教程》此书是业内第一本基于MATLAB与FPGA的图像处理教程&#xff0c;第一本真正结合理论及算法加速方案&#xff0c;在Matlab验证&#xff0c;以及在FPGA上…

人工智能可以战胜人类智慧大脑么?

引言 在当今快速发展的科技时代&#xff0c;人工智能的进步日新月异&#xff0c;引发了一场深刻的讨论&#xff1a;能否有一天&#xff0c;人工智能能够超越甚至战胜人类智慧&#xff1f;这个问题涉及到人类认知的广泛领域&#xff0c;牵涉到人类思维的深层次特质以及AI技术在…

产业园区运营管理方案的六大核心要素

产业园区是我国区域经济的重要载体&#xff0c;是一个集产业、技术、服务、管理等于一体的经济组织形态。随着我国经济的高速发展&#xff0c;各地园区快速扩张&#xff0c;彼此间竞争日益激烈&#xff0c;在这样的大环境下&#xff0c;如何做好园区的运营管理&#xff0c;保障…

[CVPR 2023:3D Gaussian Splatting:实时的神经场渲染]

文章目录 前言小结 原文地址&#xff1a;https://blog.csdn.net/qq_45752541/article/details/132854115 前言 mesh 和点是最常见的3D场景表示&#xff0c;因为它们是显式的&#xff0c;非常适合于快速的基于GPU/CUDA的栅格化。相比之下&#xff0c;最近的神经辐射场&#xf…

计算机网络实验速成

目录 网络实验速成 自动连接类型&#xff1a; 指示灯状态说明&#xff1a; 显示接口&#xff1a; 放置注释信息&#xff1a; 配置计算机&#xff1a; 同理&#xff0c;配置服务器&#xff1a; 配置路由器&#xff1a; router0 配置&#xff1a; router1 配置&…

技术分享-Jenkins

持续集成及Jenkins介绍 软件开发生命周期叫SDLC&#xff08;Software Development Life Cycle&#xff09;&#xff0c;集合了计划、开发、测试、部署过程。 在平常的开发过程中&#xff0c; 需要频繁地&#xff08;一天多次&#xff09;将代码集成到主干&#xff0c;这个叫持…

助力智能车辆检测计数,基于官方YOLOv8全系列[n/s/m/l/x]开发构建道路交通场景下不同参数量级车流检测计数系统

在很多道路交通卡口都有对车流量的统计计算需要&#xff0c;有时候一些特殊时段、特殊节日等时间下对于车流的监测预警更为重要&#xff0c;恶劣特殊天气下的提早监测、预警、限流对于保证乘客、驾驶员的安全是非常重要的措施&#xff0c;本文的主要目的就是想要开发构建道路交…

计算机基础之U盘重装系统

一. 如何选择操作系统 对于Windows操作系统来说&#xff0c;大家选择困难主要集中在Windows 7和Windows 10上&#xff1b;至于XP和Win8&#xff0c;一个是老古董一个是过渡产品都不用考虑&#xff1b;喜欢Win7可能更多的是使用习惯&#xff0c;当然优点也有很多&#xff0c;比…