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/units/?format=api&page=7
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 384,
    "next": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/units/?format=api&page=8",
    "previous": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/units/?format=api&page=6",
    "results": [
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "This operations associates a file descriptor with a given futex."
            ],
            "previous_source": "",
            "target": [
                "Esta operação associa um descritor de arquivo com um determinado futex."
            ],
            "id_hash": -2684631457206744918,
            "content_hash": -2684631457206744918,
            "location": "article.translate.xml:2092",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 311,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 10,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99708/?format=api",
            "priority": 100,
            "id": 26960,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=5abe45e9d85a48aa",
            "url": "https://translate-dev.freebsd.org/api/units/26960/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.542021Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "FUTEX_REQUEUE"
            ],
            "previous_source": "",
            "target": [
                "FUTEX_REQUEUE"
            ],
            "id_hash": 5150940941445201307,
            "content_hash": 5150940941445201307,
            "location": "article.translate.xml:2097",
            "context": "",
            "note": "(itstool) path: sect4/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 312,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99709/?format=api",
            "priority": 100,
            "id": 26961,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=c77bd17ed1db7d9b",
            "url": "https://translate-dev.freebsd.org/api/units/26961/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.554414Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "This operation takes <varname>val</varname> threads queued on futex at <varname>uaddr</varname>, wakes them up, and takes <varname>val2</varname> next threads and requeues them on futex at <varname>uaddr2</varname>."
            ],
            "previous_source": "",
            "target": [
                "Esta operação pega threads <varname>val</varname> enfileirados no futex em <varname>uaddr</varname>, acorda-os e pega as próximas threads  <varname>val2</varname> e enfileira-os no futex em <varname>uaddr2</varname>."
            ],
            "id_hash": 5769782080566364404,
            "content_hash": 5769782080566364404,
            "location": "article.translate.xml:2099",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 313,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 25,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99710/?format=api",
            "priority": 100,
            "id": 26962,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=d012623b8f9288f4",
            "url": "https://translate-dev.freebsd.org/api/units/26962/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.567036Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "FUTEX_CMP_REQUEUE"
            ],
            "previous_source": "",
            "target": [
                "FUTEX_CMP_REQUEUE"
            ],
            "id_hash": -3722099100449871066,
            "content_hash": -3722099100449871066,
            "location": "article.translate.xml:2107",
            "context": "",
            "note": "(itstool) path: sect4/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 314,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99711/?format=api",
            "priority": 100,
            "id": 26963,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=4c587296b2e26b26",
            "url": "https://translate-dev.freebsd.org/api/units/26963/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.576676Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "This operation does the same as <literal>FUTEX_REQUEUE</literal> but it checks that <varname>val3</varname> equals to <varname>val</varname> first."
            ],
            "previous_source": "",
            "target": [
                "Essa operação faz o mesmo que <literal>FUTEX_REQUEUE</literal>, mas verifica se <varname>val3</varname> é igual a <varname>val</varname> primeiro."
            ],
            "id_hash": -3160737831016579982,
            "content_hash": -3160737831016579982,
            "location": "article.translate.xml:2109",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 315,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 16,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99712/?format=api",
            "priority": 100,
            "id": 26964,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=5422cdb0621e3c72",
            "url": "https://translate-dev.freebsd.org/api/units/26964/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.586560Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "FUTEX_WAKE_OP"
            ],
            "previous_source": "",
            "target": [
                "FUTEX_WAKE_OP"
            ],
            "id_hash": 6050201916691459304,
            "content_hash": 6050201916691459304,
            "location": "article.translate.xml:2116",
            "context": "",
            "note": "(itstool) path: sect4/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 316,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99713/?format=api",
            "priority": 100,
            "id": 26965,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=d3f6a2967fc82ce8",
            "url": "https://translate-dev.freebsd.org/api/units/26965/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.603020Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "This operation performs an atomic operation on <varname>val3</varname> (which contains coded some other value) and <varname>uaddr</varname>. Then it wakes up <varname>val</varname> threads on futex at <varname>uaddr</varname> and if the atomic operation returned a positive number it wakes up <varname>val2</varname> threads on futex at <varname>uaddr2</varname>."
            ],
            "previous_source": "",
            "target": [
                "Esta operação executa uma operação atômica em <varname>val3</varname> (que contém algum outro valor codificado) e <varname>uaddr</varname>. Então, ele acorda threads <varname>val</varname> em futex em <varname>uaddr</varname> e se a operação atômica retornar um número positivo, ele ativa os threadings <varname>val2</varname> em futex em <varname>uaddr2</varname>."
            ],
            "id_hash": -2220334457643274578,
            "content_hash": -2220334457643274578,
            "location": "article.translate.xml:2118",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 317,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 44,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99714/?format=api",
            "priority": 100,
            "id": 26966,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=612fc993199ceeae",
            "url": "https://translate-dev.freebsd.org/api/units/26966/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.616812Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "The operations implemented in <literal>FUTEX_WAKE_OP</literal>:"
            ],
            "previous_source": "",
            "target": [
                "As operações implementadas em <literal>FUTEX_WAKE_OP</literal>:"
            ],
            "id_hash": 2291870293036922431,
            "content_hash": 2291870293036922431,
            "location": "article.translate.xml:2127",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 318,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 5,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99715/?format=api",
            "priority": 100,
            "id": 26967,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=9fce5be37fbc763f",
            "url": "https://translate-dev.freebsd.org/api/units/26967/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.623682Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "<literal>FUTEX_OP_SET</literal>"
            ],
            "previous_source": "",
            "target": [
                "<literal>FUTEX_OP_SET</literal>"
            ],
            "id_hash": -7091212857448688372,
            "content_hash": -7091212857448688372,
            "location": "article.translate.xml:2132",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 319,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99716/?format=api",
            "priority": 100,
            "id": 26968,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=1d96f37a1d16950c",
            "url": "https://translate-dev.freebsd.org/api/units/26968/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.630887Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "<literal>FUTEX_OP_ADD</literal>"
            ],
            "previous_source": "",
            "target": [
                "<literal>FUTEX_OP_ADD</literal>"
            ],
            "id_hash": -5491281975378696549,
            "content_hash": -5491281975378696549,
            "location": "article.translate.xml:2135",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 320,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99717/?format=api",
            "priority": 100,
            "id": 26969,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=33cb0c23300c269b",
            "url": "https://translate-dev.freebsd.org/api/units/26969/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.639225Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "<literal>FUTEX_OP_OR</literal>"
            ],
            "previous_source": "",
            "target": [
                "<literal>FUTEX_OP_OR</literal>"
            ],
            "id_hash": 994945684201218501,
            "content_hash": 994945684201218501,
            "location": "article.translate.xml:2138",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 321,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99718/?format=api",
            "priority": 100,
            "id": 26970,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=8dcec1d40d9f21c5",
            "url": "https://translate-dev.freebsd.org/api/units/26970/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.647546Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "<literal>FUTEX_OP_AND</literal>"
            ],
            "previous_source": "",
            "target": [
                "<literal>FUTEX_OP_AND</literal>"
            ],
            "id_hash": -2134058569592698447,
            "content_hash": -2134058569592698447,
            "location": "article.translate.xml:2141",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 322,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99719/?format=api",
            "priority": 100,
            "id": 26971,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=62624d09a58c89b1",
            "url": "https://translate-dev.freebsd.org/api/units/26971/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.660946Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "<literal>FUTEX_OP_XOR</literal>"
            ],
            "previous_source": "",
            "target": [
                "<literal>FUTEX_OP_XOR</literal>"
            ],
            "id_hash": 8214585167031812043,
            "content_hash": 8214585167031812043,
            "location": "article.translate.xml:2144",
            "context": "",
            "note": "(itstool) path: listitem/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 323,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99720/?format=api",
            "priority": 100,
            "id": 26972,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=f20011afca1fbfcb",
            "url": "https://translate-dev.freebsd.org/api/units/26972/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.670053Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "There is no <varname>val2</varname> parameter in the futex prototype. The <varname>val2</varname> is taken from the <varname>struct timespec *timeout</varname> parameter for operations <literal>FUTEX_REQUEUE</literal>, <literal>FUTEX_CMP_REQUEUE</literal> and <literal>FUTEX_WAKE_OP</literal>."
            ],
            "previous_source": "",
            "target": [
                "Não existe um parâmetro <varname>val2</varname> no protótipo do futex. O <varname>val2</varname> é obtido do parâmetro <varname>struct timespec *timeout</varname> para as operações <literal>FUTEX_REQUEUE</literal>, <literal>FUTEX_CMP_REQUEUE</literal> e <literal>FUTEX_WAKE_OP</literal>."
            ],
            "id_hash": -2674190808617833543,
            "content_hash": -2674190808617833543,
            "location": "article.translate.xml:2149",
            "context": "",
            "note": "(itstool) path: note/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 324,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 25,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99721/?format=api",
            "priority": 100,
            "id": 26973,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=5ae35da0c6b82bb9",
            "url": "https://translate-dev.freebsd.org/api/units/26973/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.679137Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "Futex emulation in FreeBSD"
            ],
            "previous_source": "",
            "target": [
                "Emulação de Futex no FreeBSD"
            ],
            "id_hash": 9126050598295563048,
            "content_hash": 9126050598295563048,
            "location": "article.translate.xml:2161",
            "context": "",
            "note": "(itstool) path: sect3/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 325,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 4,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99722/?format=api",
            "priority": 100,
            "id": 26974,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=fea63eaad1a5eb28",
            "url": "https://translate-dev.freebsd.org/api/units/26974/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.686510Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "The futex emulation in FreeBSD is taken from NetBSD and further extended by us. It is placed in <filename>linux_futex.c</filename> and <filename>linux_futex.h</filename> files. The <literal>futex</literal> structure looks like:"
            ],
            "previous_source": "",
            "target": [
                "A emulação de futex no FreeBSD é retirada do NetBSD e posteriormente estendida por nós. Ele é colocado nos arquivos <filename>linux_futex.c</filename> e <filename>linux_futex.h</filename>. A estrutura <literal>futex</literal> se parece com:"
            ],
            "id_hash": 586376583912890399,
            "content_hash": 586376583912890399,
            "location": "article.translate.xml:2163",
            "context": "",
            "note": "(itstool) path: sect3/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 326,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 27,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99723/?format=api",
            "priority": 100,
            "id": 26975,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=88233a6574bc201f",
            "url": "https://translate-dev.freebsd.org/api/units/26975/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.694359Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "struct futex {\n  void *f_uaddr;\n  int f_refcount;\n\n  LIST_ENTRY(futex) f_list;\n\n  TAILQ_HEAD(lf_waiting_paroc, waiting_proc) f_waiting_proc;\n};"
            ],
            "previous_source": "",
            "target": [
                "struct futex {\n  void *f_uaddr;\n  int f_refcount;\n\n  LIST_ENTRY(futex) f_list;\n\n  TAILQ_HEAD(lf_waiting_paroc, waiting_proc) f_waiting_proc;\n};"
            ],
            "id_hash": 2237234486520790275,
            "content_hash": 2237234486520790275,
            "location": "article.translate.xml:2169",
            "context": "",
            "note": "(itstool) path: sect3/programlisting",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 327,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 13,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99724/?format=api",
            "priority": 100,
            "id": 26976,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=9f0c40e980533d03",
            "url": "https://translate-dev.freebsd.org/api/units/26976/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.724334Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "And the structure <literal>waiting_proc</literal> is:"
            ],
            "previous_source": "",
            "target": [
                "E a estrutura <literal>waiting_proc</literal> é:"
            ],
            "id_hash": 4661995603563977512,
            "content_hash": 4661995603563977512,
            "location": "article.translate.xml:2178",
            "context": "",
            "note": "(itstool) path: sect3/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 328,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 5,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99725/?format=api",
            "priority": 100,
            "id": 26977,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=c0b2bc4d16dd1b28",
            "url": "https://translate-dev.freebsd.org/api/units/26977/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.731547Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "struct waiting_proc {\n\n  struct thread *wp_t;\n\n  struct futex *wp_new_futex;\n\n  TAILQ_ENTRY(waiting_proc) wp_list;\n};"
            ],
            "previous_source": "",
            "target": [
                "struct waiting_proc {\n\n  struct thread *wp_t;\n\n  struct futex *wp_new_futex;\n\n  TAILQ_ENTRY(waiting_proc) wp_list;\n};"
            ],
            "id_hash": 8672819089957999033,
            "content_hash": 8672819089957999033,
            "location": "article.translate.xml:2181",
            "context": "",
            "note": "(itstool) path: sect3/programlisting",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 329,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 12,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99726/?format=api",
            "priority": 100,
            "id": 26978,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=f85c0b03022c51b9",
            "url": "https://translate-dev.freebsd.org/api/units/26978/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.738740Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "futex_get / futex_put"
            ],
            "previous_source": "",
            "target": [
                "futex_get / futex_put"
            ],
            "id_hash": -6923323960110814241,
            "content_hash": -6923323960110814241,
            "location": "article.translate.xml:2191",
            "context": "",
            "note": "(itstool) path: sect4/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 330,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99727/?format=api",
            "priority": 100,
            "id": 26979,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=1feb698a24a4ebdf",
            "url": "https://translate-dev.freebsd.org/api/units/26979/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.745760Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "A futex is obtained using the <function>futex_get</function> function, which searches a linear list of futexes and returns the found one or creates a new futex. When releasing a futex from the use we call the <function>futex_put</function> function, which decreases a reference counter of the futex and if the refcount reaches zero it is released."
            ],
            "previous_source": "",
            "target": [
                "Um futex é obtido usando a função <function>futex_get</function>, que busca uma lista linear de futexes e retorna o encontrado ou cria um novo futex. Ao liberar um futex do uso, chamamos a função <function>futex_put</function>, que diminui um contador de referência do futex e, se o refcount chegar a zero, ele é liberado."
            ],
            "id_hash": -2749611880161593650,
            "content_hash": -2749611880161593650,
            "location": "article.translate.xml:2193",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 331,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 54,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99728/?format=api",
            "priority": 100,
            "id": 26980,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=59d76a9024c636ce",
            "url": "https://translate-dev.freebsd.org/api/units/26980/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.753051Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "futex_sleep"
            ],
            "previous_source": "",
            "target": [
                "futex_sleep"
            ],
            "id_hash": 70305728764041886,
            "content_hash": 70305728764041886,
            "location": "article.translate.xml:2203",
            "context": "",
            "note": "(itstool) path: sect4/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 332,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99729/?format=api",
            "priority": 100,
            "id": 26981,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=80f9c6b014a7da9e",
            "url": "https://translate-dev.freebsd.org/api/units/26981/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.762724Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "When a futex queues a thread for sleeping it creates a <literal>working_proc</literal> structure and puts this structure to the list inside the futex structure then it just performs a <citerefentry><refentrytitle>tsleep</refentrytitle><manvolnum>9</manvolnum></citerefentry> to suspend the thread. The sleep can be timed out. After <citerefentry><refentrytitle>tsleep</refentrytitle><manvolnum>9</manvolnum></citerefentry> returns (the thread was woken up or it timed out) the <literal>working_proc</literal> structure is removed from the list and is destroyed. All this is done in the <function>futex_sleep</function> function. If we got woken up from <function>futex_wake</function> we have <varname>wp_new_futex</varname> set so we sleep on it. This way the actual requeueing is done in this function."
            ],
            "previous_source": "",
            "target": [
                "Quando um futex enfileira uma thread para dormir, ele cria uma estrutura <literal>working_proc</literal> e coloca essa estrutura na lista dentro da estrutura do futex, então apenas executa um <citerefentry><refentrytitle>tsleep</refentrytitle><manvolnum>9</manvolnum></citerefentry> para suspender a threading. O sleep pode ser expirado. Depois de <citerefentry><refentrytitle>tsleep</refentrytitle><manvolnum>9</manvolnum></citerefentry> retornar (a thread foi acordada ou expirou) a estrutura <literal>working_proc</literal> é removida da lista e é destruído. Tudo isso é feito na função <function>futex_sleep</function>. Se nós formos acordados de <function>futex_wake</function> nós temos <varname>wp_new_futex</varname> setado então nós dormimos nele. Desta forma, um novo enfileiramento é feito nesta função."
            ],
            "id_hash": 5152736203726570953,
            "content_hash": 5152736203726570953,
            "location": "article.translate.xml:2205",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 333,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 97,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99730/?format=api",
            "priority": 100,
            "id": 26982,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=c7823246e46ac5c9",
            "url": "https://translate-dev.freebsd.org/api/units/26982/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.770743Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "futex_wake"
            ],
            "previous_source": "",
            "target": [
                "futex_wake"
            ],
            "id_hash": 5846751878596236089,
            "content_hash": 5846751878596236089,
            "location": "article.translate.xml:2221",
            "context": "",
            "note": "(itstool) path: sect4/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 334,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99731/?format=api",
            "priority": 100,
            "id": 26983,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=d123d5db2d939339",
            "url": "https://translate-dev.freebsd.org/api/units/26983/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.792976Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "Waking up a thread sleeping on a futex is performed in the <function>futex_wake</function> function. First in this function we mimic the strange <trademark class=\"registered\">Linux</trademark> behavior, where it wakes up N threads for all operations, the only exception is that the REQUEUE operations are performed on N+1 threads. But this usually does not make any difference as we are waking up all threads. Next in the function in the loop we wake up n threads, after this we check if there is a new futex for requeueing. If so, we requeue up to n2 threads on the new futex. This cooperates with <function>futex_sleep</function>."
            ],
            "previous_source": "",
            "target": [
                "Acordar uma thread em sleep em uma futex é performado na função <function>futex_wake</function>. Primeiro nesta função nós imitamos o comportamento estranho do <trademark class=\"registered\">Linux</trademark>, onde ele acorda N threads para todas as operações, a única exceção é que as operações REQUEUE são executadas em threads N+1. Mas isso geralmente não faz diferença, pois estamos acordando todos as threads. Em seguida na função no loop nós acordamos n threads, depois disso nós checamos se existe um novo futex para requeuering. Se assim for, nós enfileiramos novamente até n2 threads no novo futex. Isso coopera com o <function>futex_sleep</function>."
            ],
            "id_hash": -5724434701289264366,
            "content_hash": -5724434701289264366,
            "location": "article.translate.xml:2223",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 335,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 102,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99732/?format=api",
            "priority": 100,
            "id": 26984,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=308eb8f7f1bbeb12",
            "url": "https://translate-dev.freebsd.org/api/units/26984/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.804076Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "futex_wake_op"
            ],
            "previous_source": "",
            "target": [
                "futex_wake_op"
            ],
            "id_hash": -4083058720737706903,
            "content_hash": -4083058720737706903,
            "location": "article.translate.xml:2237",
            "context": "",
            "note": "(itstool) path: sect4/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 336,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99733/?format=api",
            "priority": 100,
            "id": 26985,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=47560fb9f95e3c69",
            "url": "https://translate-dev.freebsd.org/api/units/26985/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.822893Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "The <literal>FUTEX_WAKE_OP</literal> operation is quite complicated. First we obtain two futexes at addresses <varname>uaddr</varname> and <varname>uaddr2</varname> then we perform the atomic operation using <varname>val3</varname> and <varname>uaddr2</varname>. Then <varname>val</varname> waiters on the first futex is woken up and if the atomic operation condition holds we wake up <varname>val2</varname> (i.e. <varname>timeout</varname>) waiter on the second futex."
            ],
            "previous_source": "",
            "target": [
                "A operação <literal>FUTEX_WAKE_OP</literal> é bastante complicada. Primeiro nós obtemos dois futexes nos endereços <varname>uaddr</varname> e <varname>uaddr2</varname> e então executamos a operação atômica usando <varname>val3</varname> e <varname>uaddr2</varname>. Então os waiters <varname>val</varname> no primeiro futex são acordados e se a condição de operação atômica se mantém, nós acordamos o waiter <varname>val2</varname> (ex <varname>timeout</varname>) no segundo futex."
            ],
            "id_hash": 514626612450532262,
            "content_hash": 514626612450532262,
            "location": "article.translate.xml:2239",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 337,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 54,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99734/?format=api",
            "priority": 100,
            "id": 26986,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=8724522d6b139ba6",
            "url": "https://translate-dev.freebsd.org/api/units/26986/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.829321Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "futex atomic operation"
            ],
            "previous_source": "",
            "target": [
                "operação atômica futex"
            ],
            "id_hash": 2449983155241707548,
            "content_hash": 2449983155241707548,
            "location": "article.translate.xml:2252",
            "context": "",
            "note": "(itstool) path: sect4/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 338,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99735/?format=api",
            "priority": 100,
            "id": 26987,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=a20016b2f9df681c",
            "url": "https://translate-dev.freebsd.org/api/units/26987/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.835552Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "The atomic operation takes two parameters <varname>encoded_op</varname> and <varname>uaddr</varname>. The encoded operation encodes the operation itself, comparing value, operation argument, and comparing argument. The pseudocode for the operation is like this one:"
            ],
            "previous_source": "",
            "target": [
                "A operação atômica usa dois parâmetros <varname>encoded_op</varname> e <varname>uaddr</varname>. A operação codificada, codifica a operação em si, comparando valor, argumento de operação e argumento de comparação. O pseudocódigo da operação é como este:"
            ],
            "id_hash": -6055432076951587391,
            "content_hash": -6055432076951587391,
            "location": "article.translate.xml:2254",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 339,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 32,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99736/?format=api",
            "priority": 100,
            "id": 26988,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=2bf6c89bebcb75c1",
            "url": "https://translate-dev.freebsd.org/api/units/26988/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.847920Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "oldval = *uaddr2\n*uaddr2 = oldval OP oparg"
            ],
            "previous_source": "",
            "target": [
                "oldval = *uaddr2\n*uaddr2 = oldval OP oparg"
            ],
            "id_hash": 1610897643313519905,
            "content_hash": 1610897643313519905,
            "location": "article.translate.xml:2261",
            "context": "",
            "note": "(itstool) path: sect4/programlisting",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 340,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 8,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99737/?format=api",
            "priority": 100,
            "id": 26989,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=965b0edf27375d21",
            "url": "https://translate-dev.freebsd.org/api/units/26989/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.866426Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "And this is done atomically. First a copying in of the number at <varname>uaddr</varname> is performed and the operation is done. The code handles page faults and if no page fault occurs <varname>oldval</varname> is compared to <varname>cmparg</varname> argument with cmp comparator."
            ],
            "previous_source": "",
            "target": [
                "E isso é feito atomicamente. Primeiro, uma cópia do número em <varname>uaddr</varname> é executada e a operação é concluída. O código manipula falhas de página e, se nenhuma falha de página ocorrer, <varname>oldval</varname> é comparado ao argumento <varname>cmparg</varname> com o comparador cmp."
            ],
            "id_hash": -7827306056018401216,
            "content_hash": -7827306056018401216,
            "location": "article.translate.xml:2264",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 341,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 41,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99738/?format=api",
            "priority": 100,
            "id": 26990,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=135fd29ce6c26840",
            "url": "https://translate-dev.freebsd.org/api/units/26990/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.879545Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "Futex locking"
            ],
            "previous_source": "",
            "target": [
                "Bloqueio Futex"
            ],
            "id_hash": -642655823666335864,
            "content_hash": -642655823666335864,
            "location": "article.translate.xml:2273",
            "context": "",
            "note": "(itstool) path: sect4/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 342,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99739/?format=api",
            "priority": 100,
            "id": 26991,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=7714d3eeed882f88",
            "url": "https://translate-dev.freebsd.org/api/units/26991/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.891136Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "Futex implementation uses two lock lists protecting <function>sx_lock</function> and global locks (either Giant or another <function>sx_lock</function>). Every operation is performed locked from the start to the very end."
            ],
            "previous_source": "",
            "target": [
                "A implementação do Futex usa duas listas de lock que protegndo <function>sx_lock</function> e locks globais (Giant ou outra <function>sx_lock</function>). Cada operação é executada bloqueada desde o início até o final."
            ],
            "id_hash": -6630427445303154580,
            "content_hash": -6630427445303154580,
            "location": "article.translate.xml:2275",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 343,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 28,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99740/?format=api",
            "priority": 100,
            "id": 26992,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=23fbfd5e35b4686c",
            "url": "https://translate-dev.freebsd.org/api/units/26992/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.900070Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "Various syscalls implementation"
            ],
            "previous_source": "",
            "target": [
                "Implementação de várias syscalls"
            ],
            "id_hash": -8480931719248773377,
            "content_hash": -8480931719248773377,
            "location": "article.translate.xml:2285",
            "context": "",
            "note": "(itstool) path: sect2/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 344,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99741/?format=api",
            "priority": 100,
            "id": 26993,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=0a4dad8905d57eff",
            "url": "https://translate-dev.freebsd.org/api/units/26993/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.913907Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "In this section I am going to describe some smaller syscalls that are worth mentioning because their implementation is not obvious or those syscalls are interesting from other point of view."
            ],
            "previous_source": "",
            "target": [
                "Nesta seção, descreverei algumas syscalls menores que merecem destaque, pois sua implementação não é óbvia ou as syscalls são interessantes de outro ponto de vista."
            ],
            "id_hash": 6065196287884272660,
            "content_hash": 6065196287884272660,
            "location": "article.translate.xml:2287",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 345,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 31,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99742/?format=api",
            "priority": 100,
            "id": 26994,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=d42be7e3985c2414",
            "url": "https://translate-dev.freebsd.org/api/units/26994/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.923222Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "*at family of syscalls"
            ],
            "previous_source": "",
            "target": [
                "*na família de syscalls"
            ],
            "id_hash": 7281600055271721241,
            "content_hash": 7281600055271721241,
            "location": "article.translate.xml:2293",
            "context": "",
            "note": "(itstool) path: sect3/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 346,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 4,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99743/?format=api",
            "priority": 100,
            "id": 26995,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=e50d70abb2ef8919",
            "url": "https://translate-dev.freebsd.org/api/units/26995/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.933049Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "During development of <trademark class=\"registered\">Linux</trademark> 2.6.16 kernel, the *at syscalls were added. Those syscalls (<function>openat</function> for example) work exactly like their at-less counterparts with the slight exception of the <varname>dirfd</varname> parameter. This parameter changes where the given file, on which the syscall is to be performed, is. When the <varname>filename</varname> parameter is absolute <varname>dirfd</varname> is ignored but when the path to the file is relative, it comes to the play. The <varname>dirfd</varname> parameter is a directory relative to which the relative pathname is checked. The <varname>dirfd</varname> parameter is a file descriptor of some directory or <literal>AT_FDCWD</literal>. So for example the <function>openat</function> syscall can be like this:"
            ],
            "previous_source": "",
            "target": [
                "Durante o desenvolvimento do kernel 2.6.16 do <trademark class=\"registered\">Linux</trademark>, os *at syscalls foram adicionados. Essas syscalls (<function>openat</function>, por exemplo) funcionam exatamente como suas contrapartes sem-menos, com a pequena exceção do parâmetro <varname>dirfd</varname>. Este parâmetro muda onde o arquivo dado, no qual a syscall deve ser executado, está. Quando o parâmetro <varname>filename</varname> é absoluto <varname>dirfd</varname> é ignorado, mas quando o caminho para o arquivo é relativo, ele é checado. O parâmetro <varname>dirfd</varname> é um diretório relativo ao qual o nome do caminho relativo é verificado. O parâmetro <varname>dirfd</varname> é um file descriptor de algum diretório ou <literal>AT_FDCWD</literal>. Então, por exemplo, a syscall <function>openat</function> pode ser assim:"
            ],
            "id_hash": -5681989922173146544,
            "content_hash": -5681989922173146544,
            "location": "article.translate.xml:2295",
            "context": "",
            "note": "(itstool) path: sect3/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 347,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 106,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99744/?format=api",
            "priority": 100,
            "id": 26996,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=312584452f852a50",
            "url": "https://translate-dev.freebsd.org/api/units/26996/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.940727Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "file descriptor 123 = /tmp/foo/, current working directory = /tmp/\n\nopenat(123, /tmp/bah\\, flags, mode)\t/* opens /tmp/bah */\nopenat(123, bah\\, flags, mode)\t\t/* opens /tmp/foo/bah */\nopenat(AT_FDWCWD, bah\\, flags, mode)\t/* opens /tmp/bah */\nopenat(stdio, bah\\, flags, mode)\t/* returns error because stdio is not a directory */"
            ],
            "previous_source": "",
            "target": [
                "file descriptor 123 = /tmp/foo/, current working directory = /tmp/\n\nopenat(123, /tmp/bah\\, flags, mode)\t/* opens /tmp/bah */\nopenat(123, bah\\, flags, mode)\t\t/* opens /tmp/foo/bah */\nopenat(AT_FDWCWD, bah\\, flags, mode)\t/* opens /tmp/bah */\nopenat(stdio, bah\\, flags, mode)\t/* returns error because stdio is not a directory */"
            ],
            "id_hash": -7628508882524156093,
            "content_hash": -7628508882524156093,
            "location": "article.translate.xml:2311",
            "context": "",
            "note": "(itstool) path: sect3/programlisting",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 348,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 48,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99745/?format=api",
            "priority": 100,
            "id": 26997,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=16221796c33c4f43",
            "url": "https://translate-dev.freebsd.org/api/units/26997/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.953326Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "<trademark class=\"registered\">Linux</trademark> family of *at syscalls contains: <function>linux_openat</function>, <function>linux_mkdirat</function>, <function>linux_mknodat</function>, <function>linux_fchownat</function>, <function>linux_futimesat</function>, <function>linux_fstatat64</function>, <function>linux_unlinkat</function>, <function>linux_renameat</function>, <function>linux_linkat</function>, <function>linux_symlinkat</function>, <function>linux_readlinkat</function>, <function>linux_fchmodat</function> and <function>linux_faccessat</function>. All these are implemented using the modified <citerefentry><refentrytitle>namei</refentrytitle><manvolnum>9</manvolnum></citerefentry> routine and simple wrapping layer."
            ],
            "previous_source": "",
            "target": [
                "A família do <trademark class=\"registered\">Linux</trademark> de *at syscalls contém: <function>linux_openat</function>, <function>linux_mkdirat</function>, <function>linux_mknodat</function>, <function>linux_fchownat</function>, <function>linux_futimesat</function>, <function>linux_fstatat64</function>, <function>linux_unlinkat</function>, <function>linux_renameat</function>, <function>linux_linkat</function> , <function>linux_symlinkat</function>, <function>linux_readlinkat</function>, <function>linux_fchmodat</function> e <function>linux_faccessat</function>. Tudo isso é implementado usando a rotina modificada <citerefentry><refentrytitle>namei</refentrytitle><manvolnum>9</manvolnum></citerefentry> e a simples camada de quebra automática."
            ],
            "id_hash": -8174028981051945541,
            "content_hash": -8174028981051945541,
            "location": "article.translate.xml:2332",
            "context": "",
            "note": "(itstool) path: sect3/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 350,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 34,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99747/?format=api",
            "priority": 100,
            "id": 26999,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=0e9003f318a68dbb",
            "url": "https://translate-dev.freebsd.org/api/units/26999/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:41.984651Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "Implementation"
            ],
            "previous_source": "",
            "target": [
                "Implementação"
            ],
            "id_hash": 5056126522401168332,
            "content_hash": 5056126522401168332,
            "location": "article.translate.xml:2350",
            "context": "",
            "note": "(itstool) path: sect4/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 351,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99748/?format=api",
            "priority": 100,
            "id": 27000,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=c62af8489b271bcc",
            "url": "https://translate-dev.freebsd.org/api/units/27000/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.008169Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "The implementation is done by altering the <citerefentry><refentrytitle>namei</refentrytitle><manvolnum>9</manvolnum></citerefentry> routine (described above) to take additional parameter <varname>dirfd</varname> in its <literal>nameidata</literal> structure, which specifies the starting point of the pathname lookup instead of using the current working directory every time. The resolution of <varname>dirfd</varname> from file descriptor number to a vnode is done in native *at syscalls. When <varname>dirfd</varname> is <literal>AT_FDCWD</literal> the <varname>dvp</varname> entry in <literal>nameidata</literal> structure is <literal>NULL</literal> but when <varname>dirfd</varname> is a different number we obtain a file for this file descriptor, check whether this file is valid and if there is vnode attached to it then we get a vnode. Then we check this vnode for being a directory. In the actual <citerefentry><refentrytitle>namei</refentrytitle><manvolnum>9</manvolnum></citerefentry> routine we simply substitute the <varname>dvp</varname> vnode for <varname>dp</varname> variable in the <citerefentry><refentrytitle>namei</refentrytitle><manvolnum>9</manvolnum></citerefentry> function, which determines the starting point. The <citerefentry><refentrytitle>namei</refentrytitle><manvolnum>9</manvolnum></citerefentry> is not used directly but via a trace of different functions on various levels. For example the <function>openat</function> goes like this:"
            ],
            "previous_source": "",
            "target": [
                "A implementação é feita alterando a rotina <citerefentry><refentrytitle>namei</refentrytitle><manvolnum>9</manvolnum></citerefentry> (descrita acima) para obter o parâmetro adicional <varname>dirfd</varname> no sua estrutura <literal>nameidata</literal> , que especifica o ponto inicial da pesquisa do nome do caminho, em vez de usar o diretório de trabalho atual todas as vezes. A resolução de <varname>dirfd</varname> do número do file descriptor para um vnode é feita em *at syscalls nativo. Quando <varname>dirfd</varname> é <literal>AT_FDCWD</literal>, a entrada <varname>dvp</varname> na estrutura <literal>nameidata</literal> é <literal>NULL</literal>, mas <varname>dirfd</varname> é um número diferente, obtemos um arquivo para este file descriptor, verificamos se este arquivo é válido e se há vnode anexado a ele, então obtemos um vnode. Então nós verificamos este vnode por ser um diretório. Na rotina real <citerefentry><refentrytitle>namei</refentrytitle><manvolnum>9</manvolnum></citerefentry> simplesmente substituímos a variável <varname>dvp</varname> vnode pela variável <varname>dp</varname> na função <citerefentry><refentrytitle>namei</refentrytitle><manvolnum>9</manvolnum></citerefentry>, que determina o ponto de partida. O <citerefentry><refentrytitle>namei</refentrytitle><manvolnum>9</manvolnum></citerefentry> não é usado diretamente, mas através de um rastreamento de diferentes funções em vários níveis. Por exemplo, o <function>openat</function> é assim:"
            ],
            "id_hash": -4832494671521998248,
            "content_hash": -4832494671521998248,
            "location": "article.translate.xml:2352",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 352,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 156,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99749/?format=api",
            "priority": 100,
            "id": 27001,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=3cef87b32cf69a58",
            "url": "https://translate-dev.freebsd.org/api/units/27001/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.022620Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "openat() --&gt; kern_openat() --&gt; vn_open() -&gt; namei()"
            ],
            "previous_source": "",
            "target": [
                "openat() --&gt; kern_openat() --&gt; vn_open() -&gt; namei()"
            ],
            "id_hash": -1140226309914472041,
            "content_hash": -1140226309914472041,
            "location": "article.translate.xml:2376",
            "context": "",
            "note": "(itstool) path: sect4/programlisting",
            "flags": "no-wrap",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 353,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 7,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99750/?format=api",
            "priority": 100,
            "id": 27002,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=702d1a3659fe5197",
            "url": "https://translate-dev.freebsd.org/api/units/27002/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.030564Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "For this reason <function>kern_open</function> and <function>vn_open</function> must be altered to incorporate the additional <varname>dirfd</varname> parameter. No compat layer is created for those because there are not many users of this and the users can be easily converted. This general implementation enables FreeBSD to implement their own *at syscalls. This is being discussed right now."
            ],
            "previous_source": "",
            "target": [
                "Por esse motivo, <function>kern_open</function> e <function>vn_open</function> devem ser alterados para incorporar o parâmetro <varname>dirfd</varname> adicional. Nenhuma camada de compatibilidade é criada para esses, porque não há muitos usuários disso e os usuários podem ser facilmente convertidos. Esta implementação geral permite ao FreeBSD implementar suas próprias *at syscalls. Isso está sendo discutido agora."
            ],
            "id_hash": 2829532767042601423,
            "content_hash": 2829532767042601423,
            "location": "article.translate.xml:2378",
            "context": "",
            "note": "(itstool) path: sect4/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 354,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 54,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99751/?format=api",
            "priority": 100,
            "id": 27003,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=a744850f63e701cf",
            "url": "https://translate-dev.freebsd.org/api/units/27003/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.042918Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "Ioctl"
            ],
            "previous_source": "",
            "target": [
                "Ioctl"
            ],
            "id_hash": -7931515274902344740,
            "content_hash": -7931515274902344740,
            "location": "article.translate.xml:2390",
            "context": "",
            "note": "(itstool) path: sect3/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 355,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99752/?format=api",
            "priority": 100,
            "id": 27004,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=11ed98e164dc6bdc",
            "url": "https://translate-dev.freebsd.org/api/units/27004/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.058422Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "Debugging"
            ],
            "previous_source": "",
            "target": [
                "Depuração"
            ],
            "id_hash": -7171796032641481758,
            "content_hash": -7171796032641481758,
            "location": "article.translate.xml:2422",
            "context": "",
            "note": "(itstool) path: sect3/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 357,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/92659/?format=api",
            "priority": 100,
            "id": 27006,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=1c78a98190d943e2",
            "url": "https://translate-dev.freebsd.org/api/units/27006/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.072138Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "Every syscall should be debuggable. For this purpose we introduce a small infrastructure. We have the ldebug facility, which tells whether a given syscall should be debugged (settable via a sysctl). For printing we have LMSG and ARGS macros. Those are used for altering a printable string for uniform debugging messages."
            ],
            "previous_source": "",
            "target": [
                "Cada syscall deve ser debugável. Para isso, introduzimos uma pequena infra-estrutura. Nós temos o recurso ldebug, que informa se uma dada syscall deve ser depurada (configurável através de um sysctl). Para impressão, temos as macros LMSG e ARGS. Essas são usadas para alterar uma string imprimível para mensagens uniformes de depuração."
            ],
            "id_hash": 545499782934865652,
            "content_hash": 545499782934865652,
            "location": "article.translate.xml:2424",
            "context": "",
            "note": "(itstool) path: sect3/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 358,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 51,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99754/?format=api",
            "priority": 100,
            "id": 27007,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=8792012992e2a6f4",
            "url": "https://translate-dev.freebsd.org/api/units/27007/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.081303Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "Conclusion"
            ],
            "previous_source": "",
            "target": [
                "Conclusão"
            ],
            "id_hash": -438954553492005104,
            "content_hash": -438954553492005104,
            "location": "article.translate.xml:2435",
            "context": "",
            "note": "(itstool) path: sect1/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 359,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99755/?format=api",
            "priority": 100,
            "id": 27008,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=79e88528c6919f10",
            "url": "https://translate-dev.freebsd.org/api/units/27008/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.088146Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "Results"
            ],
            "previous_source": "",
            "target": [
                "Resultados"
            ],
            "id_hash": -5105057664626298816,
            "content_hash": -5105057664626298816,
            "location": "article.translate.xml:2438",
            "context": "",
            "note": "(itstool) path: sect2/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 360,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99756/?format=api",
            "priority": 100,
            "id": 27009,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=3927311a0e107040",
            "url": "https://translate-dev.freebsd.org/api/units/27009/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.095135Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "Future work"
            ],
            "previous_source": "",
            "target": [
                "Trabalho futuro"
            ],
            "id_hash": 4787331879594147589,
            "content_hash": 4787331879594147589,
            "location": "article.translate.xml:2474",
            "context": "",
            "note": "(itstool) path: sect2/title",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 364,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 2,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99759/?format=api",
            "priority": 100,
            "id": 27013,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=c27004fae91cbf05",
            "url": "https://translate-dev.freebsd.org/api/units/27013/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.155044Z"
        },
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/pt_BR/?format=api",
            "source": [
                "Future work should focus on fixing the remaining issues with futexes, implement the rest of the *at family of syscalls, fix the signal delivery and possibly implement the <function>epoll</function> and <function>inotify</function> facilities."
            ],
            "previous_source": "",
            "target": [
                "O trabalho futuro deve focar na correção dos problemas remanescentes com futexes, implementar o restante da família de syscalls, corrigir a entrega de sinal e possivelmente implementar os recursos de <function>epoll</function> e <function>inotify</function>."
            ],
            "id_hash": 8309925337762481123,
            "content_hash": 8309925337762481123,
            "location": "article.translate.xml:2476",
            "context": "",
            "note": "(itstool) path: sect2/para",
            "flags": "",
            "labels": [],
            "state": 20,
            "fuzzy": false,
            "translated": true,
            "approved": false,
            "position": 365,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": false,
            "num_words": 32,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99760/?format=api",
            "priority": 100,
            "id": 27014,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/pt_BR/?checksum=f352c9111b59c3e3",
            "url": "https://translate-dev.freebsd.org/api/units/27014/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.166967Z"
        }
    ]
}