Android app 다 중 언어 전환 기능 구현

3159 단어 androidapp언어.
본 논문 의 사례 는 안 드 로 이 드 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 를 다시 가 져 올 수 있 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기