{% extends "base.html" %} {% load translations %} {% load permissions %} {% load crispy_forms_tags %} {% load i18n %} {% load humanize %} {% load metrics %} {% block breadcrumbs %} {% path_object_breadcrumbs path_object %} {% endblock %} {% block content %} {% announcements component=object.component language=object.language %} {% include "snippets/component/state.html" with object=object.component %} {% include "snippets/watch-dropdown.html" with project=object.component.project component=object.component %} {% perm 'meta:vcs.status' object as user_can_see_repository_status %} {% perm 'upload.overwrite' object as user_can_overwrite_translation %} {% perm 'upload.perform' object as user_can_upload_translation %} {% perm 'unit.add' object as user_can_add_unit %} {% get_translate_url object as translate_url %} {% url 'translate' path=object.get_url_path as edit_url %} {% url 'zen' path=object.get_url_path as zen_url %} {% url 'browse' path=object.get_url_path as browse_url %}

{% if object.is_source %} {% trans "Source strings" %} {% else %} {% trans "Translation status" %} {% endif %}

{{ object.stats.all|intcomma }} {% trans "Strings" %} {{ object.stats.translated_percent|percent_format }}
{{ object.stats.all_words|intcomma }} {% trans "Words" %} {{ object.stats.translated_words_percent|percent_format }}
{% if object.is_source %} {% endif %}

{% documentation_icon 'user/translating' 'strings-to-check' right=True %} {% trans "Strings status" %}

{% for query, name, count, color, words in object.list_translation_checks %} {% endfor %}
{{ count|intcomma }} {% if name != "all" %}
{% if color %}
{% endif %}
{% endif %}
{{ name }} — {% blocktrans with count=words|intcomma count cnt=words %}{{ count }} word{% plural %}{{ count }} words{% endblocktrans %} {% trans "Browse" %} {% trans "Translate" %} {% trans "Zen" %}
{% if other_translations %}

{% trans "Other components" %}

{% include "snippets/list-objects.html" with objects=other_translations name_source="component_name" label=_("Component") %}
{% endif %}
{% include "snippets/info.html" with project=object.component.project component=object.component translation=object stats=object.stats metrics=object|metrics %}
{% include "last-changes-content.html" %} {% trans "Browse all translation changes" %}
{% if autoform %}

{% documentation_icon 'user/translating' 'auto-translation' right=True %} {% trans "Automatic translation" %}

{% trans "Automatic translation takes existing translations in this project and applies them to the current component. It can be used to push translations to a different branch, to fix inconsistent translations or to translate a new component using translation memory." %}

{% trans "Automatic translation via machine translation uses active machine translation engines to get the best possible translations and applies them in this project." %}

{% crispy autoform %}
{% endif %} {% if replace_form %}

{% documentation_icon 'user/translating' 'search-replace' right=True %} {% trans "Search and replace" %}

{% crispy replace_form %}
{% endif %} {% if bulk_state_form %}

{% documentation_icon 'user/translating' 'bulk-edit' right=True %} {% trans "Bulk edit" %}

{% crispy bulk_state_form %}
{% endif %} {% if user_can_add_unit %}

{{ object.component.get_add_label }}

{% if obj.is_source %}

{% trans "You can add a new translation string here, it will automatically appear in all translations." %}

{% endif %} {% csrf_token %} {{ new_unit_form|crispy }}
{% endif %}

{% documentation_icon 'user/files' 'download' right=True %} {% trans "Quick downloads" %}

{% for exporter in exporters %} {% endfor %} {% if object.stats.todo %} {% for exporter in exporters %} {% endfor %} {% endif %}
{{ object.stats.all|intcomma }} {% trans "File in original format as translated in the repository" %} {{ object.component.file_format_name }}
{{ object.stats.all|intcomma }} {% trans "All strings, converted files enriched with comments; suitable for offline translation" %} {{ exporter.verbose }}
{{ object.stats.todo|intcomma }} {% trans "Unfinished strings, converted files enriched with comments; suitable for offline translation" %} {{ exporter.verbose }}

{% documentation_icon 'user/files' 'download' right=True %} {% trans "Customize download" %}

{% crispy download_form %}
{% if user_can_upload_translation %}

{% documentation_icon 'user/files' 'upload' right=True %} {% trans "Upload" %}

{% trans "The uploaded file will be merged with the current translation." %} {% if user_can_overwrite_translation %} {% trans "Select it from the dropdown menu if you want to overwrite already translated strings." %} {% endif %}

{% csrf_token %} {% crispy form %}
{% endif %} {% if announcement_form %}

{% documentation_icon 'admin/announcements' right=True %} {% trans "Post announcement" %}

{% csrf_token %} {{ announcement_form|crispy }}

{% trans "The message is shown on the translation page, until its given expiry, or deletion." %}

{% endif %} {% if delete_form %}
{% include "trans/delete-form.html" %}
{% endif %} {% if user_can_see_repository_status %}

{% trans "Loading…" %}

{% endif %}
{% endblock %}