2016-07-21 16 views
0

Ich implementiere den Tag-Manager in meiner App Ich möchte die Sprache des Tag-Manager-Wertes ändern, sobald der Benutzer die App-Sprache wechselt Klick in meine App.Android Tag-Manager Sprache ändern Wenn der Benutzer die App ändert Sprache, nicht die Sprache des Gerätes

Wenn der Benutzer die Sprache des Telefons ändert, dann funktioniert es gut, aber ich möchte es funktionieren lassen, wenn Benutzer die Sprache der App ändern (nicht die Sprache des Telefons).

In meiner App ist das wie ich Sprache ändere.

public void setLocal() { 

    Configuration config = getResources().getConfiguration(); 
    String languageSetting = Utility.getLanguageSetting(); 
    String localeSaved = new Locale("en").getLanguage(); 
    if (languageSetting.equalsIgnoreCase("hindi")) { 
     localeSaved = new Locale("hi").getLanguage(); 
    } 

    config.locale = new Locale(localeSaved); 
    getResources().updateConfiguration(config, getResources().getDisplayMetrics()); 

} 

Antwort

0

Ich schrieb einen Code wie Sie, es funktioniert gut. Der Unterschied ist, dass ich die Aktivitäten nach dem Ändern der Sprache neu erstellen, und ich habe auch einen Code an ApplicationonCreate() Methode, um die Sprache zu ändern, bevor alle Aktivitäten erstellen.

Configuration config = getResources().getConfiguration(); 
    DisplayMetrics metrics = getResources().getDisplayMetrics(); 
    if (!config.locale.equals(Locale.SIMPLIFIED_CHINESE)){ 
     config.locale = Locale.SIMPLIFIED_CHINESE; 
     getResources().updateConfiguration(config, metrics); 
    } else { 
     config.locale = Locale.ENGLISH; 
     getResources().updateConfiguration(config, metrics); 
    } 
    recreate(); 
+0

ist es perfekt mit dem Tag-Manager arbeiten ?? Meins funktioniert perfekt, aber nicht mit Tag-Manager (damit der Tag-Manager Änderungen akzeptiert, muss ich die Sprache des Telefons ändern) –

0

„Tag Manager Sprache ändern“ funktioniert nur, wenn der Benutzer ändern Sprache Telefon, die für den Benutzer sehr schlecht
Dieses ist, wie ich erreicht
1. Ich habe nur eine Variable auf Tag Manager
2. einzelne json für beide Sprach
3. { 'text': 'Welcome', 'text_hindi': 'वेलकम' }
4. Innerhalb App

/* get text for welcome based on app language*/ 
public String getText(boolean isEnglish) { 
    String text = null; 
    if (isEnglish) { 
    text = getTagContainerHolder().getTagContainer().getString("text"); 
    } else { 
    text = getTagContainerHolder().getTagContainer().getString("text_hindi"); 
    } 
    return text; 
} 

/* This is how i change language of my app when user click button*/ 
public void setLocal(boolean isEnglish) { 
    Configuration config = getResources().getConfiguration(); 
    String localeSaved = new Locale("en").getLanguage(); 
    if (!isEnglish) { 
     localeSaved = new Locale("hi").getLanguage(); 
    } 

    config.locale = new Locale(localeSaved); 
    getResources().updateConfiguration(config, getResources().getDisplayMetrics()); 
} 
012 Erstellt


Jetzt kann ich meine Begrüßungstext dynamisch von Tag-Manager ändern, auch nach speichern meine app auf Play Versand