{% extends "base.html" %} {% load authnames crispy_forms_tags i18n icons otp_webauthn static translations user_display %} {% block extra_script %} {% endblock extra_script %} {% block nav_pills %} {% endblock nav_pills %} {% block breadcrumbs %} {% endblock breadcrumbs %} {% block content %} {% can_show_personal_api_key request as can_show_api_key %} {% if form_errors %} {% translate "Please fix errors in the form." as msg %} {% show_message "error" msg %} {% endif %}
{% csrf_token %}

{% documentation_icon 'user/profile' right=True %}{% translate "Account" %}

{% crispy userform %}
{% translate "The e-mail address can be chosen from verified addresses only." %} {% if has_email_auth %} {% translate "Add and verify e-mail address" %} {% endif %}
{% crispy commitform %}

{% translate "Account management" %}

{% translate "Download user data" %}
{% translate "You can download all your private data." %}
{% translate "Download user data" %}
{% translate "Import settings" %}

{% translate "Import settings from a user data file downloaded from another Weblate server. Your contribution history and account identifiers are not imported." %}

{% translate "Removal" %}
{% translate "Account removal deletes all your private data." %}
{% translate "Remove my account" %}
{% blocktranslate %}All of the fields on this page are optional and can be deleted at any time, and by filling them out, you're giving us consent to share this data wherever your user profile appears.{% endblocktranslate %}

{% documentation_icon 'user/profile' 'public-profile' right=True %}{% translate "Public profile" %}

{% crispy profileform %}
{% if enable_avatars %}

{% documentation_icon 'user/profile' 'avatar' right=True %}{% translate "Your avatar" %}

{% endif %}

{% documentation_icon 'user/profile' 'languages' right=True %}{% translate "Languages" %}

{% crispy languagesform %}

{% blocktranslate %}Send a request to the project you want to translate to add a missing language.{% endblocktranslate %}

{% documentation_icon 'user/profile' 'preferences' right=True %}{% translate "Preferences" %}

{% crispy usersettingsform %} {% crispy dashboardsettingsform %}

{% documentation_icon 'user/search' 'saved-searches' right=True %}{% translate "Saved searches" %}

{% translate "Your saved searches are offered in the search filters everywhere." %}

{% url 'search' as search_url %} {% include "snippets/saved-search-table.html" with search_url=search_url project=None %}
{% translate "Check which subscriptions apply to a project, component, or translation and what can prevent notification delivery." %} {% translate "Open notification diagnostics" %}

{% documentation_icon 'user/profile' 'subscriptions' right=True %}{% translate "Watched projects" %}

{% crispy subscriptionform %}

{% translate "Add all projects you want to translate to see them as watched projects on the dashboard." %}

{% documentation_icon 'user/profile' 'subscriptions' right=True %}{% translate "Notification settings" %}

{% for form in notification_forms %}
{% crispy form %}
{% endfor %}

{% documentation_icon 'user/profile' 'profile-security' right=True %}{% translate "Password" %}

{% translate "Password-based sign-in" %}
{% if request.user.has_usable_password %} {% translate "Configured" %} {% else %} {% translate "Not configured" %} {% endif %}
{% if request.user.has_usable_password or has_email_auth %} {% if request.user.has_usable_password %} {% translate "Change password" %} {% else %} {% translate "Set password" %} {% endif %} {% endif %}

{% documentation_icon 'admin/auth' '2fa' right=True %}{% translate "Two-factor authentication" %}

{% translate "Two-factor authentication adds another layer of security to your account by requiring more than just a password to sign in." %}

{% translate "Security keys (WebAuthn)" %}
{% if not webauthn_keys %} {% translate "No WebAuthn keys registered yet." %} {% else %} {% blocktranslate count count=webauthn_keys|length trimmed %} {{ count }} security key registered. {% plural %} {{ count }} security keys registered. {% endblocktranslate %} {% endif %}
{% translate "Add security key" %}
{% if webauthn_keys %} {% endif %}
{% translate "Authenticator apps (TOTP)" %}
{% if not totp_keys %} {% translate "No authenticator apps registered yet." %} {% else %} {% blocktranslate count count=totp_keys|length trimmed %} {{ count }} authenticator app registered. {% plural %} {{ count }} authenticator apps registered. {% endblocktranslate %} {% endif %}
{% translate "Register new authenticator app" %}
{% if totp_keys %} {% endif %}
{% translate "Recovery codes" %}
{% if recovery_keys_count == 0 %} {% translate "No recovery codes generated yet." %} {% else %} {% blocktranslate count count=recovery_keys_count trimmed %} {{ count }} recovery code available. {% plural %} {{ count }} recovery codes available. {% endblocktranslate %} {% endif %}
{% if recovery_keys_count == 0 %} {% translate "Generate new recovery codes" %} {% else %} {% translate "View recovery codes" %} {% endif %}

{% translate "Linked sign-in accounts" %}

{% if associated %}
    {% for assoc in associated %}
  • {% auth_name assoc.provider only="icon" %} {% auth_name assoc.provider only="name" %}
    {{ assoc.uid }}
    {% if associated.count > 1 %} {% translate "Disconnect" %} {% endif %}
  • {% endfor %}
{% else %}

{% translate "No linked sign-in accounts." %}

{% endif %} {% if new_backends %}
{% translate "Add sign-in method" %}
{% for name in new_backends %} {% auth_name name only="icon" %} {% auth_name name only="name" %} {% endfor %}
{% endif %}

{% documentation_icon 'api' right=True %}{% translate "API access" %}

{% blocktranslate %}The API key can be used to control Weblate via the HTTP REST API and to access Weblate Git repositories.{% endblocktranslate %}

{% translate "Your personal API key:" %} {% personal_api_key request %} {% if can_show_api_key %} {% else %} {% translate "Verify your identity to view your API key" %} {% endif %} {% translate "Regenerate API key" %}
{% translate "API root URL:" %} {{ site_url }}{% url 'api:api-root' %}
{% documentation_icon 'api' right=True %}{% translate "API usage example:" %}
                  
curl \
    -H "Authorization: Token {% personal_api_key request %}" \
    {{ site_url }}{% url 'api:api-root' %}
                  
{% documentation_icon 'wlc' right=True %}{% translate "CLI usage example:" %}
                  
wlc \
    --key {% personal_api_key request %} \
    --url {{ site_url }}{% url 'api:api-root' %} \
    list-projects
                  
{% if has_gitexport %}

{% documentation_icon 'admin/optionals' 'git-exporter' right=True %}{% translate "Accessing Git repositories" %}

{% blocktranslate %}The API key is also used to authenticate to automatically exported Git repositories.{% endblocktranslate %}

git clone 'https://{{ user.username|urlencode }}:{% personal_api_key request %}@{{ site_domain }}{% get_git_export_example_url %}'
{% endif %}

{% translate "Code-hosting connections" %}

{% translate "Manage code-hosting accounts connected to workspaces you administer. These connections are separate from sign-in identities." %}

{% translate "Manage code-hosting connections" %}
{% for group in user_groups %} {% endfor %} {% with invitations=user.invitation_set.all %} {% if invitations %} {% for invitation in invitations %} {% with group=invitation.group %} {% endwith %} {% endfor %} {% endif %} {% endwith %}
{% translate "Team" %} {% translate "Roles" %} {% translate "Projects" %} {% translate "Languages" %} {% translate "Components" %}
{% include "auth/teams-name.html" %} {% include "auth/teams-roles.html" %} {% include "auth/teams-projects.html" %} {% include "auth/teams-languages.html" %} {% include "auth/teams-components.html" %}
{{ group }} {% translate "Pending invitation" %} {% include "auth/teams-roles.html" %} {% include "auth/teams-projects.html" %} {% include "auth/teams-languages.html" %} {% include "auth/teams-components.html" %}

{% translate "Licenses" %}

{% translate "Please pay attention to the licensing info, as this specifies how translations can be used." %}

{% translate "By registering you agree to use your name and e-mail in the commits, and provide your contribution under the license defined by each localization project." %}

{% with agreements=user.contributoragreement_set.order %} {% if agreements %}

{% translate "You have agreed to the following as a contributor:" %}

{% endif %} {% endwith %}
{% if licenses %} {% regroup licenses by effective_license as license_list %}

{% translate "Licenses for individual translations" %}

{% for dummy, items in license_list %}

{{ items.0.get_license_display }} {{ items.0.effective_license }} {% icon "info.svg" %}

{% for component in items %} {{ component }} {% endfor %}

{% endfor %}
{% endif %}
{% blocktranslate %}Get in contact immediately if you notice anything suspicious in the audit log.{% endblocktranslate %}

{% translate "Audit log" %}

{% for log in auditlog %} {% empty %} {% endfor %}
{% translate "When" %} {% translate "Account activity" %} {% translate "IP address" %} {% translate "User agent" %}
{{ log.timestamp|naturaltime }} {{ log.get_message }} {% if log.get_extra_message %}
{{ log.get_extra_message }}
{% endif %}
{{ log.address }} {{ log.get_user_agent_display }}
{% translate "No recent activity found." %}
{% if contact_form != "disabled" %} {% endif %}
{% csrf_token %}
{% csrf_token %}
{% endblock content %}