Translation components API.

See the Weblate's Web API documentation for detailed description of the API.

GET /api/translations/mobilizon/activity/pl/?format=api
HTTP 200 OK
Allow: GET, DELETE, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "language": {
        "id": 237,
        "code": "pl",
        "name": "Polish",
        "plural": {
            "id": 237,
            "source": 0,
            "number": 3,
            "formula": "n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2",
            "type": 22
        },
        "aliases": [
            "plk",
            "pol"
        ],
        "direction": "ltr",
        "population": 41077398,
        "web_url": "https://weblate.framasoft.org/languages/pl/",
        "url": "https://weblate.framasoft.org/api/languages/pl/?format=api",
        "statistics_url": "https://weblate.framasoft.org/api/languages/pl/statistics/?format=api"
    },
    "component": {
        "name": "Activity",
        "slug": "activity",
        "id": 150,
        "source_language": {
            "id": 76,
            "code": "en",
            "name": "English",
            "plural": {
                "id": 76,
                "source": 0,
                "number": 2,
                "formula": "n != 1",
                "type": 1
            },
            "aliases": [
                "en_en",
                "base",
                "source",
                "enp",
                "eng"
            ],
            "direction": "ltr",
            "population": 1636485517,
            "web_url": "https://weblate.framasoft.org/languages/en/",
            "url": "https://weblate.framasoft.org/api/languages/en/?format=api",
            "statistics_url": "https://weblate.framasoft.org/api/languages/en/statistics/?format=api"
        },
        "project": {
            "name": "Mobilizon",
            "slug": "mobilizon",
            "id": 2,
            "web": "https://joinmobilizon.org/",
            "web_url": "https://weblate.framasoft.org/projects/mobilizon/",
            "url": "https://weblate.framasoft.org/api/projects/mobilizon/?format=api",
            "components_list_url": "https://weblate.framasoft.org/api/projects/mobilizon/components/?format=api",
            "repository_url": "https://weblate.framasoft.org/api/projects/mobilizon/repository/?format=api",
            "statistics_url": "https://weblate.framasoft.org/api/projects/mobilizon/statistics/?format=api",
            "categories_url": "https://weblate.framasoft.org/api/projects/mobilizon/categories/?format=api",
            "changes_list_url": "https://weblate.framasoft.org/api/projects/mobilizon/changes/?format=api",
            "languages_url": "https://weblate.framasoft.org/api/projects/mobilizon/languages/?format=api",
            "labels_url": "https://weblate.framasoft.org/api/projects/mobilizon/labels/?format=api",
            "translation_review": true,
            "source_review": false,
            "set_language_team": true,
            "instructions": "### Guidelines\r\n\r\n* When in doubt, use the suggestion feature instead of changing the translation directly\r\n* Post a comment to discuss about translations\r\n* Feel free to ask clarification and context on a string\r\n\r\n### Components\r\n\r\nMobilizon has several modules that need to be translated:\r\n\r\n* Frontend: mostly what you see in the web app in your browser\r\n* Activity: every group activity log, that can be sent in emails\r\n* Backend errors: errors returned by the backend (for instance if the event lacks a title)\r\n* Backend: the rest of emails, server-side default configuration, push notifications, …\r\n* Search index: the global search engine\r\n\r\nThe Android app and Android app metadata components are not maintained.\r\n\r\n### Formating\r\n\r\nFrontend (frontend + search index components) and backend (everything else) parts use different formats to hold translations so you may encounter different ways to format strings when translating:\r\n\r\n* Frontend uses the [Vue-I18N](https://vue-i18n.intlify.dev/) library\r\n  * Formatting is based on the ICU Message Format syntax, with placeholders like this: `{interpolation}`. **You must never translate what's between the brackets**.\r\n  * It handles pluralization manually by separating versions with pipes : https://vue-i18n.intlify.dev/guide/essentials/pluralization.html\r\n  * Pluralization rules are included for the majority of languages but some may need to be added manually ([example for Scottish Gaelic](https://framagit.org/framasoft/mobilizon/-/blob/main/js/src/i18n/pluralRules/gd.ts)).\r\n  * Special characters sometimes have to be escaped. For instance: `{'@'}{username}` would give, after interpolation : `@thomas`. See https://vue-i18n.intlify.dev/guide/essentials/syntax.html#special-characters\r\n\r\n* Backend uses the classic Gettext library and Weblate should support this format much better\r\n  * Placeholders look like this: `This is user %{username}`.",
            "enable_hooks": true,
            "language_aliases": ""
        },
        "vcs": "gitlab",
        "repo": "git@framagit.org:framasoft/mobilizon.git",
        "git_export": "",
        "branch": "main",
        "push_branch": "",
        "filemask": "priv/gettext/*/LC_MESSAGES/activity.po",
        "screenshot_filemask": "",
        "template": "",
        "edit_template": true,
        "intermediate": "",
        "new_base": "priv/gettext/activity.pot",
        "file_format": "po",
        "license": "AGPL-3.0-only",
        "license_url": "https://spdx.org/licenses/AGPL-3.0-only.html",
        "agreement": "",
        "web_url": "https://weblate.framasoft.org/projects/mobilizon/activity/",
        "url": "https://weblate.framasoft.org/api/components/mobilizon/activity/?format=api",
        "repository_url": "https://weblate.framasoft.org/api/components/mobilizon/activity/repository/?format=api",
        "translations_url": "https://weblate.framasoft.org/api/components/mobilizon/activity/translations/?format=api",
        "statistics_url": "https://weblate.framasoft.org/api/components/mobilizon/activity/statistics/?format=api",
        "lock_url": "https://weblate.framasoft.org/api/components/mobilizon/activity/lock/?format=api",
        "links_url": "https://weblate.framasoft.org/api/components/mobilizon/activity/links/?format=api",
        "changes_list_url": "https://weblate.framasoft.org/api/components/mobilizon/activity/changes/?format=api",
        "task_url": null,
        "new_lang": "add",
        "language_code_style": "",
        "push": "git@framagit.org:framasoft/mobilizon.git",
        "check_flags": "",
        "priority": 100,
        "enforced_checks": [],
        "restricted": false,
        "repoweb": "",
        "report_source_bugs": "",
        "merge_style": "rebase",
        "commit_message": "Translated using Weblate ({{ language_name }})\r\n\r\nCurrently translated at {{ stats.translated_percent }}% ({{ stats.translated }} of {{ stats.all }} strings)\r\n\r\nTranslation: {{ project_name }}/{{ component_name }}\r\nTranslate-URL: {{ url }}",
        "add_message": "Added translation using Weblate ({{ language_name }})",
        "delete_message": "Deleted translation using Weblate ({{ language_name }})",
        "merge_message": "Merge branch '{{ component_remote_branch }}' into Weblate.",
        "addon_message": "Update translation files\r\n\r\nUpdated by \"{{ addon_name }}\" hook in Weblate.\r\n\r\nTranslation: {{ project_name }}/{{ component_name }}\r\nTranslate-URL: {{ url }}",
        "pull_message": "Translations update from {{ site_title }}\n\nTranslations update from [{{ site_title }}]({{ site_url }}) for [{{ project_name }}/{{ component_name }}]({{url}}).\n\n{% if component_linked_childs %}\nIt also includes following components:\n{% for linked in component_linked_childs %}\n* [{{ linked.project_name }}/{{ linked.name }}]({{ linked.url }})\n{% endfor %}\n{% endif %}\n\nCurrent translation status:\n\n![Weblate translation status]({{widget_url}})\n",
        "allow_translation_propagation": true,
        "manage_units": false,
        "enable_suggestions": true,
        "suggestion_voting": false,
        "suggestion_autoaccept": 0,
        "push_on_commit": true,
        "commit_pending_age": 24,
        "auto_lock_error": true,
        "language_regex": "^(?!(en)$).+$",
        "variant_regex": "",
        "addons": [
            "https://weblate.framasoft.org/api/addons/13/?format=api"
        ],
        "is_glossary": false,
        "glossary_color": "silver",
        "category": null,
        "linked_component": "https://weblate.framasoft.org/api/components/mobilizon/frontend/?format=api"
    },
    "language_code": "pl",
    "id": 1486,
    "filename": "priv/gettext/pl/LC_MESSAGES/activity.po",
    "revision": "be2681a2c517b4302a1ab6b5eb221ba179908e7f",
    "web_url": "https://weblate.framasoft.org/projects/mobilizon/activity/pl/",
    "share_url": "https://weblate.framasoft.org/engage/mobilizon/-/pl/",
    "translate_url": "https://weblate.framasoft.org/translate/mobilizon/activity/pl/",
    "url": "https://weblate.framasoft.org/api/translations/mobilizon/activity/pl/?format=api",
    "is_template": false,
    "is_source": false,
    "total": 91,
    "total_words": 673,
    "translated": 79,
    "translated_words": 567,
    "translated_percent": 86.8,
    "fuzzy": 5,
    "fuzzy_words": 36,
    "fuzzy_percent": 5.4,
    "failing_checks": 0,
    "failing_checks_words": 0,
    "failing_checks_percent": 0.0,
    "have_suggestion": 0,
    "have_comment": 0,
    "last_change": "2023-10-22T03:23:03.293867Z",
    "last_author": "Jakub Urbanowicz",
    "repository_url": "https://weblate.framasoft.org/api/translations/mobilizon/activity/pl/repository/?format=api",
    "file_url": "https://weblate.framasoft.org/api/translations/mobilizon/activity/pl/file/?format=api",
    "statistics_url": "https://weblate.framasoft.org/api/translations/mobilizon/activity/pl/statistics/?format=api",
    "changes_list_url": "https://weblate.framasoft.org/api/translations/mobilizon/activity/pl/changes/?format=api",
    "units_list_url": "https://weblate.framasoft.org/api/translations/mobilizon/activity/pl/units/?format=api"
}