I use twig tweak for rendering username on site this way:
username.html.twig:
{#
/**
* @file
* Theme override for displaying a username.
*
* Available variables:
* - account: The full account information for the user.
* - uid: The user ID, or zero if not a user. As used in anonymous comments.
* - name: The user's name, sanitized, and optionally truncated.
* - name_raw: The user's name, un-truncated.
* - truncated: Whether the user's name was truncated.
* - extra: Additional text to append to the user's name, sanitized.
* - profile_access: Whether the current user has permission to access this
users profile page.
* - link_path: The path or URL of the user's profile page, home page,
* or other desired page to link to for more information about the user.
* - homepage: (optional) The home page of the account, only set for non users.
* - link_options: Options to set on the \Drupal\Core\Url object if linking the
* user's name to the user's page.
* - attributes: HTML attributes for the containing element.
*
* @see template_preprocess_username()
*/
#}
{% if link_path -%}
<a{{ attributes }}>{{ drupal_field('field_name', 'user', uid) }}{{ extra }}</a>
{%- else -%}
<span{{ attributes }}>{{ drupal_field('field_name', 'user', uid) }}{{ extra }}</span>
{%- endif -%}
But this doesn't work with translation. How to get translated field?
4k4 answer this way:
{{ drupal_field('field_name', 'user', uid, user.langcode.value) }}
But I don't need language from session/url, not from user settings