Translation components API.

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

GET /api/components/ouisync/security/changes/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 306,
    "next": "https://hosted.weblate.org/api/components/ouisync/security/changes/?format=api&page=2",
    "previous": null,
    "results": [
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2024-04-04T13:02:01.341504+02:00",
            "action": 0,
            "target": "",
            "id": 86671992,
            "action_name": "Resource updated",
            "url": "https://hosted.weblate.org/api/changes/86671992/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2024-04-04T13:02:01.225216+02:00",
            "action": 0,
            "target": "",
            "id": 86671991,
            "action_name": "Resource updated",
            "url": "https://hosted.weblate.org/api/changes/86671991/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/fa/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2024-04-04T13:02:00.845602+02:00",
            "action": 0,
            "target": "",
            "id": 86671990,
            "action_name": "Resource updated",
            "url": "https://hosted.weblate.org/api/changes/86671990/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/avon/?format=api",
            "author": "https://hosted.weblate.org/api/users/avon/?format=api",
            "timestamp": "2024-02-09T23:26:09.612948+01:00",
            "action": 0,
            "target": "",
            "id": 80661120,
            "action_name": "Resource updated",
            "url": "https://hosted.weblate.org/api/changes/80661120/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": "https://hosted.weblate.org/api/users/avon/?format=api",
            "author": "https://hosted.weblate.org/api/users/avon/?format=api",
            "timestamp": "2024-02-09T23:26:09.518037+01:00",
            "action": 0,
            "target": "",
            "id": 80661119,
            "action_name": "Resource updated",
            "url": "https://hosted.weblate.org/api/changes/80661119/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/my/?format=api",
            "user": "https://hosted.weblate.org/api/users/avon/?format=api",
            "author": "https://hosted.weblate.org/api/users/avon/?format=api",
            "timestamp": "2024-02-09T23:26:09.419822+01:00",
            "action": 0,
            "target": "",
            "id": 80661118,
            "action_name": "Resource updated",
            "url": "https://hosted.weblate.org/api/changes/80661118/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/fr/?format=api",
            "user": "https://hosted.weblate.org/api/users/avon/?format=api",
            "author": "https://hosted.weblate.org/api/users/avon/?format=api",
            "timestamp": "2024-02-09T23:26:09.349108+01:00",
            "action": 0,
            "target": "",
            "id": 80661117,
            "action_name": "Resource updated",
            "url": "https://hosted.weblate.org/api/changes/80661117/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/fa/?format=api",
            "user": "https://hosted.weblate.org/api/users/avon/?format=api",
            "author": "https://hosted.weblate.org/api/users/avon/?format=api",
            "timestamp": "2024-02-09T23:26:09.282394+01:00",
            "action": 0,
            "target": "",
            "id": 80661116,
            "action_name": "Resource updated",
            "url": "https://hosted.weblate.org/api/changes/80661116/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/es/?format=api",
            "user": "https://hosted.weblate.org/api/users/avon/?format=api",
            "author": "https://hosted.weblate.org/api/users/avon/?format=api",
            "timestamp": "2024-02-09T23:26:09.156952+01:00",
            "action": 0,
            "target": "",
            "id": 80661115,
            "action_name": "Resource updated",
            "url": "https://hosted.weblate.org/api/changes/80661115/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/en/?format=api",
            "user": "https://hosted.weblate.org/api/users/avon/?format=api",
            "author": "https://hosted.weblate.org/api/users/avon/?format=api",
            "timestamp": "2024-02-09T23:26:09.065586+01:00",
            "action": 0,
            "target": "",
            "id": 80661114,
            "action_name": "Resource updated",
            "url": "https://hosted.weblate.org/api/changes/80661114/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": null,
            "user": null,
            "author": null,
            "timestamp": "2024-02-09T22:32:19.763493+01:00",
            "action": 15,
            "target": "",
            "id": 80659689,
            "action_name": "Component unlocked",
            "url": "https://hosted.weblate.org/api/changes/80659689/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": null,
            "user": null,
            "author": null,
            "timestamp": "2024-02-07T22:01:50.973346+01:00",
            "action": 14,
            "target": "",
            "id": 80504076,
            "action_name": "Component locked",
            "url": "https://hosted.weblate.org/api/changes/80504076/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": null,
            "user": null,
            "author": null,
            "timestamp": "2024-02-07T22:01:50.954131+01:00",
            "action": 47,
            "target": "",
            "id": 80504075,
            "action_name": "Alert triggered",
            "url": "https://hosted.weblate.org/api/changes/80504075/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2024-01-26T19:01:47.438013+01:00",
            "action": 17,
            "target": "",
            "id": 79133055,
            "action_name": "Changes committed",
            "url": "https://hosted.weblate.org/api/changes/79133055/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:58:53.428465+01:00",
            "action": 1,
            "target": "",
            "id": 79086398,
            "action_name": "Translation completed",
            "url": "https://hosted.weblate.org/api/changes/79086398/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678738/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:58:53.340038+01:00",
            "action": 5,
            "target": "Вам не варто непокоїтися за конфлікти між різними копіями: у бекенді синхронізація виконується таким чином, щоб уникнути конфліктів і розбіжностей. Те, що ви бачите, коли відкриваєте Ouisync, - це те, що ми називаємо \"знімком\": ваше уявлення про все дерево каталогів у певний момент часу. Кожна зміна файлової системи (на вашому пристрої або на пристроях ваших колег) призводить до створення нового \"знімка\".",
            "id": 79086397,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79086397/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678737/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:58:00.638054+01:00",
            "action": 5,
            "target": "Коли ви надаєте спільний доступ до сховища одноранговим пристроям, це створює \"копію\" вашого сховища. Структура сховища зберігається у так званих \"індексних\" файлах - коли однорангові пристрої підключаються, вони спочатку обмінюються цими індексами. Якщо щось було змінено в одній з реплік, Ouisync завантажить відсутні блоки. Ouisync завжди спочатку завантажує каталоги, а вже потім самі файли. Це допомагає Ouisync правильно відновити ваші дані з блоків, не зіпсувавши їх. Крім того, це робиться без витоку інформації користувачам, які не мають доступу \"на читання\" до ваших сховищ.",
            "id": 79086381,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79086381/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678736/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:56:51.563431+01:00",
            "action": 5,
            "target": "Як проходить синхронізація?",
            "id": 79086365,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79086365/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678734/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:56:15.894365+01:00",
            "action": 2,
            "target": "Що таке блоб (згусток)?",
            "id": 79086362,
            "action_name": "Translation changed",
            "url": "https://hosted.weblate.org/api/changes/79086362/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678735/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:56:00.561093+01:00",
            "action": 5,
            "target": "Лінійний набір блоків називається блобом (згусток). Блоби можуть представляти файли і каталоги. Файловий блок є найпростішим: він складається із заголовка, що містить розмір файлу, дозволи та мітку часу. Блоб-директорія являє собою список імен файлів, присутніх у директорії, а також локатори, що вказують на окремі файлові блоки.",
            "id": 79086351,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79086351/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678734/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:55:21.376039+01:00",
            "action": 5,
            "target": "Що таке крапля?",
            "id": 79086346,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79086346/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678733/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:55:04.340031+01:00",
            "action": 5,
            "target": "![image]{1}",
            "id": 79086345,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79086345/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678732/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:54:46.959758+01:00",
            "action": 2,
            "target": "_Уявіть, що ви організовуєте велику весільну вечірку, на яку запрошуєте багато гостей. Ті, хто вже організовував подібні заходи, знають, як важко розсадити всіх гостей, враховуючи їхні стосунки, інтереси тощо. До речі, цю інформацію потрібно також донести до офіціантів, які повинні бути уважними і пам'ятати, хто з гостей має алергію чи дієтичні вподобання. А оскільки ваші гості - VIP, ви не хочете називати офіціантам їхні справжні імена, тому вигадуєте випадкові псевдоніми і пишете їх на цих красивих картках розподілу місць. Отже, якщо дотримуватися цієї метафори, ідентифікатор блоку - це псевдонім, написаний на картці поруч із місцем вашого гостя, а \"локатор\" - це карта всіх столиків з правильно розподіленими місцями._",
            "id": 79086339,
            "action_name": "Translation changed",
            "url": "https://hosted.weblate.org/api/changes/79086339/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678732/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:54:37.125390+01:00",
            "action": 5,
            "target": "_Уявіть, що ви організовуєте велику весільну вечірку, на яку запрошуєте багато гостей. Ті, хто вже організовував подібні заходи, знають, як важко розсадити всіх гостей, враховуючи їхні стосунки, інтереси тощо. До речі, цю інформацію потрібно також донести до офіціантів, які повинні бути уважними і пам'ятати, хто з гостей має алергію чи дієтичні вподобання. А оскільки ваші гості - VIP, ви не хочете називати офіціантам їхні справжні імена, тому вигадуєте випадкові псевдоніми і пишете їх на цих красивих картках розподілу місць. Отже, якщо дотримуватися цієї метафори, ідентифікатор блоку - це псевдонім, написаний на картці поруч із місцем вашого гостя, а \"локатор\" - це карта всіх столиків з правильно розподіленими місцями._.",
            "id": 79086338,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79086338/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678731/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:52:04.248322+01:00",
            "action": 5,
            "target": "Кожен файл і кожен каталог, що зберігається у Ouisync, поділено на відносно невеликі (наприклад, 32 КБ) блоки постійного розміру. Кожен блок має ідентифікатор блоку (згенерований за допомогою генератора випадкових чисел), який допомагає Ouisync ідентифікувати ці блоки. Всі блоки зберігаються разом з файлом, який називається \"локатор\". Локатор - це своєрідна \"мапа\", яка показує, де кожен блок розташований відносно інших блоків. Однак, щоб не розкривати цю структуру агентам, які не володіють секретним ключем, локатори не зберігаються безпосередньо, а кодуються.",
            "id": 79086300,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79086300/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678730/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:48:42.258935+01:00",
            "action": 5,
            "target": "Що таке блок?",
            "id": 79086219,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79086219/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678729/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:48:30.309380+01:00",
            "action": 5,
            "target": "Для _хешування_ Ouisync використовує хеш-функцію [BLAKE3]{1}, яка [вважається]{2} стабільно швидшою на різних платформах і з різними розмірами вхідних даних.",
            "id": 79086218,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79086218/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678728/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:47:33.567534+01:00",
            "action": 2,
            "target": "_У стані спокою_, Ouisync шифрує дані за допомогою [ChaCha20]{1}. У цьому випадку \"Ключ для зчитування\" використовується як симетричний ключ шифрування/розшифрування. Ключі автентифікуються за допомогою підписів Ed25519, а \"Ключ запису\" є закритим ключем.",
            "id": 79086205,
            "action_name": "Translation changed",
            "url": "https://hosted.weblate.org/api/changes/79086205/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678728/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:47:11.482063+01:00",
            "action": 5,
            "target": "_У стані спокою_, Oyisync шифрує дані за допомогою [ChaCha20]{1}. У цьому випадку \"Ключ для зчитування\" використовується як симетричний ключ шифрування/розшифрування. Ключі автентифікуються за допомогою підписів Ed25519, а \"Ключ запису\" є закритим ключем.",
            "id": 79086201,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79086201/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678727/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:46:18.410178+01:00",
            "action": 5,
            "target": "_Під час передачі_, Ouisync використовує фреймворк [Noise protocol]{1}, зокрема [NNpsk0 pattern]{2}. Це дозволяє Ouisync генерувати ефемерні ключі з попередньо відкритим ключем. Попередньо наданим ключем у Ouisync є ідентифікатор сховища. Noise підтримує взаємну та необов'язкову автентифікацію, приховування ідентичності, пряме шифрування, шифрування з нульовим обходом та інші розширені криптографічні можливості.",
            "id": 79086085,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79086085/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678726/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:45:12.819031+01:00",
            "action": 5,
            "target": "Які алгоритми шифрування використовуються?",
            "id": 79085799,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79085799/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678725/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:44:59.487554+01:00",
            "action": 5,
            "target": "Дані шифруються як _у стані спокою_ (коли вони просто зберігаються), так й _під час передачі_ (під час передачі даних). Важливо, що Ouisync може синхронізувати без розшифрування, і жодному пристрою не потрібно знати ключ розшифрування, щоб виконати синхронізацію. Імена файлів, вміст файлів і навіть розміри файлів та структура каталогів приховані від пристроїв, які не мають ключа шифрування. Таким чином, колеги, які мають лише сліпий доступ до ваших сховищ, не можуть бачити ані вміст ваших сховищ, ані їхню структуру.",
            "id": 79085428,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79085428/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678724/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:43:05.794299+01:00",
            "action": 5,
            "target": "При наданні доступу до сховища в певному режимі (запис, читання або сліпий) Ouisync генерує ключі (так звані \"токени\"), якими ви можете поділитися з іншими користувачами у вигляді посилань або QR-кодів. Імпорт сховища за допомогою токена дає вашому пристрою можливість розшифрувати його каталоги і файли (крім режиму \"Сліпий\").",
            "id": 79085124,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79085124/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678723/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:42:17.487413+01:00",
            "action": 5,
            "target": "Ouisync пропонує користувачам безпечний спосіб обміну та синхронізації даних між пристроями. Завдяки розподіленій (одноранговій) природі Ouisync, де можливі одночасні зміни файлів і каталогів, структура каталогів Ouisync є досить складною. Коли два або більше користувачів одночасно змінюють файл у каталозі, архітектура Ouisync гарантує, що інформація не буде втрачена. Більше того, Ouisync також захищає вміст (файли і сховища) і структуру ваших файлових систем, реалізуючи наскрізне шифрування.",
            "id": 79085015,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79085015/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678722/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/uk/?format=api",
            "user": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "author": "https://hosted.weblate.org/api/users/insider_ua/?format=api",
            "timestamp": "2024-01-25T20:41:44.738973+01:00",
            "action": 5,
            "target": "Шифрування в розподіленій системі обміну файлами",
            "id": 79084270,
            "action_name": "Translation added",
            "url": "https://hosted.weblate.org/api/changes/79084270/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "author": null,
            "timestamp": "2024-01-22T23:40:30.209537+01:00",
            "action": 17,
            "target": "",
            "id": 78915033,
            "action_name": "Changes committed",
            "url": "https://hosted.weblate.org/api/changes/78915033/?format=api"
        },
        {
            "unit": null,
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/fa/?format=api",
            "user": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "author": null,
            "timestamp": "2024-01-22T23:40:30.018112+01:00",
            "action": 17,
            "target": "",
            "id": 78915032,
            "action_name": "Changes committed",
            "url": "https://hosted.weblate.org/api/changes/78915032/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678719/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "author": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "timestamp": "2024-01-22T23:29:51.485187+01:00",
            "action": 36,
            "target": "Когда Вы предоставляете общий доступ к хранилищу своему партнеру, это создает “точную копию” (\"реплику\") Вашего хранилища. Структура хранилища хранится в так называемых файлах “индексов” - когда устройства партнёров подключаются, они сначала обмениваются этими индексами. Если что-то было изменено в одной из реплик, Ouisync загрузит недостающие блоки. Ouisync всегда сначала загружает каталоги и только после - сами файлы. Это помогает Ouisync корректно восстанавливать Ваши данные из блоков, не искажая их. Кроме того, это делается без утечки информации пользователям, у которых нет доступа “на чтение” к Вашим хранилищам.",
            "id": 78914675,
            "action_name": "Translation approved",
            "url": "https://hosted.weblate.org/api/changes/78914675/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678720/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "author": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "timestamp": "2024-01-22T23:29:50.416963+01:00",
            "action": 36,
            "target": "Вам не нужно беспокоиться о конфликтах между различными репликами: в бэкенде синхронизация выполняется таким образом, чтобы избежать конфликтов и расхождений. То, что Вы видите, когда открываете Ouisync, - это то, что мы называем “снимком”: представление всего дерева каталогов в определенный момент времени для Вас. Каждое изменение файловой системы (на Вашем устройстве или на устройствах Ваших коллег) приводит к созданию нового “снимка”.",
            "id": 78914674,
            "action_name": "Translation approved",
            "url": "https://hosted.weblate.org/api/changes/78914674/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678716/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "author": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "timestamp": "2024-01-22T23:29:48.446392+01:00",
            "action": 36,
            "target": "Что такое \"blob\"?",
            "id": 78914673,
            "action_name": "Translation approved",
            "url": "https://hosted.weblate.org/api/changes/78914673/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678717/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "author": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "timestamp": "2024-01-22T23:29:47.224921+01:00",
            "action": 36,
            "target": "Линейный набор блоков будет называться blob. Blob'ы (также известные как \"большие двоичные объекты\") могут представлять файлы и каталоги. Файловый blob является более простым: он состоит из заголовка, содержащего размер файла, разрешения и метки времени. Blob каталога представляет собой список имен файлов, присутствующих в каталоге, а также локаторы, указывающие на отдельные blob'ы файлов.",
            "id": 78914672,
            "action_name": "Translation approved",
            "url": "https://hosted.weblate.org/api/changes/78914672/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678718/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "author": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "timestamp": "2024-01-22T23:29:46.349516+01:00",
            "action": 36,
            "target": "Как происходит синхронизация?",
            "id": 78914671,
            "action_name": "Translation approved",
            "url": "https://hosted.weblate.org/api/changes/78914671/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678715/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "author": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "timestamp": "2024-01-22T23:29:44.911969+01:00",
            "action": 36,
            "target": "![image]{1}",
            "id": 78914670,
            "action_name": "Translation approved",
            "url": "https://hosted.weblate.org/api/changes/78914670/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678714/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "author": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "timestamp": "2024-01-22T23:29:43.785154+01:00",
            "action": 36,
            "target": "_ Представьте, что Вы устраиваете большую свадебную вечеринку, на которую приглашаете множество гостей. Те, кто уже организовывал подобные мероприятия, знают, как трудно распределить надлежащие места для всех гостей, учитывая их отношения, интересы и так далее. Кстати, Вам также необходимо сообщить эту информацию официантам, которые должны быть внимательны и помнить, у кого из гостей аллергия или диетические предпочтения. А поскольку ваши гости - VIP-персоны, Вы не хотите раскрывать официантам их настоящие имена, поэтому придумываете случайные псевдонимы и записываете их на этих красивых карточках с распределением мест. Итак, если мы будем придерживаться этой метафоры, идентификатором блока будет псевдоним, написанный на карточке рядом с местом Вашего гостя, а “локатором” будет карта всех столов с правильно распределенными местами._",
            "id": 78914669,
            "action_name": "Translation approved",
            "url": "https://hosted.weblate.org/api/changes/78914669/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678713/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "author": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "timestamp": "2024-01-22T23:29:41.408575+01:00",
            "action": 36,
            "target": "Каждый файл и каждый каталог, хранящиеся в Ouisync, разделены на относительно небольшие (например, 32 КБ) блоки постоянного размера. Каждый блок имеет идентификатор блока (\"Block ID\", генерируемый генератором случайных чисел), который помогает Ouisync идентифицировать эти блоки. Все блоки хранятся вместе с файлом под названием “locator”. Локатор - это своего рода “карта”, которая указывает, где расположен каждый блок относительно других блоков. Однако, чтобы не раскрывать эту структуру агентам, не обладающим секретным ключом, локаторы не хранятся обычным текстом, а закодированы.",
            "id": 78914668,
            "action_name": "Translation approved",
            "url": "https://hosted.weblate.org/api/changes/78914668/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678710/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "author": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "timestamp": "2024-01-22T23:29:39.880959+01:00",
            "action": 36,
            "target": "_В состоянии покоя_ Oyisync шифрует данные с помощью [ChaCha20]{1}. В этом случае «Ключ чтения» используется в качестве симметричного ключа шифрования/дешифрования. Ключи аутентифицируются с использованием подписей Ed25519, при этом «ключ записи» является закрытым ключом.",
            "id": 78914667,
            "action_name": "Translation approved",
            "url": "https://hosted.weblate.org/api/changes/78914667/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678711/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "author": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "timestamp": "2024-01-22T23:29:38.733300+01:00",
            "action": 36,
            "target": "Для _хэширования_ Ouisync использует хэш-функцию [BLAKE3]{1}, которая [считается]{2} стабильно более быстрой на разных платформах и размерах входных данных.",
            "id": 78914666,
            "action_name": "Translation approved",
            "url": "https://hosted.weblate.org/api/changes/78914666/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678712/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "author": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "timestamp": "2024-01-22T23:29:37.679854+01:00",
            "action": 36,
            "target": "Что такое Блок?",
            "id": 78914665,
            "action_name": "Translation approved",
            "url": "https://hosted.weblate.org/api/changes/78914665/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678709/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "author": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "timestamp": "2024-01-22T23:29:35.482294+01:00",
            "action": 36,
            "target": "_При передаче_ Ouisync использует фреймворк [Noise protocol]{1}, в частности [шаблон NNpsk0]{2}. Это позволяет Ouisync генерировать эфемерные ключи с предварительно раскрытым (pre-shared) ключом. Предварительно раскрытый (pre-shared) ключ в Ouisync - это идентификатор (ID) хранилища. Noise поддерживает взаимную и дополнительную аутентификацию, скрытие идентификационных данных, прямую секретность, нулевое шифрование в оба конца и другие расширенные криптографические функции.",
            "id": 78914663,
            "action_name": "Translation approved",
            "url": "https://hosted.weblate.org/api/changes/78914663/?format=api"
        },
        {
            "unit": "https://hosted.weblate.org/api/units/106678708/?format=api",
            "component": "https://hosted.weblate.org/api/components/ouisync/security/?format=api",
            "translation": "https://hosted.weblate.org/api/translations/ouisync/security/ru/?format=api",
            "user": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "author": "https://hosted.weblate.org/api/users/jnny/?format=api",
            "timestamp": "2024-01-22T23:29:33.554155+01:00",
            "action": 36,
            "target": "Какие алгоритмы шифрования используются?",
            "id": 78914662,
            "action_name": "Translation approved",
            "url": "https://hosted.weblate.org/api/changes/78914662/?format=api"
        }
    ]
}