Android多国语言的设置

2024-02-14 05:18
文章标签 语言 android 设置 多国

本文主要是介绍Android多国语言的设置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Android 史上最强多语言国际化,不仅第一次会跟随系统,而且会保存用户的语言设置

分类: Android   4614人阅读  评论(16)  收藏  举报
国际化 android 语言

1.我等屌丝喜欢简单粗暴,首先来一幅图


哥们我是大陆人,当然默认语言是 中文简体,但是我刚刚切换成了繁体了


2.看下配置文件,按照这个格式 ,看图吧,简单粗暴,别问为什么,你就按照这样写,如果你想知道为什么这样写,以及详细的步骤,请百度 :  Android 多语言 

阿拉伯语 ar, 德语 de ,英语 en ,西班牙 es, 法语 fr ,日语 ja ,韩语 ko ,葡萄牙 pt , 我大天朝 和 港澳台 就略过了,不解释,




3.注意下所有语言配置文件  string.xml 里面的文本格式是一样的,只是语言不同  ,name 是相同的,对应的值不同

      



4.如何在引用这些鸟东西了,是个Android开发人员都会。。。  还是截个图吧,




5.进入史上最牛逼的环节, 第一次进入APP

    首先引进 公共方法,上代码 

        

  1. public static final String SYSTEM_LOCALE_LANGUAGUE_STRING = "system_locale_languague_string";  
  2.     public static final String SYSTEM_LOCALE_COUNTRY_STRING = "system_locale_country_string";  
  3.       
  4.     public static final String ENAME[]={"zh","en","fr","de","ja","ko","es","pt","ar"};  
  1.   
  1. <pre name="code" class="java">public static Locale getSystemLacale(Context context) {  
  2.         SharedPreferences sharedPreferences = getCurrentSharedPreferences(context);  
  3.         String str = sharedPreferences.getString(SYSTEM_LOCALE_LANGUAGUE_STRING, "no_languague");  
  4.         String strc = sharedPreferences.getString(SYSTEM_LOCALE_COUNTRY_STRING, "");  
  5.         if ("no_languague".equals(str)) {  
  6.               
  7.             Locale l=Locale.getDefault();  
  8.             String def="en";  
  9.             for (int i = 0; i < ENAME.length; i++) {  
  10.                 if (ENAME[i].equals(l.getLanguage())) {  
  11.                     def=ENAME[i];  
  12.                     break;  
  13.                 }  
  14.             }  
  15.               
  16.             Locale nLocale=null;  
  17.             if ("zh".equals(def)) {  
  18.                 if ("CN".equals(l.getCountry())) {  
  19.                     nLocale=Locale.SIMPLIFIED_CHINESE;  
  20.                 }else {  
  21.                     nLocale=Locale.TRADITIONAL_CHINESE;  
  22.                 }  
  23.                   
  24.                   
  25.             }else {  
  26.                 nLocale=new Locale(def);  
  27.             }  
  28.               
  29.               
  30.               
  31.             setSystemLacate(context, nLocale);  
  32.               
  33.             return nLocale;  
  34.         }   
  35.           
  36.           
  37.         return new Locale(str,strc);  
  38.     }  
  39.       
  40.     public static void setSystemLacale(Context context,Locale locale){  
  41.         SharedPreferences sharedPreferences = getCurrentSharedPreferences(context);  
  42.         SharedPreferences.Editor editor = sharedPreferences.edit();  
  43.         editor.putString(SYSTEM_LOCALE_LANGUAGUE_STRING, locale.getLanguage());  
  44.         editor.putString(SYSTEM_LOCALE_COUNTRY_STRING, locale.getCountry());  
  45.         editor.commit();  
  46.           
  47.     }  


 
  1.   
不用我多解释吧,获取系统默认的 Lacale ,为什么这样写了?  我就不解释了, 如果你有更好的方法,大神你就在下面评论吧!


加入改变语言的方法

  1. private void reloadLanguageAction(){  
  2.         Locale locale = StaticFunction.getSystemLacate(MainActivity.this);  
  3.         Locale.setDefault(locale);    
  4.         Configuration config = new Configuration();    
  5.         config.locale = locale;    
  6.        getBaseContext().getResources().updateConfiguration(config, null);  
  7.        getBaseContext().getResources().flushLayoutCache();  
  8.          
  9.     }  


在哪里调用了 ?   这个问题跟 学挖掘机哪家强是同一个类型的问题。 上图






6.语言切换,也就是 你看到的第一张图,这里面的功能怎么搞

  


为什么要直接跳到首页, 不跳行不行了 ?    iOS可以不跳,iOS可以发送一个通知,全局一下子改变了, Android我最早的时候尝试过使用观察者模式,蛋碎了一地。。。。如果你使用观察者模式做到了我这种效果,请评论吧。。

这篇关于Android多国语言的设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/707588

相关文章

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

Feign Client超时时间设置不生效的解决方法

《FeignClient超时时间设置不生效的解决方法》这篇文章主要为大家详细介绍了FeignClient超时时间设置不生效的原因与解决方法,具有一定的的参考价值,希望对大家有一定的帮助... 在使用Feign Client时,可以通过两种方式来设置超时时间:1.针对整个Feign Client设置超时时间

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

PyCharm如何设置新建文件默认为LF换行符

《PyCharm如何设置新建文件默认为LF换行符》:本文主要介绍PyCharm如何设置新建文件默认为LF换行符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录PyCharm设置新建文件默认为LF换行符设置换行符修改换行符总结PyCharm设置新建文件默认为LF

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在