2012-11-23 2 views
1

응용 프로그램에서 언어를 변경하여 전화 언어를 변경할 수있는 방법이 있습니까?Android에서 애플리케이션 언어를 변경하여 기본 전화 언어를 변경 하시겠습니까?

내 응용 프로그램의 언어를 변경하면 기본 전화 언어도 변경됩니다.

여기에 대한 의견이 있으시면 여기를 클릭하십시오.

미리 감사드립니다. 다음

+0

나는이 같은 여기에 같은 문제 추측 : http://stackoverflow.com/questions/9679574/android-is-there-any-way-to-change-the-default- android-to-new-lang의 언어 – blacharnia

답변

1
Locale locale = new Locale("en_US"); 
Locale.setDefault(locale); 
Configuration config = new Configuration(); 
config.locale = locale; 
context.getApplicationContext().getResources().updateConfiguration(config, null); 

그리고 고해상도의 폴더 아랍어 값-AR/일본어 또는 입술에/값-JA을 ..

그리고 string.xml 파일을 확인하고 언어를 넣어 당신이 무엇을 arabic--

<?xml version="1.0" encoding="UTF-8"?> 
    <resources> 
    <string name="spinner_label">حسب</string> 
    <string name="app_name">فرق</string> 
    <string name="search">بحث:</string> 
</resource> 
1

내가 할에 대한/값-AR 레이아웃에 고해상도의

그것의 예를 원하는 NT는 프로그래밍 방식으로 변경 될 수 있다는 것을 알고 있지만, 앱 언어를 변경 한 후에는

하는 장치의 언어를 변경하는 사용자에게 물어, 또한 장치의 언어를 변경하는 사용자를 요청할 수 있습니다

Intent intent = new Intent(Intent.ACTION_MAIN); 
intent.setClassName("com.android.settings", "com.android.settings.LanguageSettings");    
startActivity(intent); 

변경 응용 프로그램 언어

<activity 
    android:name=".ui.SomeActivity" 
    android:configChanges="locale" 
    : 
    : 
</activity> 


public static void setLanguage(Context context, String languageToLoad) { 
    Log.d(TAG, "setting language"); 
    Locale locale = new Locale(languageToLoad); //e.g "sv" 
    Locale systemLocale = SystemLocale.getInstance().getCurrentLocale(context); 
    if (systemLocale != null && systemLocale.equals(locale)) { 
     Log.d(TAG, "Already correct language set"); 
     return; 
    } 
    Locale.setDefault(locale); 
    android.content.res.Configuration config = new android.content.res.Configuration(); 
    config.locale = locale; 
    context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics()); 
    Log.d(TAG, "Language set"); 
} 
1

android : configChanges = "locale"을 AndroidManifect 파일의 활동 데칼레이션에 추가하십시오.

그런 다음 해당 활동의 onCreate에서 다음 메소드를 호출하십시오.

public static void setLanguage(Context context, String languageToLoad) { 
    Log.d(TAG, "setting language"); 
    Locale locale = new Locale(languageToLoad); //e.g "sv" 
    Locale systemLocale = SystemLocale.getInstance().getCurrentLocale(context); 
    if (systemLocale != null && systemLocale.equals(locale)) { 
    Log.d(TAG, "Already correct language set"); 
    return; 
} 
Locale.setDefault(locale); 
android.content.res.Configuration config = new android.content.res.Configuration(); 
config.locale = locale; 
context.getResources().updateConfiguration(config,context.getResources().getDisplayMetrics());                
Log.d(TAG, "Language set"); 
    } 
관련 문제