Translation components API.

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

GET /api/translations/freebsd-doc/articles_linux-emulation/es/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/es/units/?format=api&page=8",
    "previous": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/units/?format=api&page=6",
    "results": [
        {
            "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/articles_linux-emulation/es/?format=api",
            "source": [
                "This operations associates a file descriptor with a given futex."
            ],
            "previous_source": "",
            "target": [
                "Esta operación asocia un descriptor de archivo con un futex dado."
            ],
            "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": 26576,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=5abe45e9d85a48aa",
            "url": "https://translate-dev.freebsd.org/api/units/26576/?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/es/?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": 10,
            "fuzzy": true,
            "translated": false,
            "approved": false,
            "position": 312,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99709/?format=api",
            "priority": 100,
            "id": 26577,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=c77bd17ed1db7d9b",
            "url": "https://translate-dev.freebsd.org/api/units/26577/?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/es/?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 operación toma <varname>val</varname> hilos en cola en futex en <varname>uaddr</varname>, Los despierta y toma<varname>val2</varname> siguientes hilos y los coloca en futex en <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": false,
            "num_words": 25,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99710/?format=api",
            "priority": 100,
            "id": 26578,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=d012623b8f9288f4",
            "url": "https://translate-dev.freebsd.org/api/units/26578/?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/es/?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": 10,
            "fuzzy": true,
            "translated": false,
            "approved": false,
            "position": 314,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99711/?format=api",
            "priority": 100,
            "id": 26579,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=4c587296b2e26b26",
            "url": "https://translate-dev.freebsd.org/api/units/26579/?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/es/?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": [
                "Esta operación hace lo mismo que <literal>FUTEX_REQUEUE</literal>pero comprueba que <varname>val3</varname> igual a <varname>val</varname> primero."
            ],
            "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": 26580,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=5422cdb0621e3c72",
            "url": "https://translate-dev.freebsd.org/api/units/26580/?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/es/?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": 10,
            "fuzzy": true,
            "translated": false,
            "approved": false,
            "position": 316,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99713/?format=api",
            "priority": 100,
            "id": 26581,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=d3f6a2967fc82ce8",
            "url": "https://translate-dev.freebsd.org/api/units/26581/?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/es/?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 operación realiza una operación atómica en <varname>val3</varname> (que contiene algún otro valor codificado) y<varname>uaddr</varname>. Entonces se despierta <varname>val</varname> hilos en futex en <varname>uaddr</varname> y si la operación atómica devolvió un número positivo, se despierta <varname>val2</varname> hilos en futex en<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": 26582,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=612fc993199ceeae",
            "url": "https://translate-dev.freebsd.org/api/units/26582/?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/es/?format=api",
            "source": [
                "The operations implemented in <literal>FUTEX_WAKE_OP</literal>:"
            ],
            "previous_source": "",
            "target": [
                "Las operaciones implementadas en <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": 26583,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=9fce5be37fbc763f",
            "url": "https://translate-dev.freebsd.org/api/units/26583/?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/es/?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": 26584,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=1d96f37a1d16950c",
            "url": "https://translate-dev.freebsd.org/api/units/26584/?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/es/?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": 26585,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=33cb0c23300c269b",
            "url": "https://translate-dev.freebsd.org/api/units/26585/?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/es/?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": 26586,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=8dcec1d40d9f21c5",
            "url": "https://translate-dev.freebsd.org/api/units/26586/?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/es/?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": 26587,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=62624d09a58c89b1",
            "url": "https://translate-dev.freebsd.org/api/units/26587/?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/es/?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": 26588,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=f20011afca1fbfcb",
            "url": "https://translate-dev.freebsd.org/api/units/26588/?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/es/?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": [
                "No hay <varname>val2</varname> parámetro en el prototipo futex. los <varname>val2</varname> es tomado de la <varname>struct timespec *timeout</varname> parámetro para operaciones <literal>FUTEX_REQUEUE</literal>, <literal>FUTEX_CMP_REQUEUE</literal> y <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": 26589,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=5ae35da0c6b82bb9",
            "url": "https://translate-dev.freebsd.org/api/units/26589/?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/es/?format=api",
            "source": [
                "Futex emulation in FreeBSD"
            ],
            "previous_source": "",
            "target": [
                "Emulación Futex en 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": 26590,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=fea63eaad1a5eb28",
            "url": "https://translate-dev.freebsd.org/api/units/26590/?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/es/?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": [
                "La emulación futex en FreeBSD se toma de NetBSD y nosotros la ampliamos. Se coloca en <filename>linux_futex.c</filename> and <filename>linux_futex.h</filename> archivos. la <literal>futex</literal> estructura se parece a:"
            ],
            "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": 26591,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=88233a6574bc201f",
            "url": "https://translate-dev.freebsd.org/api/units/26591/?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/es/?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": true,
            "num_words": 13,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99724/?format=api",
            "priority": 100,
            "id": 26592,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=9f0c40e980533d03",
            "url": "https://translate-dev.freebsd.org/api/units/26592/?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/es/?format=api",
            "source": [
                "And the structure <literal>waiting_proc</literal> is:"
            ],
            "previous_source": "",
            "target": [
                "Y la estructura <literal>waiting_proc</literal> es:"
            ],
            "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": 26593,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=c0b2bc4d16dd1b28",
            "url": "https://translate-dev.freebsd.org/api/units/26593/?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/es/?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": true,
            "num_words": 12,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99726/?format=api",
            "priority": 100,
            "id": 26594,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=f85c0b03022c51b9",
            "url": "https://translate-dev.freebsd.org/api/units/26594/?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/es/?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": true,
            "num_words": 3,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99727/?format=api",
            "priority": 100,
            "id": 26595,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=1feb698a24a4ebdf",
            "url": "https://translate-dev.freebsd.org/api/units/26595/?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/es/?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": [
                "Un futex se obtiene utilizando el <function>futex_get</function>función, que busca en una lista lineal de futexes y devuelve el encontrado o crea un nuevo futex. Al liberar un futex del uso, lo llamamos <function>futex_put</function> función, que disminuye un contador de referencia del futex y si el refcount llega a cero se libera."
            ],
            "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": 26596,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=59d76a9024c636ce",
            "url": "https://translate-dev.freebsd.org/api/units/26596/?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/es/?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": true,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99729/?format=api",
            "priority": 100,
            "id": 26597,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=80f9c6b014a7da9e",
            "url": "https://translate-dev.freebsd.org/api/units/26597/?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/es/?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": [
                "Cuando un futex pone en cola un hilo para dormir, crea un <literal>working_proc</literal> estructura y coloca esta estructura en la lista dentro de la estructura futex, entonces solo realiza una <citerefentry><refentrytitle>tsleep</refentrytitle><manvolnum>9</manvolnum></citerefentry> suspender el hilo. El tiempo de sueño se puede agotar. Después <citerefentry><refentrytitle>tsleep</refentrytitle><manvolnum>9</manvolnum></citerefentry> devuelve (el hilo se despertó o se agotó el tiempo de espera) el <literal>working_proc</literal> La estructura se elimina de la lista y se destruye. Todo esto se hace en el <function>futex_sleep</function>función. Si nos despertaran de <function>futex_wake</function> Nosotros tenemos <varname>wp_new_futex</varname> establecido para que podamos dormir en él. De esta manera, la puesta en cola real se realiza en esta función.."
            ],
            "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": 26598,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=c7823246e46ac5c9",
            "url": "https://translate-dev.freebsd.org/api/units/26598/?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/es/?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": true,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99731/?format=api",
            "priority": 100,
            "id": 26599,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=d123d5db2d939339",
            "url": "https://translate-dev.freebsd.org/api/units/26599/?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/es/?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": [
                "Despertar un hilo durmiendo en un futex se realiza en el <function>futex_wake</function> función. Primero en esta función imitamos el extraño <trademark class=\"registered\">Linux</trademark> comportamiento, donde despierta N subprocesos para todas las operaciones, la única excepción es que las operaciones REQUEUE se realizan en N + 1 subprocesos. Pero esto generalmente no hace ninguna diferencia ya que estamos despertando todos los hilos. A continuación, en la función en el bucle, activamos n subprocesos, después de esto, verificamos si hay un nuevo futex para poner en cola. Si es así, ponemos en cola hasta n2 subprocesos en el nuevo futex. Esto coopera con <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": 26600,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=308eb8f7f1bbeb12",
            "url": "https://translate-dev.freebsd.org/api/units/26600/?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/es/?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": true,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99733/?format=api",
            "priority": 100,
            "id": 26601,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=47560fb9f95e3c69",
            "url": "https://translate-dev.freebsd.org/api/units/26601/?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/es/?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": [
                "La <literal>FUTEX_WAKE_OP</literal> El funcionamiento es bastante complicado. Primero obtenemos dos futexes en direcciones<varname>uaddr</varname> and <varname>uaddr2</varname> luego realizamos la operación atómica usando <varname>val3</varname> and <varname>uaddr2</varname>. Then <varname>val</varname> los camareros en el primer futex se despiertan y si la condición de operación atómica se mantiene, nos despertamos <varname>val2</varname> (es decir. <varname>timeout</varname>) camarero en el 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": 26602,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=8724522d6b139ba6",
            "url": "https://translate-dev.freebsd.org/api/units/26602/?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/es/?format=api",
            "source": [
                "futex atomic operation"
            ],
            "previous_source": "",
            "target": [
                "operación 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": 26603,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=a20016b2f9df681c",
            "url": "https://translate-dev.freebsd.org/api/units/26603/?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/es/?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": [
                "La operación atómica toma dos parámetros <varname>encoded_op</varname> y <varname>uaddr</varname>. La operación codificada codifica la operación en sí, comparando valor, argumento de operación y argumento de comparación. El pseudocódigo para la operación es 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": 26604,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=2bf6c89bebcb75c1",
            "url": "https://translate-dev.freebsd.org/api/units/26604/?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/es/?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": true,
            "num_words": 8,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99737/?format=api",
            "priority": 100,
            "id": 26605,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=965b0edf27375d21",
            "url": "https://translate-dev.freebsd.org/api/units/26605/?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/es/?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": [
                "Y esto se hace de forma atómica. Primero una copia del número en <varname>uaddr</varname> se realiza y se hace la operación. El código maneja fallas de página y si no ocurre ninguna falla de página <varname>oldval</varname> se compara con <varname>cmparg</varname> argumento con 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": 26606,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=135fd29ce6c26840",
            "url": "https://translate-dev.freebsd.org/api/units/26606/?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/es/?format=api",
            "source": [
                "Futex locking"
            ],
            "previous_source": "",
            "target": [
                "Bloqueo 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": 26607,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=7714d3eeed882f88",
            "url": "https://translate-dev.freebsd.org/api/units/26607/?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/es/?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": [
                "La implementación de Futex utiliza dos listas de bloqueo que protegen<function>sx_lock</function> y cerraduras globales (ya sea gigante u otra <function>sx_lock</function>). Cada operación se realiza bloqueada desde el principio hasta el 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": 26608,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=23fbfd5e35b4686c",
            "url": "https://translate-dev.freebsd.org/api/units/26608/?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/es/?format=api",
            "source": [
                "Various syscalls implementation"
            ],
            "previous_source": "",
            "target": [
                "Implementación de varias llamadas al sistema"
            ],
            "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": 26609,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=0a4dad8905d57eff",
            "url": "https://translate-dev.freebsd.org/api/units/26609/?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/es/?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": [
                "En esta sección voy a describir algunas llamadas al sistema más pequeñas que vale la pena mencionar porque su implementación no es obvia o esas llamadas al sistema son interesantes desde otro punto 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": 26610,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=d42be7e3985c2414",
            "url": "https://translate-dev.freebsd.org/api/units/26610/?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/es/?format=api",
            "source": [
                "*at family of syscalls"
            ],
            "previous_source": "",
            "target": [
                "*en familia de llamadas al sistema"
            ],
            "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": 26611,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=e50d70abb2ef8919",
            "url": "https://translate-dev.freebsd.org/api/units/26611/?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/es/?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 el desarrollo de <trademark class=\"registered\">Linux</trademark>2.6.16 kernel, se agregaron las llamadas al sistema * at. Esas llamadas al sistema (<function>openat</function>por ejemplo) funcionan exactamente como sus contrapartes at-less con la ligera excepción de <varname>dirfd</varname> parámetro. Este parámetro cambia donde está el archivo dado, en el que se va a realizar la llamada al sistema. Cuando el <varname>filename</varname> el parámetro es absoluto <varname>dirfd</varname> se ignora pero cuando la ruta al archivo es relativa, se trata de la obra. los <varname>dirfd</varname> El parámetro es un directorio relativo al que se comprueba la ruta relativa. los <varname>dirfd</varname> parámetro es un descriptor de archivo de algún directorio o <literal>AT_FDCWD</literal>. Entonces, por ejemplo, el <function>openat</function> syscall puede ser así:"
            ],
            "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": 26612,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=312584452f852a50",
            "url": "https://translate-dev.freebsd.org/api/units/26612/?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/es/?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": true,
            "num_words": 48,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99745/?format=api",
            "priority": 100,
            "id": 26613,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=16221796c33c4f43",
            "url": "https://translate-dev.freebsd.org/api/units/26613/?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/es/?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": [
                "<trademark class=\"registered\">Linux</trademark> familia de *at syscalls contiene: <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>. Todos estos se implementan utilizando el modificado <citerefentry><refentrytitle>namei</refentrytitle><manvolnum>9</manvolnum></citerefentry> capa de envoltura rutinaria y simple."
            ],
            "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": 26615,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=0e9003f318a68dbb",
            "url": "https://translate-dev.freebsd.org/api/units/26615/?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/es/?format=api",
            "source": [
                "Implementation"
            ],
            "previous_source": "",
            "target": [
                "Implementación"
            ],
            "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": 26616,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=c62af8489b271bcc",
            "url": "https://translate-dev.freebsd.org/api/units/26616/?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/es/?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": [
                "La implementación se realiza alterando el <citerefentry><refentrytitle>namei</refentrytitle><manvolnum>9</manvolnum></citerefentry> rutina (descrita arriba) para tomar un parámetro adicional <varname>dirfd</varname> en su <literal>nameidata</literal>estructura, que especifica el punto de inicio de la búsqueda de nombre de ruta en lugar de utilizar el directorio de trabajo actual cada vez. La resolución de <varname>dirfd</varname> desde el número de descriptor de archivo hasta un vnode se realiza en nativo *en syscalls. Cuando <varname>dirfd</varname> is <literal>AT_FDCWD</literal> el <varname>dvp</varname> entrada en <literal>nameidata</literal> la estructura es <literal>NULL</literal> pero cuando <varname>dirfd</varname> es un número diferente, obtenemos un archivo para este descriptor de archivo, verificamos si este archivo es válido y si hay un vnode adjunto, obtenemos un vnode. Luego verificamos que este vnode sea un directorio. En el actual <citerefentry><refentrytitle>namei</refentrytitle><manvolnum>9</manvolnum></citerefentry> rutina simplemente sustituimos el <varname>dvp</varname> vnode para <varname>dp</varname> variable en el <citerefentry><refentrytitle>namei</refentrytitle><manvolnum>9</manvolnum></citerefentry> función, que determina el punto de partida. los <citerefentry><refentrytitle>namei</refentrytitle><manvolnum>9</manvolnum></citerefentry> no se utiliza directamente, sino a través de un rastro de diferentes funciones en varios niveles. Por ejemplo el <function>openat</function> va así:"
            ],
            "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": 26617,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=3cef87b32cf69a58",
            "url": "https://translate-dev.freebsd.org/api/units/26617/?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/es/?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": true,
            "num_words": 7,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99750/?format=api",
            "priority": 100,
            "id": 26618,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=702d1a3659fe5197",
            "url": "https://translate-dev.freebsd.org/api/units/26618/?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/es/?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 esta razón <function>kern_open</function> y <function>vn_open</function> debe modificarse para incorporar el adicional <varname>dirfd</varname> parámetro. No se crea una capa de compatibilidad para aquellos porque no hay muchos usuarios de esta y los usuarios se pueden convertir fácilmente. Esta implementación general permite a FreeBSD implementar su propio *en llamadas al sistema. Esto se está discutiendo ahora mismo."
            ],
            "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": 26619,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=a744850f63e701cf",
            "url": "https://translate-dev.freebsd.org/api/units/26619/?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/es/?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": 10,
            "fuzzy": true,
            "translated": false,
            "approved": false,
            "position": 355,
            "has_suggestion": false,
            "has_comment": false,
            "has_failing_check": true,
            "num_words": 1,
            "source_unit": "https://translate-dev.freebsd.org/api/units/99752/?format=api",
            "priority": 100,
            "id": 26620,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=11ed98e164dc6bdc",
            "url": "https://translate-dev.freebsd.org/api/units/26620/?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/es/?format=api",
            "source": [
                "Debugging"
            ],
            "previous_source": "",
            "target": [
                "Depuración"
            ],
            "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": 26622,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=1c78a98190d943e2",
            "url": "https://translate-dev.freebsd.org/api/units/26622/?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/es/?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 llamada al sistema debería ser depurable. Para ello introducimos una pequeña infraestructura. Tenemos la función ldebug, que indica si una llamada al sistema determinada debe depurarse (configurable mediante un sysctl). Para imprimir tenemos macros LMSG y ARGS. Se utilizan para alterar una cadena imprimible para mensajes de depuración uniformes."
            ],
            "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": 26623,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=8792012992e2a6f4",
            "url": "https://translate-dev.freebsd.org/api/units/26623/?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/es/?format=api",
            "source": [
                "Conclusion"
            ],
            "previous_source": "",
            "target": [
                "Conclusión"
            ],
            "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": 26624,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=79e88528c6919f10",
            "url": "https://translate-dev.freebsd.org/api/units/26624/?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/es/?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": 26625,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=3927311a0e107040",
            "url": "https://translate-dev.freebsd.org/api/units/26625/?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/es/?format=api",
            "source": [
                "Future work"
            ],
            "previous_source": "",
            "target": [
                "Trabajo 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": 26629,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=c27004fae91cbf05",
            "url": "https://translate-dev.freebsd.org/api/units/26629/?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/es/?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": [
                "El trabajo futuro debe centrarse en solucionar los problemas restantes con futexes, implementar el resto de la familia de llamadas al sistema * at, arreglar la entrega de señal y posiblemente implementar el <function>epoll</function> y <function>inotify</function> instalaciones."
            ],
            "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": 26630,
            "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/articles_linux-emulation/es/?checksum=f352c9111b59c3e3",
            "url": "https://translate-dev.freebsd.org/api/units/26630/?format=api",
            "explanation": "",
            "extra_flags": "",
            "pending": false,
            "timestamp": "2019-10-20T12:10:42.166967Z"
        }
    ]
}