当前位置: 首页 > news >正文

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时,如何会显示带着中文的按钮呢?

我们右键 resNewAndroid 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>
``(需要注意,我们将手机的系统语言换成中文之后,才会看到这个包含中文的按钮)
http://www.lryc.cn/news/13231.html

相关文章:

  • 【Flutter入门到进阶】Dart进阶篇---DartVM单线程设计原理
  • Dem和NvM(NVRAM Manager)的交集
  • AI神经网络CNN/RNN/DNN/SNN的区别对比
  • 【JavaWeb】一文学会JPA
  • 【安卓逆向】APK修改与反编译回编译
  • 【计组笔记04】计算机组成原理之多模块存储器、Cache高速缓存存储器、Cache地址映射
  • 英语基础-状语的应用
  • 发表论文需要注意的两点(建议收藏)
  • ISTQB-TM-大纲
  • Java SPI 机制详解
  • 腾讯前端经典react面试题(附答案)
  • Go语言基础(十五):垃圾回收机制(三色标记)
  • 一文了解build.gradle配置
  • 【Redis 高级】- 持久化 - RDB
  • SpringSecurity的安全认证的详解说明(附完整代码)
  • 详解制造业业务数据模型
  • BigDecimal使用注意避坑
  • windows环境下,vue启动项目后打开chrome浏览器
  • SpringBoot2.X整合ClickHouse项目实战-从零搭建整合(三)
  • 学海记录项目测试报告
  • 【1792. 最大平均通过率】
  • 言简意赅+图解 函数传参问题(传值、传地址 500字解决战斗)
  • UML-时序图以及PlantUML绘制
  • 【Redis】Redis 有序集合 Zset 操作 ( 简介 | 查询操作 | 增加操作 | 删除操作 | 修改操作 )
  • Java特性之设计模式【策略模式】
  • IR-CUT 保证摄像机成像效果的滤镜
  • openpnp - 普通航空插头和PCB的连接要使用线对板连接器
  • Python3 错误和异常实例及演示
  • Android 9.0第三方app根据包名设置为横屏显示
  • MySQL会导致索引失效的情况与解决索引失效的方法