In other question i have answer to create multiple language. But not used in all activity/pages aplications. How to change language in other activity/page?
i have code to main activity/page only, how to create in other activity/page?
i use this code to change language:
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(LocaleHelper.onAttach(newBase, "en"));
}
private void updateView(String lang) {
Context context = LocaleHelper.setLocale(this, lang);
Resources resources = context.getResources();
navigation_view.getMenu().findItem(R.id.account).setTitle(resources.getString(R.string.menuAccount));
navigation_view.getMenu().findItem(R.id.settingPassword).setTitle(resources.getString(R.string.menuSettingPass));
navigation_view.getMenu().findItem(R.id.about).setTitle(resources.getString(R.string.menuAbout));
navigation_view.getMenu().findItem(R.id.logout).setTitle(resources.getString(R.string.menuLogout));
navigation_view.getMenu().findItem(R.id.login).setTitle(resources.getString(R.string.menuLogin));
}
and i use this triger to change language:
Paper.book().write("language", "id");
updateView((String)Paper.book().read("language"));
navigation_view.getMenu().findItem(R.id.language_in).setVisible(false);
navigation_view.getMenu().findItem(R.id.language_en).setVisible(true);
source code from : source code full from EDMT Dev
Put your string resources in different folders:
System will automatically loads proper string resource based on your locale. You need to have
attachBaseContextmethod in all your activities. For cleaner code, you can create aBaseActivityclass withattachBaseContextmethod and extend all your activities from this base class: