diff --git a/config_translation.module b/config_translation.module index 8690ef5..351023f 100644 --- a/config_translation.module +++ b/config_translation.module @@ -424,7 +424,12 @@ function config_translation_page_alter(&$page) { * A language object. */ function config_translation_enter_context($language) { - $user_config_context = config_context_enter('Drupal\user\UserConfigContext'); - $account = new User(array('langcode' => $language->langcode), 'user'); - $user_config_context->setAccount($account); + global $user; + // Load current user object. + $account = user_load($user->uid); + // Clone to make language specific changes and not affect current user. + $context_user_account = clone $account; + $context_user_account->set('preferred_langcode', $language->langcode); + // Enter context with updated langcode. + config_context_enter('Drupal\user\UserConfigContext')->setAccount($context_user_account); }