2016-06-13 4 views
1

Android 앱에 6 가지 언어가 있으며 앱 언어를 선택할 수있는 옵션을 만들고 싶습니다. 내가 그 코드를보고 있지만, 앱을 다시 시작한 후 언어를 재설정합니다앱 내 언어를 전환하는 옵션을 만드는 방법

public void setLocale(String lang) { 
myLocale = new Locale(lang); 
Resources res = getResources(); 
DisplayMetrics dm = res.getDisplayMetrics(); 
Configuration conf = res.getConfiguration(); 
conf.locale = myLocale; 
res.updateConfiguration(conf, dm); 
Intent refresh = new Intent(this, AndroidLocalize.class); 
startActivity(refresh); 
finish(); 
} 

나는 사용자가 선택하는 언어를 유지하기 위해 무엇을 할 수 있는가?

String sharedPrefName = "your_preference_name" 
String key = "selected_language" 

// save the selected language 
SharedPreferences sharedpreferences = getSharedPreferences(sharedPrefName, Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedpreferences.edit(); 
editor.putString(key, "english"); // replace "english" with user's selected language 
editor.commit(); 

// retrieve selected language 
SharedPreferences sharedpreferences = getSharedPreferences(sharedPrefName, Context.MODE_PRIVATE); 
String language = sharedpreferences.getString(key, "english"); // replace "english" with your app's default language 

// load the app with the language selected... 
+0

저장 언어를. –

+0

어떻게하면됩니까? (저는 6 개 국어가 있습니다)? –

+0

선택한 언어의 식별자 인'SharedPreferences'에 키를 저장하고 앱이 열릴 때로드하십시오. – mgcaguioa

답변

2

당신은 이런 식으로 뭔가를 시도 할 수 있습니다. 언어 코드의 접 L 어가있는 언어의 새 값 디렉토리를 작성하십시오. 독일어의 경우 : values-de 또는 french : values-fr은 strings.xml을 복사하여 각 항목을 번역하는 것보다 큽니다.

사용자가 언어 목록에서 선택하면 앱의 언어를 변경하는 것이 간단합니다. 로케일을 String으로 받아들이는 (영어의 경우 'en', 힌디어의 경우 'hi'와 같은) 로켈을 사용하는 응용 프로그램의 로케일을 구성하고 현재 활동을 새로 고침하여 언어 변경을 반영하는 메소드를 사용하십시오. 적용한 로캘은 수동으로 다시 변경할 때까지 변경되지 않습니다.

public void setLocale(String lang) { 
    myLocale = new Locale(lang); 
    Resources res = getResources(); 
    DisplayMetrics dm = res.getDisplayMetrics(); 
    Configuration conf = res.getConfiguration(); 
    conf.locale = myLocale; 
    res.updateConfiguration(conf, dm); 
    Intent refresh = new Intent(this, AndroidLocalize.class); 
    startActivity(refresh); 
    finish(); 
} 

당신이 패키지를 다음과 같은 가져 오기 확인 : SharedPreferences``에서

import java.util.Locale; 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.content.res.Configuration; 
import android.content.res.Resources; 
import android.util.DisplayMetrics; 
+0

고맙습니다. 앱이 선택한 언어를 검색 할 때 앱의 기본 언어를 입력해야하는 이유는 무엇입니까? –

+0

사용자가 언어를 설정하지 않은 경우 기본 언어가 앱에서 사용됩니다. – mgcaguioa

0

다국어 지원이 쉽게 안드로이드 수행됩니다 :

+0

OP가 이미 수행 한 것과 귀하의 답변이 어떻게 다른지 설명해주십시오. –

+0

mgcaguioa는 현재 선택된 언어를 공유 환경 설정에 저장하는 방법을 알려주었습니다. 현재 사용중인 언어의 참조를 유지하는 데 사용됩니다. 내가 게시 한 코드는 안드로이드 응용 프로그램에서 언어 전환을 수행하는 방법을 알려줍니다. –

+0

질문을 다시 언급하면 ​​OP가 이미 답변에서 제안한 것을 수행했습니다. 그래서, 나는 아직도 당신의 대답이 어떻게 다른지 모르겠다. –

관련 문제