If the user profile has not been translated, it's possible to change the language preferences. If a translation already exists, this is not possible.

This is related to a more generic issue that default translation of any content can't be changed if a translation to this language already exists.

Comments

Deno created an issue. See original summary.

Deno’s picture

In the meantime I found out that deleting the translation can be done now and doesn't delete the user profile. So a change of default language can be done by administrator for a small number of users. Possibly even by users themselves if they are allowed to delete translations.

However, the procedure for doing this is rather tedious:

  1. Delete translation
  2. Change default
  3. Regenerate description (user profile) in both languages

As simpler procedure consisting of just changing the default language and a magic happening would be better.

matsbla’s picture

I can confirm this. If user try to change prefered language I get:

InvalidArgumentException: A translation already exists for the specified language (af). in Drupal\Core\Entity\ContentEntityBase->onChange() (line 810 of /var/www/html.original/core/lib/Drupal/Core/Entity/ContentEntityBase.php).

I tried to use the option:
Hide non translatable fields on translation forms

Still, I can see password, username, prefered language, timezone, roles, status, etc available on translation form.
I guess these fields should not be translatable and not available on translation form when "Hide non translatable fields on translation forms" is enabled?