Translation components API.

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

GET /api/translations/documentation/developer-architecture/en_devel/changes/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 46,
    "next": null,
    "previous": null,
    "results": [
        {
            "unit": null,
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076577Z",
            "action": 0,
            "target": "",
            "id": 341681,
            "action_name": "Resource updated",
            "url": "https://translate.funkwhale.audio/api/changes/341681/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372869/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076558Z",
            "action": 59,
            "target": "Refreshing content metadata",
            "id": 341680,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341680/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372868/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076538Z",
            "action": 59,
            "target": "Clearing the cache",
            "id": 341679,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341679/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372866/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076517Z",
            "action": 59,
            "target": "Some common recurring tasks are:",
            "id": 341678,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341678/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372864/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076495Z",
            "action": 59,
            "target": "In addition to handling tasks from the API, the Celery worker also needs to handle some recurring tasks. To manage these, we implement a [Celery beat](https://docs.celeryq.dev/en/stable/reference/celery.apps.beat.html#celery.apps.beat.Beat) scheduler. The scheduler is responsible for triggering tasks on a schedule and adding messages to the [queue](#redis-cache-and-message-queue) so the worker can work through them.",
            "id": 341677,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341677/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372862/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076474Z",
            "action": 59,
            "target": "Celery beat task scheduler",
            "id": 341676,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341676/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372860/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076453Z",
            "action": 59,
            "target": "Scanning new content on remote pods",
            "id": 341675,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341675/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372858/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076432Z",
            "action": 59,
            "target": "Handling [ActivityPub](https://www.w3.org/TR/activitypub/) messages from other {term}`Fediverse` servers",
            "id": 341674,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341674/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372856/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076412Z",
            "action": 59,
            "target": "Importing uploaded music to the database",
            "id": 341673,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341673/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372847/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076392Z",
            "action": 59,
            "target": "Some common tasks the Celery worker handles are:",
            "id": 341672,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341672/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372843/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076371Z",
            "action": 59,
            "target": "Funkwhale has to handle a lot of tasks that take longer than the average HTTP request/response cycle. To ensure these tasks complete and don't impact the API's performance, they are offloaded to a [Celery](https://docs.celeryq.dev/en/stable/userguide/workers.html) task worker. The worker then works through all the tasks in its queue while the API handles real-time responses.",
            "id": 341671,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341671/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372841/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076351Z",
            "action": 59,
            "target": "Celery worker",
            "id": 341670,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341670/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372839/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076330Z",
            "action": 59,
            "target": "Funkwhale uses [Redis](https://redis.io/) to cache information from the database and to store a queue of messages to send. We use this cache to avoid locking database resources and to speed up requests.",
            "id": 341669,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341669/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372837/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076302Z",
            "action": 59,
            "target": "Redis cache and message queue",
            "id": 341668,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341668/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372835/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076282Z",
            "action": 59,
            "target": "The Funkwhale database makes heavy use of [indexes](https://www.postgresql.org/docs/current/indexes.html) for enhanced performance.",
            "id": 341667,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341667/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372833/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076261Z",
            "action": 59,
            "target": "Funkwhale uses a [PostgreSQL database](https://www.postgresql.org/) to store data. All information that is served by and sent to the Funkwhale API is stored in this database.",
            "id": 341666,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341666/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372831/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076242Z",
            "action": 59,
            "target": "PostgreSQL database",
            "id": 341665,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341665/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372829/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076221Z",
            "action": 59,
            "target": "Delegating long-running tasks to workers to reduce load",
            "id": 341664,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341664/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372827/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076201Z",
            "action": 59,
            "target": "Processing incoming data and writing it to the database in a meaningful way",
            "id": 341663,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341663/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372825/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076180Z",
            "action": 59,
            "target": "Fetching requested data from the cache/database and returning it to the requester in a meaningful way",
            "id": 341662,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341662/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372821/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076159Z",
            "action": 59,
            "target": "The Funkwhale API is responsible for:",
            "id": 341661,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341661/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372811/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076137Z",
            "action": 59,
            "target": "The Funkwhale API is a [REST API](https://developer.mozilla.org/en-US/docs/Glossary/REST) written in [Python](https://www.python.org/) using the [Django REST framework](https://www.django-rest-framework.org/). It is the central piece of the project and houses the application's logic.",
            "id": 341660,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341660/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372809/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076117Z",
            "action": 59,
            "target": "Django API server",
            "id": 341659,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341659/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372807/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076096Z",
            "action": 59,
            "target": "Communicating with other Funkwhale pods (if federation is enabled)",
            "id": 341658,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341658/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372804/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076075Z",
            "action": 59,
            "target": "Maintaining data consistency",
            "id": 341657,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341657/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372802/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076054Z",
            "action": 59,
            "target": "Communicating with the user's entrypoint and actioning requests",
            "id": 341656,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341656/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372800/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076033Z",
            "action": 59,
            "target": "The Funkwhale backend is made up of a few components which are responsible for:",
            "id": 341655,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341655/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372798/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.076012Z",
            "action": 59,
            "target": "Backend",
            "id": 341654,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341654/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372796/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075992Z",
            "action": 59,
            "target": "Serves requested static files, such as audio files and stylesheets",
            "id": 341653,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341653/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372794/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075972Z",
            "action": 59,
            "target": "Handles the HTTP/HTTPS requests and proxies them to the Funkwhale API server",
            "id": 341652,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341652/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372792/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075951Z",
            "action": 59,
            "target": "When a user tries to communicate with a Funkwhale pod, the reverse proxy:",
            "id": 341651,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341651/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372790/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075931Z",
            "action": 59,
            "target": "The reverse proxy acts as a layer between a Funkwhale pod and the open internet. It enhances the pod's security and provides additional options to help increase performance.",
            "id": 341650,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341650/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372788/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075911Z",
            "action": 59,
            "target": "Nginx/Apache reverse proxy",
            "id": 341649,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341649/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372786/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075890Z",
            "action": 59,
            "target": "Funkwhale supports a limited subset of the [Subsonic API](http://www.subsonic.org/pages/api.jsp) to support existing Subsonic apps. These apps can request data stored on a Funkwhale server by calling these endpoints.",
            "id": 341648,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341648/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372784/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075869Z",
            "action": 59,
            "target": "Subsonic app",
            "id": 341647,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341647/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372782/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075848Z",
            "action": 59,
            "target": "Funkwhale for Android is the Funkwhale collective's official Android app written in [Kotlin](https://kotlinlang.org/). It interacts with the Funkwhale API to fetch and update data and stores information for offline playback.",
            "id": 341646,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341646/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372779/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075827Z",
            "action": 59,
            "target": "Funkwhale for Android",
            "id": 341645,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341645/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372777/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075804Z",
            "action": 59,
            "target": "The Funkwhale web app interacts with the Funkwhale API to fetch and update data. Using a service worker, the web app caches important information for offline use.",
            "id": 341644,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341644/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372773/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075783Z",
            "action": 59,
            "target": "The Funkwhale web app is a {abbr}`SPA (Single Page Application)` written in [Vue.js](https://vuejs.org) and [Typescript](https://typescriptlang.org). This is the application most people associate with Funkwhale. Server admins usually run an instance of the web app alongside their Funkwhale {term}`pod`, but you can also connect a standalone web app to another pod.",
            "id": 341643,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341643/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372769/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075761Z",
            "action": 59,
            "target": "Funkwhale web app",
            "id": 341642,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341642/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372764/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075740Z",
            "action": 59,
            "target": "Users can access Funkwhale using a variety of entrypoints. They can make use of a Funkwhale application, a Subsonic-compatible application, or by calling the API directly. Each entrypoint interacts with the Funkwhale backend in the same way.",
            "id": 341641,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341641/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372760/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075719Z",
            "action": 59,
            "target": "Entrypoints",
            "id": 341640,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341640/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372756/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075697Z",
            "action": 59,
            "target": "Select a link below to see information about each component.",
            "id": 341639,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341639/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372752/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075674Z",
            "action": 59,
            "target": "Below is a diagram of Funkwhale's project setup.",
            "id": 341638,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341638/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372748/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075649Z",
            "action": 59,
            "target": "Funkwhale is made up of several components. Understanding these components and what they do is important when contributing to Funkwhale's codebase. In this article, we'll break down each part of Funkwhale's architecture to help you understand what each component does.",
            "id": 341637,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341637/?format=api"
        },
        {
            "unit": "https://translate.funkwhale.audio/api/units/372746/?format=api",
            "component": "https://translate.funkwhale.audio/api/components/documentation/developer-architecture/?format=api",
            "translation": "https://translate.funkwhale.audio/api/translations/documentation/developer-architecture/en_devel/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2023-03-25T08:06:52.075602Z",
            "action": 59,
            "target": "Project architecture",
            "id": 341636,
            "action_name": "String updated in the repository",
            "url": "https://translate.funkwhale.audio/api/changes/341636/?format=api"
        }
    ]
}