Есть несколько шагов, которые вы должны реализовать
Во-первых, вам нужно изменить локаль вашей конфигурации
Resources resources = context.getResources();
Configuration configuration = resources.getConfiguration();
configuration.locale = new Locale(language);
resources.updateConfiguration(configuration, resources.getDisplayMetrics());
Во-вторых, если вы хотите, чтобы ваши изменения применялись непосредственно к отображаемому макету, вы можете либо обновить представления напрямую, либо просто вызвать action.recreate (), чтобы перезапустить текущее действие.
А также вы должны сохранить ваши изменения, потому что после того, как пользователь закроет ваше приложение, вы потеряете изменение языка.
Я объяснил более подробное решение в своем блоге Программное изменение языка в Android
По сути, вы просто вызываете LocaleHelper.onCreate () для своего класса приложения, и если вы хотите изменить локаль на лету, вы можете вызвать LocaleHelper.setLocale ()