1.前端界面代码

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><TextViewandroid:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="@string/user_id"android:textColor="#F44336"android:textSize="30sp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.0"app:layout_constraintStart_toStartOf="@+id/textView"app:layout_constraintTop_toBottomOf="@+id/textView" /><TextViewandroid:id="@+id/textView"android:layout_width="153dp"android:layout_height="38dp"android:layout_marginTop="72dp"android:text="@string/user_name"android:textColor="#4CAF50"android:textSize="30sp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.267"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/imageView" /><TextViewandroid:id="@+id/textView3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:text="@string/user_phone"android:textColor="#03A9F4"android:textSize="30sp"app:layout_constraintStart_toStartOf="@+id/textView2"app:layout_constraintTop_toBottomOf="@+id/textView2" /><ImageViewandroid:id="@+id/imageView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="84dp"android:src="@drawable/success"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintHorizontal_bias="0.443"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

图片:

界面运行效果:

2.实现国际化

当手机设置相应的语言时App会自适应对应语言,如手机设置语言为英文,打开APP就自动将中文转变为英文,效果如下:

有二种实现方式:

  • 手动设置

前端的文本内容,是引用Values下的Strings.xml中的文本内容

手动方式就是新建不同的Values文件(Values-国际化后缀),然后Copy一份Strings.xml到新的Values中,然后将Strings.xml中的内容修改为对应语言描述。

这里Values的资源文件夹的写法规则有二种方式,第一种就是Values-国家简写,第二种方式就是Values-国家简写-地名。

中文(中国):values-zh-rCN
中文(中国台湾):values-zh-rTW
中文(中国香港):values-zh-rHK
英语(美国):values-en-rUS
英语(英国):values-en-rGB
英文(澳大利亚):values-en-rAU
英文(加拿大):values-en-rCA
英文(爱尔兰):values-en-rIE
英文(印度):values-en-rIN
英文(新西兰):values-en-rNZ
英文(新加坡):values-en-rSG
英文(南非):values-en-rZA
阿拉伯文(埃及):values-ar-rEG
阿拉伯文(以色列):values-ar-rIL
保加利亚文: values-bg-rBG
加泰罗尼亚文:values-ca-rES
捷克文:values-cs-rCZ
丹麦文:values-da-rDK
德文(奥地利):values-de-rAT
德文(瑞士):values-de-rCH
德文(德国):values-de-rDE
德文(列支敦士登):values-de-rLI
希腊文:values-el-rGR
西班牙文(西班牙):values-es-rES
西班牙文(美国):values-es-rUS
芬兰文(芬兰):values-fi-rFI
法文(比利时):values-fr-rBE
法文(加拿大):values-fr-rCA
法文(瑞士):values-fr-rCH
法文(法国):values-fr-rFR
希伯来文:values-iw-rIL
印地文:values-hi-rIN
克罗里亚文:values-hr-rHR
匈牙利文:values-hu-rHU
印度尼西亚文:values-in-rID
意大利文(瑞士):values-it-rCH
意大利文(意大利):values-it-rIT
日文:values-ja-rJP
韩文:values-ko-rKR
立陶宛文:valueslt-rLT
拉脱维亚文:values-lv-rLV
挪威博克马尔文:values-nb-rNO
荷兰文(比利时):values-nl-BE
荷兰文(荷兰):values-nl-rNL
波兰文:values-pl-rPL
葡萄牙文(巴西):values-pt-rBR
葡萄牙文(葡萄牙):values-pt-rPT
罗马尼亚文:values-ro-rRO
俄文:values-ru-rRU
斯洛伐克文:values-sk-rSK
斯洛文尼亚文:values-sl-rSI
塞尔维亚文:values-sr-rRS
瑞典文:values-sv-rSE
泰文:values-th-rTH
塔加洛语:values-tl-rPH
土耳其文:values--r-rTR
乌克兰文:values-uk-rUA
越南文:values-vi-rVN
缅甸语 : values-my

生成对应的string文件不用每个都改,这样很麻烦,教大家一个简单方法如下,选中文本,键盘输入alt+enter,后续操作如下:

  • 如果需要很多语言的时候,手动的切换很麻烦。这时需要用到Android Studio插件:AndroidLocalizationer,它可以实现一键国际化。

使用链接:https://github.com/DaveBoy/AndroidLocalizationer(需要申请百度或者谷歌的翻译key比较麻烦这里就不操作了)

安装成功后,右击strings.xml选择Convert to languages

点击ok就会自动生成对应的values文件

更改学习链接:点击学习!

Android实现国际化相关推荐

  1. Android语言国际化values资源文件命名规则

    今天,简单讲讲 android 里如何将语言国际化,和各个国家语言的value文件夹的命名规则. 昨天,需要将app的字符资源国际化,可是却不知道如何命名,在网上找了资料,终于解决了问题. Andro ...

  2. Android 语言国际化

    前言 我们在使用Android手机系统的时候经常在"设置"项里面会提供用户多种系统语言选择,比如:中文.英语-- 大家或许已经发现这些语言显示顺序都是"从左往右" ...

  3. Android App 国际化详解

    前言 internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化),简称L10n.一般用语言_地区的形式表示一种语言,如zh_ ...

  4. android语言国际化(最高适配Android31)

    android语言国际化适配其实也就那么回事,最主要要考虑适配的问题,sdk17以下和sdk17及以上Configuration配置Locale的方式有所改变,sdk N 及以上API发生了很大的变化 ...

  5. Android develop 国际化

    转自别人的一片文章,出处以找不到了,觉得写得不错,记录一下 一.概念 1.Internationalization(I18N) 国际化 使得App在不改的源码.资源文件的情况下,能够适应各国.各文化. ...

  6. Android之国际化部分文字生效而部分文字没有生效的坑

    1 问题 Android国际化我们知道只要在res目录下面,创建不同国家的文件夹然后,把不同国家对于的语言以键值对的方式写进strings.xml文件就行,这是一个非常简单的操作,但是今天遇到了一个很 ...

  7. 关于Android app 国际化 中英文翻译的细节处理

    导语: 最近一个项目上有要求完成app国际化,也就是如果系统语言是英文,那么你的app打开时就会自动读取string 中的字符串资源,自动完成匹配,以满足国际化需求,那么我们就按照步骤走,完成我们的a ...

  8. android i18n,Android i18n 国际化

    本文节选自<Netkiller Java 手札> Netkiller Java 手札 Mr. Neo Chan, 陈景峯(BG7NYT) 中国广东省深圳市望海路半岛城邦三期 518067 ...

  9. Android项目国际化(本地化,全球化,多语言)

    目标 在Android项目中实现国际化,支持多种语言. 开发工具 下载Android Studio 打开strings文件 添加其他语言 修改内容 关闭"Translations Edito ...

最新文章

  1. 把整个DIV变成超链接
  2. 用 PHP 读取 XML
  3. PrepareStatement 和Statement 的区别?
  4. mybatis多个参数(不使用@param注解情况下),sql参数占位符正确写法
  5. WinRAR(WinZip)压缩与解压实现(C#版Window平台)
  6. Asp.Net4.0/VS2010新变化(2):网站自动预热
  7. oracle10g无监听配置文件,关于监听配置文件listener.ora的问题
  8. Atitit.词法分析的理论原理 part2
  9. 换手率:为什么美国人不爱频繁申赎基金?
  10. 做对了什么与留下了什么 小米上市的背后
  11. MacBook Air 2013双系统装机
  12. 85-网络编程发送函数(sendto)
  13. 给新建属性设置自己需要的快捷键
  14. 四方伟业冲刺科创板:年营收为2.8亿 南威软件与文化基金是股东
  15. 4-任务的挂起与解挂
  16. 什么是粘包?socket 中造成粘包的原因是什么? 粘包的处理方式
  17. c语言中定义一个十六进制的数,C语言如何定义一个16进制数
  18. 如何成为一个软件构架师
  19. 时间控件-时分秒/分秒/年月日
  20. String s3 = quot;helquot; + new String(quot;loquot;);做了什么

热门文章

  1. 【转载】yafu的安装及使用(线下工具与线上网站)
  2. 强推Windows资源管理器软件Clover,类似谷歌 Chrome 浏览器的多标签页
  3. Ubuntu20.04主题美化
  4. 惠普台式笔记本一体机电脑BIOS中文版对照图解介绍
  5. Java关键字注意事项
  6. 使用ICGC数据库进行肿瘤组织突变分析,绘制瀑布图等
  7. scratch学算法3-冒泡排序
  8. X-ray重金属检测仪工程文件的自动格式转换
  9. 第113章 SQL函数 QUARTER
  10. 福昕阅读器更改白色背景为保护色(2020-11-15)