Kotlin 32. Kotlin 多语言支持
Kotlin 多语言支持
对于 Kotlin 来说,当我们新建一个项目时,会默认在 values/ 文件夹下,生成一个 strings.xml 文件。比如说,
<resources><string name="app_name">exampleNewProject</string>
</resources>
当我们在 activity_main.xml 中,添加一个按钮,比如。我们需要给这个按钮设置一个Text,比如:PRESS ME。
<Buttonandroid:id="@+id/btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:text="PRESS ME" />
这个时候,系统就会提醒我们,要这么写:
<Buttonandroid:id="@+id/btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:text="@string/press_me" />
回到 strings.xml 文件,我们发现,多了一条:
<resources><string name="app_name">notificationSoundPlay</string><string name="press_me">PRESS ME</string>
</resources>
所以,我们只需要修改这里的各个string变量的值,对应文件中的值即会发生改变。
那么,下一个问题来了,我们如何支持多语言APP呢?即,如果我们设置APP语言为中文,当我们再次打开这个APP时,如何会显示带着中文的按钮呢?
我们右键 res,New,Android Resource File

点击 Locale

找到 Chinese 的选项,然后如下图所示,新建一个 string.xml 文件。文件名还是一样的,但它和上面那个 string.xml 不在一个文件夹下。

新建的 string.xml 里面基本是空的,如下图:

我们能看到,这个 string.xml 后面有一个淡淡的 (zh)。
最后,我们将需要转化的string变量写在这里,并翻译成中文即可:
<?xml version="1.0" encoding="utf-8"?>
<resources><string name="press_me">点我</string>
</resources>
``(需要注意,我们将手机的系统语言换成中文之后,才会看到这个包含中文的按钮)相关文章:
Kotlin 32. Kotlin 多语言支持
Kotlin 多语言支持 对于 Kotlin 来说,当我们新建一个项目时,会默认在 values/ 文件夹下,生成一个 strings.xml 文件。比如说, <resources><string name"app_name">exampleNewProject</string> <…...
【Flutter入门到进阶】Dart进阶篇---DartVM单线程设计原理
1 虚拟机的指令执行设计 1.1 虚拟机的分类 基于栈的虚拟机,比如JVM虚拟机 基于寄存器的虚拟机,比如Dalvik虚拟机 1.2 虚拟机的概念 首先问一个基本的问题,作为一个虚拟机,它最基本的要实现哪些功能? 他应该能够模拟…...
Dem和NvM(NVRAM Manager)的交集
NVRAM(NvM)提供了在NVRAM中存储数据Block的机制。 NVRAM Block(最大大小取决于配置)被分配给Dem,并由Dem实现事件状态信息和相关数据的永久存储(例如通电复位)。 ECU 状态管理器(Ec…...
AI神经网络CNN/RNN/DNN/SNN的区别对比
@版权声明: 本文由 ChatGpt 创作; BiliBili: https://www.bilibili.com/video/BV17D4y1P7pM/?share_source=copy_web&vd_source=6d217e0ff6387a749dc570aba51d36fd 引言 随着人工智能技术的发展,神经网络作为人工智能的核心技术之一,被广泛应用于图像识别、语音识别、…...
【JavaWeb】一文学会JPA
✅✅作者主页:🔗孙不坚1208的博客 🔥🔥精选专栏:🔗JavaWeb从入门到精通(持续更新中) 📋📋 本文摘要:本篇文章主要介绍JPA的概念、注解实现ORM规范…...
【安卓逆向】APK修改与反编译回编译
【安卓逆向】反编译修改APK回编译使用工具流程步骤Apktool相关安装与使用常用命令备查APK签名命令备查实战练习反编译查看修改的地方使用Apktool反编译得到产物文件夹并进行修改回编APK实用场景在日常开发我们可能需要替换某些资源或者修改某些代码,但是我们没有源码…...
【计组笔记04】计算机组成原理之多模块存储器、Cache高速缓存存储器、Cache地址映射
这篇文章,主要介绍计算机组成原理之多模块存储器、Cache高速缓存存储器、Cache地址映射。 目录 一、双口RAM和多模块存储器 1.1、存取周期 1.2、双口RAM 1.3、多模块存储器...
英语基础-状语的应用
1. 非谓语动词作状语 1. 试着翻译下列句子 当他是一个小孩子的时候,他很喜欢玩电脑游戏。 When he was a child, he liked playing computer games. 如果他通过考试,他妈妈就会给他买一台新电脑。 If he passes the examination, his mother will b…...
发表论文需要注意的两点(建议收藏)
在学习人工智能的过程中,论文有着重要的作用,无论是深入学术科研,还是毕业找工作,都离不开发表论文这一步骤,所以今天就和大家分享一些关于论文发表的经验,希望对大家有所帮助。 为什么要早点发表论文&…...
ISTQB-TM-大纲
1. 测试过程 1.1 简介 在 ISTQB 软件测试基础级认证大纲中已描述了基本的测试过程包括以下活动: 计划和控制分析和设计实施和执行评估出口准则和报告测试结束活动 基础级大纲认同这些活动虽然有逻辑顺序,但过程中的某些活动可能重叠,或并行…...
Java SPI 机制详解
在面向对象的设计原则中,一般推荐模块之间基于接口编程,通常情况下调用方模块是不会感知到被调用方模块的内部具体实现。一旦代码里面涉及具体实现类,就违反了开闭原则。如果需要替换一种实现,就需要修改代码。 为了实现在模块装…...
腾讯前端经典react面试题(附答案)
React 性能优化在哪个生命周期?它优化的原理是什么? react的父级组件的render函数重新渲染会引起子组件的render方法的重新渲染。但是,有的时候子组件的接受父组件的数据没有变动。子组件render的执行会影响性能,这时就可以使用s…...
Go语言基础(十五):垃圾回收机制(三色标记)
文章目录一、标记清除(三色标记)大致原理1、标记细节2、root对象二、垃圾回收触发机制垃圾回收(Garbage Collection),是一种自动管理内存的机制。传统编程语言(如C/C)需要开发者对无用内存资源进…...
一文了解build.gradle配置
Gradle 参考官方文档:https://developer.android.com/studio/build?hlzh-cn#groovy settings.gradle 存放于项目根目录下,此设置文件会定义项目级代码库设置,并告知 Gradle 在构建应用时应将哪些模块包含在内 接下来将以一个简单的 settin…...
【Redis 高级】- 持久化 - RDB
【Redis 高级】- 持久化 - RDB 👑什么是持久化呢? 那当然是够持久呀,这个持久如果在你不主动去删除的情况下,它就一直存在的。 🎷那么这有什么用呢? 举个栗子:我们在用 PowerPoint 在写价值 …...
SpringSecurity的安全认证的详解说明(附完整代码)
SpringSecurity登录认证和请求过滤器以及安全配置详解说明 环境 系统环境:win10 Maven环境:apache-maven-3.8.6 JDK版本:1.8 SpringBoot版本:2.7.8 根据用户名密码登录 根据用户名和密码登录,登录成功后返回Token数据…...
详解制造业业务数据模型
业务数据在企业数字化转型或单体应用的开发中都是至关重要的。站在跨业务跨部门的企业数字化转型角度,离不开业务架构的设计,详细的业务领域和业务数据模型是后续应用架构和数据架构的必要输入。站在单部门单场景的信息化角度,应用程序的需求…...
BigDecimal使用注意避坑
目录一. BigDecimal的初始化精度丢失问题二. BigDecimal在进行除法运算时需设置精度,否则对于除不尽的情况会抛出异常三. 不要使用BigDecimal的equals方法比较大小, 否则可能会因为精度问题导致比较结果和预期的不一致在java.math包中提供了对大数字的操作类,用于进…...
windows环境下,vue启动项目后打开chrome浏览器
前言:关于vue启动后打开chrome浏览器,我查了很多资料,方案如下: 1、增加环境变量BROWSER为chrome(试了没效果) 2、设置系统的默认浏览器为chrome(应该可以,但没试;因为…...
SpringBoot2.X整合ClickHouse项目实战-从零搭建整合(三)
一、ClickHouseSpringBoot2.XMybatisPlus整合搭建 二、需求描述和数据库准备 三、ClickHouse统计SQL编写实战和函数使用 四、ClickHouseSpringBoot2.X案例-基础模块搭建 controller/request层 mapper层 model层 service层 五、ClickHouseSpringBoot2.X案例-数据统计接口 …...
避坑指南:海康RGBD工业相机Python开发那些事儿——从环境配置到实时显示
避坑指南:海康RGBD工业相机Python开发全流程实战 第一次接触海康RGBD相机时,我被它强大的深度感知能力吸引,但随之而来的是一连串的环境配置和开发难题。记得那个深夜,我对着报错的OpenCV界面发呆,才意识到工业级设备的…...
5分钟快速上手BepInEx:Unity游戏插件开发的终极解决方案
5分钟快速上手BepInEx:Unity游戏插件开发的终极解决方案 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx(Bepis Injector Extensible)是…...
Cyber Engine Tweaks终极优化指南:5个简单技巧快速提升《赛博朋克2077》AMD处理器性能
Cyber Engine Tweaks终极优化指南:5个简单技巧快速提升《赛博朋克2077》AMD处理器性能 【免费下载链接】CyberEngineTweaks Cyberpunk 2077 tweaks, hacks and scripting framework 项目地址: https://gitcode.com/gh_mirrors/cy/CyberEngineTweaks Cyber En…...
AI赋能低代码开发:JeecgBoot如何用人工智能重塑企业级应用开发
AI赋能低代码开发:JeecgBoot如何用人工智能重塑企业级应用开发 【免费下载链接】jeecg-boot 一款 AI 驱动的低代码平台,提供"零代码"与"代码生成"双模式——零代码模式一句话搭建系统,代码生成模式自动输出前后端代码与建…...
3分钟掌握ZXPInstaller:Adobe插件安装的革命性解决方案
3分钟掌握ZXPInstaller:Adobe插件安装的革命性解决方案 【免费下载链接】ZXPInstaller Open Source ZXP Installer for Adobe Extensions 项目地址: https://gitcode.com/gh_mirrors/zx/ZXPInstaller 还在为Adobe插件安装而烦恼吗?ZXPInstaller作…...
Kimi-VL-A3B-Thinking开源可部署:提供ONNX导出路径与推理引擎适配
Kimi-VL-A3B-Thinking开源可部署:提供ONNX导出路径与推理引擎适配 1. 模型简介 Kimi-VL-A3B-Thinking是一款高效的开源混合专家(MoE)视觉语言模型(VLM),具备以下核心特点: 参数高效ÿ…...
2026山东大学软件学院项目实训(一)
Vue 3工程化实践与组件设计 核心任务概述 本次项目实训聚焦Vue 3前端工程化配置与全局组件开发,目标是通过模块化设计提升代码复用率,并建立规范的前后端协作流程。核心任务包括: 使用Pinia实现全局状态管理基于Ant Design Vue完成响应式布…...
YimMenu深度解析:GTA V游戏修改工具的核心机制与实战指南
YimMenu深度解析:GTA V游戏修改工具的核心机制与实战指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/Y…...
Fish Speech 1.5语音延迟优化:2-5秒响应背后的推理加速技巧
Fish Speech 1.5语音延迟优化:2-5秒响应背后的推理加速技巧 1. 引言:从分钟级到秒级的突破 还记得早期的文本转语音系统吗?输入一段文字,等待几分钟才能听到结果,那种焦急的体验让很多开发者望而却步。如今ÿ…...
突破QQ音乐加密限制:qmcdump全场景解密工具实战指南
突破QQ音乐加密限制:qmcdump全场景解密工具实战指南 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 副标题&…...
