Android app 다 중 언어 전환 기능 구현
1.다 중 언어 파일 추가
서로 다른 value 폴 더 에(예 를 들 어 value,value-en,values-zh-rtW 폴 더)서로 다른 언어의 string.xml 파일 을 추가 합 니 다.우리 의 프로젝트 는 영어,간 체 중국어,번 체 중국어 세 가지 언어 를 추 가 했 습 니 다.아래 그림 과 같 습 니 다.
프로젝트 모드:
Android 모드:
그 중에서 영 어 는 번역 이 필요 합 니 다.번 체 가 전문 적 으로 번역 되 지 않 으 면 간단 하고 복잡 한 사 이 트 를 찾 아 간 체 중국 어 를 번 체 중국어 로 바 꾸 고 사 이 트 를 추천 할 수 있 습 니 다.
http://www.vifo.com.cn/fanti/
다음은 중국어 와 영어 만 간략하게 설명 하 겠 습 니 다.
2.현재 activity 시작 에서(onCreate()또는 onResume()시스템 언어 를 가 져 올 수 있 습 니 다.
Locale locale = Locale.getDefault();
String language = locale.getLanguage();
language 는 우리 가 시스템 에서 받 은 언어 입 니 다.여기 가 중국어 라면'zh'를 받 았 습 니 다.영어 가'cn'이 라면.
3.시스템 언어 를 얻 으 면 우 리 는 시스템 언어의 판단 을 통 해 우리 app 에 대응 하 는 시스템 언어 를 바 꿔 야 한다.
protected void showLanguage(String language) {
//
Resources resources = getResources();
Configuration config = resources.getConfiguration();
DisplayMetrics dm = resources.getDisplayMetrics();
if (language.equals("zh")) {
config.locale = Locale.SIMPLIFIED_CHINESE;
} else {
config.locale = Locale.ENGLISH;
}
resources.updateConfiguration(config, dm);
// ( , )
PreferenceUtil.commitString("language", language);
}
이렇게 하면 핸드폰 이 시작 할 때 시스템 이 중국어 라면 app 은 중국어 입 니 다.시작 할 때 시스템 이 영어 라면 app 은 영어 입 니 다.이것 은 시작 할 때 만 언어 가 설정 되 어 있 습 니 다.그러나 현재 app 이 중국 어 를 사용 하고 app 이 종료 되 지 않 은 상태 에서 시스템 을 영어 로 설정 합 니 다.그러면 당신 이 app 에 돌 아 왔 을 때 영어 가 아니 라 중국어 입 니 다.프로그램 이 종 료 된 후에 다시 들 어 올 때 영어 가 되 어야 합 니 다.이런 체험 이 전혀 좋 지 않 습 니 다.그러면 우 리 는 어떻게 해 야 시스템 언어 를 바 꿀 수 있 습 니까?나의 app 은 따라 바 꿀 수 있 습 니까?이른바 동적 변화 입 니 다.그럼 우 리 는 이렇게 할 수 있다.
@Override
protected void onResume() {
super.onResume();
String LAN = PreferenceUtil.getString("language","");
Locale locale = Locale.getDefault();
String language = locale.getLanguage();
Log.i(" ――――――――",language);
if(!language.equals("")){
if(!LAN.equals(language)){
freshView();// MainActivity
}
}
showLanguage(language);
}
private void freshView(){
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
우선 Preferenceutil 이것 은 제 가 직접 쓴 도구 류 입 니 다.바로 Shared Preferences 저장 입 니 다.onResume()에서 중요 한 것 은 언어 가 이전에 저 장 된 시스템 의 language 와 같 는 지 판단 하 는 것 입 니 다.다 르 면 MainActivity 를 다시 시작 하면 시스템 language 를 다시 가 져 올 수 있 습 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.