導航:首頁 > 操作系統 > android語言切換實現

android語言切換實現

發布時間:2025-05-05 02:21:09

① 如何在android APP中設置系統語言

  1. 在不同的 value 文件夾下添加不同語言的string.xml文件,項目添加了英文、簡體中文、繁體中文三種語言,如下圖所示:

② android應用內怎麼設置語言切換

1.在工程res文件下添加對應語種的values文件,ar:阿拉伯語, en:英語 zh_rCN: 簡體中文
截圖如下:

2 .在功能清單文件中對要進行切換acitivity 進行配置添加

android:configChanges="locale"

3.對語言選擇的處理

public class MainActivity extends Activity {

Context context = MainActivity.this;;
int languageId;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
read();//設置
setContentView(R.layout.main);

findViewById(R.id.btn_change).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
save();
}
});
}

//保存
private void save() {
String[] languages = { "默認", "CN", "EN" };
AlertDialog.Builder builder = new AlertDialog.Builder(context,
android.R.style.Animation_Dialog);
builder.setTitle("選擇語言");
final SharedPreferences languagePre = context.getSharedPreferences(
"language_choice", context.MODE_PRIVATE);
final int id = languagePre.getInt("id", 0);
builder.setSingleChoiceItems(languages, id,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int index) {
switch (index) {
case 0:
// 系統默認語言
languageId = 0;
break;
case 1:
// 簡體中文
languageId = 1;
break;
case 2:
// 英語
languageId = 2;

break;
case 3:
// 阿拉伯語
languageId = 3;

break;
default:
break;
}
languagePre.edit().putInt("id", languageId).commit();
}
});
// 保存
builder.setPositiveButton("保存", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
((Activity) context).finish();
Intent intent = new Intent();
intent.setClass(context, MainActivity.class);
context.startActivity(intent);
}
});
builder.show();
}
//讀取
private void read() {
SharedPreferences languagePre = getSharedPreferences("language_choice",
Context.MODE_PRIVATE);
int id = languagePre.getInt("id", 0);
Log.d("MainActivity", "langauge_id=" + id);
Toast.makeText(context, "langauge_id=" + id, Toast.LENGTH_LONG).show();
// 應用內配置語言
Resources resources = getResources();// 獲得res資源對象
Configuration config = resources.getConfiguration();// 獲得設置對象
DisplayMetrics dm = resources.getDisplayMetrics();// 獲得屏幕參數:主要是解析度,像素等。
switch (id) {
case 0:
config.locale = Locale.getDefault(); // 系統默認語言
break;
case 1:
config.locale = Locale.SIMPLIFIED_CHINESE; // 簡體中文
break;
case 2:
config.locale = Locale.ENGLISH; // 英文
break;
default:
config.locale = Locale.getDefault();
break;
}
resources.updateConfiguration(config, dm);
}
}

③ Android切換系統語言會做哪些操作

以MIUI系統為例,來說明一下切換系統語言步驟:

1、打開手機設置應用頁面,選擇「系統高級設置」選項。

④ Android11海外版怎麼改成中文版

通過設置修改成中文版。
第一步:打開手機主界面,找到「設置」(settings)圖標。
第二步:在「設置」中找到「高級設置」(advanced settings)選項。
第三步:點開「高級設置"(advanced settings),找到「語言和輸入法」(language&input)。
第四步:在「語言和輸入法」(language&input)中,找到「語言和地區」(language_ion)設置選項。
第五步:點開「語言和地區」(language_ion)設置選項,我們看到現在的語言是英語切換成中文即可。
2020 年 9 月 14 日,ColorOS 以線上的形式舉辦了海外發布會,基於 Android 11 的 ColorOS 11 海外版正式亮相。全新的 ColorOS 11 在設計、效率和安全等方面都有不同程度的提升,為全球 OPPO 用戶帶來更極致的體驗。

⑤ Android國際化多語言切換

關於App國際化,之前有講到國際化資源、字元換、布局相關,想要了解的猛戳 用力抱一下APP國際化 。借著本次重構多語言想跟大家聊一下多語言切換,多語言切換對於一款國際化App來講是重中之重,並非難事,但是若要做好也是一件不容易的事情。

當我們做了系統的配置更改,比如說切換了系統導航或者說更改了深色模式,那麼我們一般的處理是也是要對Application作出處理。

如果項目中有用到ApplicationContext去getString(@StringRes int id)實現載入的提示語,那麼如果只是單純的重啟界面則無法讓當前的提示語跟隨當前切換的語言,所以我們要麼重啟整個應用,要麼對ApplicationContext中的Local也作出相應的更新方可,這里有一點問題,雖然Android N之後updateConfiguration是過時方法,官方給出使用createConfigurationContext代替,但是更新ApplicationContext的Local發現無效使用老版本updateConfiguration正常。

如果你發現你的應用廣播通知欄適配無效,那就是context中的Local在切換語言是並未及時更新Local,這里調試一下便知,如果是Applicaiton注冊的廣播,那麼多半情況下是沒有更新ApplicationContext的Local所導致的。

多語言適配基本步驟大概就是如此了,下面看一下適配的細節問題。

[圖片上傳失敗...(image-b42d06-1640685147639)]
還有一點Android N之後,手機系統的語言配置選項已經不是單選了,改為一個列表了,具體可以參考手機設置中的語言和輸入法,所以 setLocal(@Nullable Locale loc) 方法建議不要再使用了,我相信很多人還在用,正確的用法應該是 setLocals(@Nullable LocaleList locales) ,需要傳遞一個集合。

當你的應用使用的是androidx.appcompat:appcompat:1.2.0及以上時,BaseActivity中需要實現下面方法。

這套方案目前不在推薦,直接去替換attatchBaseContext()中的context則可,經過測試是完全正常的。

以下則是多語言操作的工具類,現在提供出來,需要的朋友可以自行進行改造。

⑥ 如何實現Android切換系統語言功能

如果想獲取手機的當前系統語言,可以通過Locale類獲取,主要方法:Locale.getDefault().getLanguage(),返回的是es或者zh;通過Locale.getDefault().getCountry()獲取當前國家或地區,返回為CN或US;如果當前手機設置為中文-中國,則使用此方法返回zh-CN,同理可得到其他語言與地區的信息。 查看原帖>>

閱讀全文

與android語言切換實現相關的資料

熱點內容
電視台回看用什麼app 瀏覽:375
怎麼刪除命令塊 瀏覽:419
女程序員乳腺癌 瀏覽:994
吃牛排富家女倒追網路程序員 瀏覽:612
android紅米調試 瀏覽:12
cad左手快捷鍵命令 瀏覽:750
sketchup快捷命令 瀏覽:788
編程程序員死亡之謎 瀏覽:296
qt編譯64位dll 瀏覽:889
分治演算法經典 瀏覽:956
pdfeditor軟體 瀏覽:459
pc最准演算法 瀏覽:727
mysql登錄命令as 瀏覽:815
如何虛擬機中做游戲伺服器配置 瀏覽:454
如何在手機上傳app到小米盒子 瀏覽:755
解壓按摩全身視頻 瀏覽:118
如何打mc伺服器 瀏覽:517
有什麼比較好用的約游戲app 瀏覽:129
zip壓縮包官方下載 瀏覽:260
程序員節開源英雄會 瀏覽:586