Translation components API.

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

GET /api/translations/freebsd-doc/articles_linux-emulation/pt_BR/changes/?format=api&page=2
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 66,
    "next": null,
    "previous": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/changes/?format=api",
    "results": [
        {
            "unit": "https://translate-dev.freebsd.org/api/units/157285/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "timestamp": "2020-04-18T19:19:36.285829Z",
            "action": 5,
            "target": "A interface ioctl é bastante frágil devido à sua generalidade. Nós temos que ter em mente que os dispositivos diferem entre <trademark class=\"registered\">Linux</trademark> e FreeBSD, então alguns cuidados devem ser aplicados para fazer o trabalho de emulação de ioctl corretamente. O manuseio ioctl é implementado em <filename>linux_ioctl.c</filename>, onde a função <function>linux_ioctl</function> é definida. Esta função simplesmente itera sobre conjuntos de manipuladores ioctl para encontrar um manipulador que implementa um dado comando. A syscall ioctl tem três parâmetros, o file descriptor, comando e um argumento. O comando é um número de 16 bits, que, em teoria, é dividido em alta classe determinante de 8 bits do comando ioctl e 8 bits baixos, que são o comando real dentro do conjunto dado. A emulação aproveita essa divisão. Implementamos manipuladores para cada conjunto, como <function>sound_handler</function> ou <function>disk_handler</function>. Cada manipulador tem um comando máximo e um comando mínimo definido, que é usado para determinar qual manipulador é usado. Existem pequenos problemas com esta abordagem porque <trademark class=\"registered\">Linux</trademark> não usa a divisão definida consistentemente, por isso as ioctls para um conjunto diferente estão dentro de um conjunto ao qual não devem pertencer (ioctls genéricos SCSI dentro do cdrom conjunto, etc.). O FreeBSD atualmente não implementa muitos ioctls do <trademark class=\"registered\">Linux</trademark> (comparado ao NetBSD, por exemplo), mas o plano é portar os do NetBSD. A tendência é usar o ioctls <trademark class=\"registered\">Linux</trademark> mesmo nos drivers nativos do FreeBSD, devido à fácil portabilidade dos aplicativos.",
            "id": 65484,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/65484/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/157286/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "timestamp": "2020-04-18T19:19:38.993640Z",
            "action": 5,
            "target": "Em abril de 2007, a camada de emulação do <trademark class=\"registered\">Linux</trademark> é capaz de emular o kernel <trademark class=\"registered\">Linux</trademark> 2.6.16 muito bem. Os problemas remanescentes dizem respeito a futexes, inacabado na família de syscalls *at, entrega de sinais problemáticos, falta de <function>epoll</function> e <function>inotify</function> e provavelmente alguns bugs que ainda não descobrimos. Apesar disso, somos capazes de executar basicamente todos os programas <trademark class=\"registered\">Linux</trademark> incluídos na coleção de ports do FreeBSD com o Fedora Core 4 em 2.6.16 e há alguns relatos rudimentares de sucesso com o Fedora Core 6 em 2.6.16. O linux_base do Fedora Core 6 foi recentemente comprometido permitindo alguns testes adicionais da camada de emulação e nos dando mais algumas dicas onde devemos nos esforçar para implementar o material que está faltando.",
            "id": 65485,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/65485/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/157287/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "timestamp": "2020-04-18T19:20:12.933677Z",
            "action": 5,
            "target": "Nós podemos rodar os aplicativos mais usados como o <package>www/linux-firefox</package>,  <package>net-im/skype</package> e alguns jogos da Coleção de Ports. Alguns dos programas exibem mau comportamento na emulação 2.6, mas isso está atualmente sob investigação e, espera-se, será corrigido em breve. A única grande aplicação que se sabe que não funciona é o <trademark>Java</trademark> Development Kit do <trademark class=\"registered\">Linux</trademark> e isto é devido ao requisito de <function>epoll</function> habilidade que não está diretamente relacionada ao kernel do <trademark class=\"registered\">Linux</trademark> 2.6.",
            "id": 65486,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/65486/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/157288/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "timestamp": "2020-04-18T19:20:18.193551Z",
            "action": 5,
            "target": "Esperamos habilitar a emulação 2.6.16 por padrão algum tempo depois que o FreeBSD 7.0 for lançado pelo menos para expor as partes da emulação 2.6 para alguns testes mais amplos. Feito isso, podemos mudar para o Fedora Core 6 linux_base, que é o plano final.",
            "id": 65487,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/65487/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/157289/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "timestamp": "2020-04-18T19:20:21.058933Z",
            "action": 5,
            "target": "Esperamos poder executar os programas mais importantes com perfeição em breve, por isso poderemos alternar para a emulação 2.6 por padrão e fazer do Fedora Core 6 o linux_base padrão porque o nosso atualmente usado Fedora Core 4 não é mais suportado.",
            "id": 65488,
            "action_name": "New translation",
            "url": "https://translate-dev.freebsd.org/api/changes/65488/?format=api"
        },
        {
            "unit": null,
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "author": null,
            "timestamp": "2020-04-18T19:38:43.820982Z",
            "action": 17,
            "target": "",
            "id": 65553,
            "action_name": "Committed changes",
            "url": "https://translate-dev.freebsd.org/api/changes/65553/?format=api"
        },
        {
            "unit": null,
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "timestamp": "2020-05-16T14:37:37.187989Z",
            "action": 0,
            "target": "",
            "id": 66698,
            "action_name": "Resource update",
            "url": "https://translate-dev.freebsd.org/api/changes/66698/?format=api"
        },
        {
            "unit": null,
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "timestamp": "2020-06-06T14:20:59.474781Z",
            "action": 0,
            "target": "",
            "id": 68375,
            "action_name": "Resource update",
            "url": "https://translate-dev.freebsd.org/api/changes/68375/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/229216/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2021-01-09T14:33:01.586922Z",
            "action": 30,
            "target": "There are currently two ways to implement threading in FreeBSD. The first way is M:N threading followed by the 1:1 threading model. The default library used is M:N threading (<literal>libpthread</literal>) and you can switch at runtime to 1:1 threading (<literal>libthr</literal>). The plan is to switch to 1:1 library by default soon. Although those two libraries use the same kernel primitives, they are accessed through different API(es). The M:N library uses the <literal>kse_*</literal> family of syscalls while the 1:1 library uses the <literal>thr_*</literal> family of syscalls. Due to this, there is no general concept of thread ID shared between kernel and userspace. Of course, both threading libraries implement the pthread thread ID API. Every kernel thread (as described by <literal>struct thread</literal>) has td tid identifier but this is not directly accessible from userland and solely serves the kernel's needs. It is also used for 1:1 threading library as pthread's thread ID but handling of this is internal to the library and cannot be relied on.",
            "id": 106091,
            "action_name": "Source string changed",
            "url": "https://translate-dev.freebsd.org/api/changes/106091/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/229217/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2021-01-09T14:33:01.924962Z",
            "action": 30,
            "target": "As there is a difference in view as what to the idea of a process ID and thread ID is between FreeBSD and <trademark class=\"registered\">Linux</trademark> we have to translate the view somehow. We do it by PID mangling. This means that we fake what a PID (=TGID) and TID (=PID) is between kernel and userland. The rule of thumb is that in kernel (in Linuxulator) PID = PID and TGID = shared -&gt; group pid and to userland we present <literal>PID = shared -&gt; group_pid</literal> and <literal>TID = proc -&gt; p_pid</literal>. The PID member of <literal>linux_emuldata structure</literal> is a FreeBSD PID.",
            "id": 106092,
            "action_name": "Source string changed",
            "url": "https://translate-dev.freebsd.org/api/changes/106092/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/229218/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2021-01-09T14:33:01.949099Z",
            "action": 30,
            "target": "The locking is implemented to be per-subsystem because we do not expect a lot of contention on these. There are two locks: <literal>emul_lock</literal> used to protect manipulating of <literal>linux_emuldata</literal> and <literal>emul_shared_lock</literal> used to manipulate <literal>linux_emuldata_shared</literal>. The <literal>emul_lock</literal> is a nonsleepable blocking mutex while <literal>emul_shared_lock</literal> is a sleepable blocking <literal>sx_lock</literal>. Due to the per-subsystem locking we can coalesce some locks and that is why the em find offers the non-locking access.",
            "id": 106093,
            "action_name": "Source string changed",
            "url": "https://translate-dev.freebsd.org/api/changes/106093/?format=api"
        },
        {
            "unit": "https://translate-dev.freebsd.org/api/units/229219/?format=api",
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2021-01-09T14:33:01.991621Z",
            "action": 30,
            "target": "Threaded programs should be written with as little contention on locks as possible. Otherwise, instead of doing useful work the thread just waits on a lock. As a result of this, the most well written threaded programs show little locks contention.",
            "id": 106094,
            "action_name": "Source string changed",
            "url": "https://translate-dev.freebsd.org/api/changes/106094/?format=api"
        },
        {
            "unit": null,
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "timestamp": "2021-01-09T14:33:02.162947Z",
            "action": 0,
            "target": "",
            "id": 106095,
            "action_name": "Resource update",
            "url": "https://translate-dev.freebsd.org/api/changes/106095/?format=api"
        },
        {
            "unit": null,
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "author": "https://translate-dev.freebsd.org/api/users/dbaio/?format=api",
            "timestamp": "2021-01-09T14:33:02.231427Z",
            "action": 44,
            "target": "",
            "id": 106097,
            "action_name": "New strings to translate",
            "url": "https://translate-dev.freebsd.org/api/changes/106097/?format=api"
        },
        {
            "unit": null,
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2021-09-18T23:09:07.585292Z",
            "action": 0,
            "target": "",
            "id": 336595,
            "action_name": "Resource update",
            "url": "https://translate-dev.freebsd.org/api/changes/336595/?format=api"
        },
        {
            "unit": null,
            "component": "https://translate-dev.freebsd.org/api/components/freebsd-doc/articles_linux-emulation/?format=api",
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "user": null,
            "author": null,
            "timestamp": "2021-09-18T23:34:12.388056Z",
            "action": 0,
            "target": "",
            "id": 337746,
            "action_name": "Resource update",
            "url": "https://translate-dev.freebsd.org/api/changes/337746/?format=api"
        }
    ]
}