Units
Translation components API.
See the Weblate's Web API documentation for detailed description of the API.
GET /api/translations/freebsd-doc/boooks_developers-handbook/es_CL/units/?format=api&page=44
https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/units/?format=api&page=45", "previous": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/units/?format=api&page=43", "results": [ { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "We are using other constants: We multiply the pinhole diameter by <constant>1000</constant> to convert it from millimeters to microns. We compare numbers to <constant>10000</constant> when we are rounding them off to four significant digits. So, we keep both, <constant>1000</constant> and <constant>10000</constant>, on the stack. And, of course, we reuse the <constant>0.1</constant> when rounding off numbers to four digits." ], "previous_source": "", "target": [ "" ], "id_hash": 1888699545286075948, "content_hash": 1888699545286075948, "location": "book.translate.xml:13726", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2162, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 58, "source_unit": "https://translate-dev.freebsd.org/api/units/107691/?format=api", "priority": 100, "id": 225363, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=9a36023acc37e62c", "url": "https://translate-dev.freebsd.org/api/units/225363/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.804009Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "Last but not least, we keep <constant>-5</constant> on the stack. We need it to scale the square of the f–number, instead of dividing it by <constant>32</constant>. It is not by coincidence we load this constant last. That makes it the top of the stack when only the constants are on it. So, when the square of the f–number is being scaled, the <constant>-5</constant> is at <varname role=\"register\">st(1)</varname>, precisely where <function role=\"opcode\">fscale</function> expects it to be." ], "previous_source": "", "target": [ "" ], "id_hash": 1749766509883660553, "content_hash": 1749766509883660553, "location": "book.translate.xml:13736", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2163, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 75, "source_unit": "https://translate-dev.freebsd.org/api/units/107692/?format=api", "priority": 100, "id": 225364, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=98486b5ebd7d9909", "url": "https://translate-dev.freebsd.org/api/units/225364/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.811652Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "It is common to create certain constants from scratch instead of loading them from the memory. That is what we are doing with <constant>-5</constant>:" ], "previous_source": "", "target": [ "" ], "id_hash": 5109115538294521607, "content_hash": 5109115538294521607, "location": "book.translate.xml:13747", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2164, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 24, "source_unit": "https://translate-dev.freebsd.org/api/units/107693/?format=api", "priority": 100, "id": 225365, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=c6e7398348793f07", "url": "https://translate-dev.freebsd.org/api/units/225365/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.819473Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "\tfld1\t\t\t; TOS = 1\n\tfadd\tst0, st0\t; TOS = 2\n\tfadd\tst0, st0\t; TOS = 4\n\tfld1\t\t\t; TOS = 1\n\tfaddp\tst1, st0\t; TOS = 5\n\tfchs\t\t\t; TOS = -5" ], "previous_source": "", "target": [ "" ], "id_hash": -1868010080821691878, "content_hash": -1868010080821691878, "location": "book.translate.xml:13751", "context": "", "note": "(itstool) path: sect2/programlisting", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2165, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 36, "source_unit": "https://translate-dev.freebsd.org/api/units/92253/?format=api", "priority": 100, "id": 225366, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=66137eba87c63a1a", "url": "https://translate-dev.freebsd.org/api/units/225366/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.826964Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "We can generalize all these optimizations into one rule: <emphasis>Keep repeat values on the stack!</emphasis>" ], "previous_source": "", "target": [ "" ], "id_hash": -3775556738510070225, "content_hash": -3775556738510070225, "location": "book.translate.xml:13758", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2166, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 15, "source_unit": "https://translate-dev.freebsd.org/api/units/107694/?format=api", "priority": 100, "id": 225367, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=4b9a87266bc65e2f", "url": "https://translate-dev.freebsd.org/api/units/225367/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.835937Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "<emphasis><trademark class=\"registered\">PostScript</trademark></emphasis> is a stack–oriented programming language. There are many more books available about <trademark class=\"registered\">PostScript</trademark> than about the <acronym>FPU</acronym> assembly language: Mastering <trademark class=\"registered\">PostScript</trademark> will help you master the <acronym>FPU</acronym>." ], "previous_source": "", "target": [ "" ], "id_hash": 2432770344906227768, "content_hash": 2432770344906227768, "location": "book.translate.xml:13762", "context": "", "note": "(itstool) path: tip/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2167, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 31, "source_unit": "https://translate-dev.freebsd.org/api/units/107695/?format=api", "priority": 100, "id": 225368, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=a1c2efbd443d8038", "url": "https://translate-dev.freebsd.org/api/units/225368/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.843398Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "<application>pinhole</application>—The Code" ], "previous_source": "", "target": [ "" ], "id_hash": -1531671275355463432, "content_hash": -1531671275355463432, "location": "book.translate.xml:13772", "context": "", "note": "(itstool) path: sect2/title", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2168, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/107696/?format=api", "priority": 100, "id": 225369, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=6abe691717c4a0f8", "url": "https://translate-dev.freebsd.org/api/units/225369/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.850544Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ ";;;;;;; pinhole.asm ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n;\n; Find various parameters of a pinhole camera construction and use\n;\n; Started:\t 9-Jun-2001\n; Updated:\t10-Jun-2001\n;\n; Copyright (c) 2001 G. Adam Stanislav\n; All rights reserved.\n;\n;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n\n%include\t'system.inc'\n\n%define\tBUFSIZE\t2048\n\nsection\t.data\nalign 4\nten\tdd\t10\nthousand\tdd\t1000\ntthou\tdd\t10000\nfd.in\tdd\tstdin\nfd.out\tdd\tstdout\nenvar\tdb\t'PINHOLE='\t; Exactly 8 bytes, or 2 dwords long\npinhole\tdb\t'04,', \t\t; Bender's constant (0.04)\nconnors\tdb\t'037', 0Ah\t; Connors' constant\nusg\tdb\t'Usage: pinhole [-b] [-c] [-e] [-p <value>] [-o <outfile>] [-i <infile>]', 0Ah\nusglen\tequ\t$-usg\niemsg\tdb\t\"pinhole: Can't open input file\", 0Ah\niemlen\tequ\t$-iemsg\noemsg\tdb\t\"pinhole: Can't create output file\", 0Ah\noemlen\tequ\t$-oemsg\npinmsg\tdb\t\"pinhole: The PINHOLE constant must not be 0\", 0Ah\npinlen\tequ\t$-pinmsg\ntoobig\tdb\t\"pinhole: The PINHOLE constant may not exceed 18 decimal places\", 0Ah\nbiglen\tequ\t$-toobig\nhuhmsg\tdb\t9, '???'\nsepar\tdb\t9, '???'\nsep2\tdb\t9, '???'\nsep3\tdb\t9, '???'\nsep4\tdb\t9, '???', 0Ah\nhuhlen\tequ\t$-huhmsg\nheader\tdb\t'focal length in millimeters,pinhole diameter in microns,'\n\tdb\t'F-number,normalized F-number,F-5.6 multiplier,stops '\n\tdb\t'from F-5.6', 0Ah\nheadlen\tequ\t$-header\n\nsection .bss\nibuffer\tresb\tBUFSIZE\nobuffer\tresb\tBUFSIZE\ndbuffer\tresb\t20\t\t; decimal input buffer\nbbuffer\tresb\t10\t\t; BCD buffer\n\nsection\t.text\nalign 4\nhuh:\n\tcall\twrite\n\tpush\tdword huhlen\n\tpush\tdword huhmsg\n\tpush\tdword [fd.out]\n\tsys.write\n\tadd\tesp, byte 12\n\tret\n\nalign 4\nperr:\n\tpush\tdword pinlen\n\tpush\tdword pinmsg\n\tpush\tdword stderr\n\tsys.write\n\tpush\tdword 4\t\t; return failure\n\tsys.exit\n\nalign 4\nconsttoobig:\n\tpush\tdword biglen\n\tpush\tdword toobig\n\tpush\tdword stderr\n\tsys.write\n\tpush\tdword 5\t\t; return failure\n\tsys.exit\n\nalign 4\nierr:\n\tpush\tdword iemlen\n\tpush\tdword iemsg\n\tpush\tdword stderr\n\tsys.write\n\tpush\tdword 1\t\t; return failure\n\tsys.exit\n\nalign 4\noerr:\n\tpush\tdword oemlen\n\tpush\tdword oemsg\n\tpush\tdword stderr\n\tsys.write\n\tpush\tdword 2\n\tsys.exit\n\nalign 4\nusage:\n\tpush\tdword usglen\n\tpush\tdword usg\n\tpush\tdword stderr\n\tsys.write\n\tpush\tdword 3\n\tsys.exit\n\nalign 4\nglobal\t_start\n_start:\n\tadd\tesp, byte 8\t; discard argc and argv[0]\n\tsub\tesi, esi\n\n.arg:\n\tpop\tecx\n\tor\tecx, ecx\n\tje\tnear .getenv\t\t; no more arguments\n\n\t; ECX contains the pointer to an argument\n\tcmp\tbyte [ecx], '-'\n\tjne\tusage\n\n\tinc\tecx\n\tmov\tax, [ecx]\n\tinc\tecx\n\n.o:\n\tcmp\tal, 'o'\n\tjne\t.i\n\n\t; Make sure we are not asked for the output file twice\n\tcmp\tdword [fd.out], stdout\n\tjne\tusage\n\n\t; Find the path to output file - it is either at [ECX+1],\n\t; i.e., -ofile --\n\t; or in the next argument,\n\t; i.e., -o file\n\n\tor\tah, ah\n\tjne\t.openoutput\n\tpop\tecx\n\tjecxz\tusage\n\n.openoutput:\n\tpush\tdword 420\t; file mode (644 octal)\n\tpush\tdword 0200h | 0400h | 01h\n\t; O_CREAT | O_TRUNC | O_WRONLY\n\tpush\tecx\n\tsys.open\n\tjc\tnear oerr\n\n\tadd\tesp, byte 12\n\tmov\t[fd.out], eax\n\tjmp\tshort .arg\n\n.i:\n\tcmp\tal, 'i'\n\tjne\t.p\n\n\t; Make sure we are not asked twice\n\tcmp\tdword [fd.in], stdin\n\tjne\tnear usage\n\n\t; Find the path to the input file\n\tor\tah, ah\n\tjne\t.openinput\n\tpop\tecx\n\tor\tecx, ecx\n\tje near usage\n\n.openinput:\n\tpush\tdword 0\t\t; O_RDONLY\n\tpush\tecx\n\tsys.open\n\tjc\tnear ierr\t\t; open failed\n\n\tadd\tesp, byte 8\n\tmov\t[fd.in], eax\n\tjmp\t.arg\n\n.p:\n\tcmp\tal, 'p'\n\tjne\t.c\n\tor\tah, ah\n\tjne\t.pcheck\n\n\tpop\tecx\n\tor\tecx, ecx\n\tje\tnear usage\n\n\tmov\tah, [ecx]\n\n.pcheck:\n\tcmp\tah, '0'\n\tjl\tnear usage\n\tcmp\tah, '9'\n\tja\tnear usage\n\tmov\tesi, ecx\n\tjmp\t.arg\n\n.c:\n\tcmp\tal, 'c'\n\tjne\t.b\n\tor\tah, ah\n\tjne\tnear usage\n\tmov\tesi, connors\n\tjmp\t.arg\n\n.b:\n\tcmp\tal, 'b'\n\tjne\t.e\n\tor\tah, ah\n\tjne\tnear usage\n\tmov\tesi, pinhole\n\tjmp\t.arg\n\n.e:\n\tcmp\tal, 'e'\n\tjne\tnear usage\n\tor\tah, ah\n\tjne\tnear usage\n\tmov\tal, ','\n\tmov\t[huhmsg], al\n\tmov\t[separ], al\n\tmov\t[sep2], al\n\tmov\t[sep3], al\n\tmov\t[sep4], al\n\tjmp\t.arg\n\nalign 4\n.getenv:\n\t; If ESI = 0, we did not have a -p argument,\n\t; and need to check the environment for \"PINHOLE=\"\n\tor\tesi, esi\n\tjne\t.init\n\n\tsub\tecx, ecx\n\n.nextenv:\n\tpop\tesi\n\tor\tesi, esi\n\tje\t.default\t; no PINHOLE envar found\n\n\t; check if this envar starts with 'PINHOLE='\n\tmov\tedi, envar\n\tmov\tcl, 2\t\t; 'PINHOLE=' is 2 dwords long\nrep\tcmpsd\n\tjne\t.nextenv\n\n\t; Check if it is followed by a digit\n\tmov\tal, [esi]\n\tcmp\tal, '0'\n\tjl\t.default\n\tcmp\tal, '9'\n\tjbe\t.init\n\t; fall through\n\nalign 4\n.default:\n\t; We got here because we had no -p argument,\n\t; and did not find the PINHOLE envar.\n\tmov\tesi, pinhole\n\t; fall through\n\nalign 4\n.init:\n\tsub\teax, eax\n\tsub\tebx, ebx\n\tsub\tecx, ecx\n\tsub\tedx, edx\n\tmov\tedi, dbuffer+1\n\tmov\tbyte [dbuffer], '0'\n\n\t; Convert the pinhole constant to real\n.constloop:\n\tlodsb\n\tcmp\tal, '9'\n\tja\t.setconst\n\tcmp\tal, '0'\n\tje\t.processconst\n\tjb\t.setconst\n\n\tinc\tdl\n\n.processconst:\n\tinc\tcl\n\tcmp\tcl, 18\n\tja\tnear consttoobig\n\tstosb\n\tjmp\tshort .constloop\n\nalign 4\n.setconst:\n\tor\tdl, dl\n\tje\tnear perr\n\n\tfinit\n\tfild\tdword [tthou]\n\n\tfld1\n\tfild\tdword [ten]\n\tfdivp\tst1, st0\n\n\tfild\tdword [thousand]\n\tmov\tedi, obuffer\n\n\tmov\tebp, ecx\n\tcall\tbcdload\n\n.constdiv:\n\tfmul\tst0, st2\n\tloop\t.constdiv\n\n\tfld1\n\tfadd\tst0, st0\n\tfadd\tst0, st0\n\tfld1\n\tfaddp\tst1, st0\n\tfchs\n\n\t; If we are creating a CSV file,\n\t; print header\n\tcmp\tbyte [separ], ','\n\tjne\t.bigloop\n\n\tpush\tdword headlen\n\tpush\tdword header\n\tpush\tdword [fd.out]\n\tsys.write\n\n.bigloop:\n\tcall\tgetchar\n\tjc\tnear done\n\n\t; Skip to the end of the line if you got '#'\n\tcmp\tal, '#'\n\tjne\t.num\n\tcall\tskiptoeol\n\tjmp\tshort .bigloop\n\n.num:\n\t; See if you got a number\n\tcmp\tal, '0'\n\tjl\t.bigloop\n\tcmp\tal, '9'\n\tja\t.bigloop\n\n\t; Yes, we have a number\n\tsub\tebp, ebp\n\tsub\tedx, edx\n\n.number:\n\tcmp\tal, '0'\n\tje\t.number0\n\tmov\tdl, 1\n\n.number0:\n\tor\tdl, dl\t\t; Skip leading 0's\n\tje\t.nextnumber\n\tpush\teax\n\tcall\tputchar\n\tpop\teax\n\tinc\tebp\n\tcmp\tebp, 19\n\tjae\t.nextnumber\n\tmov\t[dbuffer+ebp], al\n\n.nextnumber:\n\tcall\tgetchar\n\tjc\t.work\n\tcmp\tal, '#'\n\tje\t.ungetc\n\tcmp\tal, '0'\n\tjl\t.work\n\tcmp\tal, '9'\n\tja\t.work\n\tjmp\tshort .number\n\n.ungetc:\n\tdec\tesi\n\tinc\tebx\n\n.work:\n\t; Now, do all the work\n\tor\tdl, dl\n\tje\tnear .work0\n\n\tcmp\tebp, 19\n\tjae\tnear .toobig\n\n\tcall\tbcdload\n\n\t; Calculate pinhole diameter\n\n\tfld\tst0\t; save it\n\tfsqrt\n\tfmul\tst0, st3\n\tfld\tst0\n\tfmul\tst5\n\tsub\tebp, ebp\n\n\t; Round off to 4 significant digits\n.diameter:\n\tfcom\tst0, st7\n\tfstsw\tax\n\tsahf\n\tjb\t.printdiameter\n\tfmul\tst0, st6\n\tinc\tebp\n\tjmp\tshort .diameter\n\n.printdiameter:\n\tcall\tprintnumber\t; pinhole diameter\n\n\t; Calculate F-number\n\n\tfdivp\tst1, st0\n\tfld\tst0\n\n\tsub\tebp, ebp\n\n.fnumber:\n\tfcom\tst0, st6\n\tfstsw\tax\n\tsahf\n\tjb\t.printfnumber\n\tfmul\tst0, st5\n\tinc\tebp\n\tjmp\tshort .fnumber\n\n.printfnumber:\n\tcall\tprintnumber\t; F number\n\n\t; Calculate normalized F-number\n\tfmul\tst0, st0\n\tfld1\n\tfld\tst1\n\tfyl2x\n\tfrndint\n\tfld1\n\tfscale\n\tfsqrt\n\tfstp\tst1\n\n\tsub\tebp, ebp\n\tcall\tprintnumber\n\n\t; Calculate time multiplier from F-5.6\n\n\tfscale\n\tfld\tst0\n\n\t; Round off to 4 significant digits\n.fmul:\n\tfcom\tst0, st6\n\tfstsw\tax\n\tsahf\n\n\tjb\t.printfmul\n\tinc\tebp\n\tfmul\tst0, st5\n\tjmp\tshort .fmul\n\n.printfmul:\n\tcall\tprintnumber\t; F multiplier\n\n\t; Calculate F-stops from 5.6\n\n\tfld1\n\tfxch\tst1\n\tfyl2x\n\n\tsub\tebp, ebp\n\tcall\tprintnumber\n\n\tmov\tal, 0Ah\n\tcall\tputchar\n\tjmp\t.bigloop\n\n.work0:\n\tmov\tal, '0'\n\tcall\tputchar\n\nalign 4\n.toobig:\n\tcall\thuh\n\tjmp\t.bigloop\n\nalign 4\ndone:\n\tcall\twrite\t\t; flush output buffer\n\n\t; close files\n\tpush\tdword [fd.in]\n\tsys.close\n\n\tpush\tdword [fd.out]\n\tsys.close\n\n\tfinit\n\n\t; return success\n\tpush\tdword 0\n\tsys.exit\n\nalign 4\nskiptoeol:\n\t; Keep reading until you come to cr, lf, or eof\n\tcall\tgetchar\n\tjc\tdone\n\tcmp\tal, 0Ah\n\tjne\t.cr\n\tret\n\n.cr:\n\tcmp\tal, 0Dh\n\tjne\tskiptoeol\n\tret\n\nalign 4\ngetchar:\n\tor\tebx, ebx\n\tjne\t.fetch\n\n\tcall\tread\n\n.fetch:\n\tlodsb\n\tdec\tebx\n\tclc\n\tret\n\nread:\n\tjecxz\t.read\n\tcall\twrite\n\n.read:\n\tpush\tdword BUFSIZE\n\tmov\tesi, ibuffer\n\tpush\tesi\n\tpush\tdword [fd.in]\n\tsys.read\n\tadd\tesp, byte 12\n\tmov\tebx, eax\n\tor\teax, eax\n\tje\t.empty\n\tsub\teax, eax\n\tret\n\nalign 4\n.empty:\n\tadd\tesp, byte 4\n\tstc\n\tret\n\nalign 4\nputchar:\n\tstosb\n\tinc\tecx\n\tcmp\tecx, BUFSIZE\n\tje\twrite\n\tret\n\nalign 4\nwrite:\n\tjecxz\t.ret\t; nothing to write\n\tsub\tedi, ecx\t; start of buffer\n\tpush\tecx\n\tpush\tedi\n\tpush\tdword [fd.out]\n\tsys.write\n\tadd\tesp, byte 12\n\tsub\teax, eax\n\tsub\tecx, ecx\t; buffer is empty now\n.ret:\n\tret\n\nalign 4\nbcdload:\n\t; EBP contains the number of chars in dbuffer\n\tpush\tecx\n\tpush\tesi\n\tpush\tedi\n\n\tlea\tecx, [ebp+1]\n\tlea\tesi, [dbuffer+ebp-1]\n\tshr\tecx, 1\n\n\tstd\n\n\tmov\tedi, bbuffer\n\tsub\teax, eax\n\tmov\t[edi], eax\n\tmov\t[edi+4], eax\n\tmov\t[edi+2], ax\n\n.loop:\n\tlodsw\n\tsub\tax, 3030h\n\tshl\tal, 4\n\tor\tal, ah\n\tmov\t[edi], al\n\tinc\tedi\n\tloop\t.loop\n\n\tfbld\t[bbuffer]\n\n\tcld\n\tpop\tedi\n\tpop\tesi\n\tpop\tecx\n\tsub\teax, eax\n\tret\n\nalign 4\nprintnumber:\n\tpush\tebp\n\tmov\tal, [separ]\n\tcall\tputchar\n\n\t; Print the integer at the TOS\n\tmov\tebp, bbuffer+9\n\tfbstp\t[bbuffer]\n\n\t; Check the sign\n\tmov\tal, [ebp]\n\tdec\tebp\n\tor\tal, al\n\tjns\t.leading\n\n\t; We got a negative number (should never happen)\n\tmov\tal, '-'\n\tcall\tputchar\n\n.leading:\n\t; Skip leading zeros\n\tmov\tal, [ebp]\n\tdec\tebp\n\tor\tal, al\n\tjne\t.first\n\tcmp\tebp, bbuffer\n\tjae\t.leading\n\n\t; We are here because the result was 0.\n\t; Print '0' and return\n\tmov\tal, '0'\n\tjmp\tputchar\n\n.first:\n\t; We have found the first non-zero.\n\t; But it is still packed\n\ttest\tal, 0F0h\n\tjz\t.second\n\tpush\teax\n\tshr\tal, 4\n\tadd\tal, '0'\n\tcall\tputchar\n\tpop\teax\n\tand\tal, 0Fh\n\n.second:\n\tadd\tal, '0'\n\tcall\tputchar\n\n.next:\n\tcmp\tebp, bbuffer\n\tjb\t.done\n\n\tmov\tal, [ebp]\n\tpush\teax\n\tshr\tal, 4\n\tadd\tal, '0'\n\tcall\tputchar\n\tpop\teax\n\tand\tal, 0Fh\n\tadd\tal, '0'\n\tcall\tputchar\n\n\tdec\tebp\n\tjmp\tshort .next\n\n.done:\n\tpop\tebp\n\tor\tebp, ebp\n\tje\t.ret\n\n.zeros:\n\tmov\tal, '0'\n\tcall\tputchar\n\tdec\tebp\n\tjne\t.zeros\n\n.ret:\n\tret" ], "previous_source": "", "target": [ "" ], "id_hash": -5460198032763687273, "content_hash": -5460198032763687273, "location": "book.translate.xml:13774", "context": "", "note": "(itstool) path: sect2/programlisting", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2169, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 1662, "source_unit": "https://translate-dev.freebsd.org/api/units/92254/?format=api", "priority": 100, "id": 225370, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=34397ad18dd56e97", "url": "https://translate-dev.freebsd.org/api/units/225370/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.869569Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "The code follows the same format as all the other filters we have seen before, with one subtle exception:" ], "previous_source": "", "target": [ "" ], "id_hash": 6776174772122067920, "content_hash": 6776174772122067920, "location": "book.translate.xml:14472", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2170, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 19, "source_unit": "https://translate-dev.freebsd.org/api/units/107697/?format=api", "priority": 100, "id": 225371, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=de09cf0db44ca3d0", "url": "https://translate-dev.freebsd.org/api/units/225371/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.878694Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "We are no longer assuming that the end of input implies the end of things to do, something we took for granted in the <emphasis>character–oriented</emphasis> filters." ], "previous_source": "", "target": [ "" ], "id_hash": -4279636395901132782, "content_hash": -4279636395901132782, "location": "book.translate.xml:14476", "context": "", "note": "(itstool) path: blockquote/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2171, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 26, "source_unit": "https://translate-dev.freebsd.org/api/units/107698/?format=api", "priority": 100, "id": 225372, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=449bad5f567ae012", "url": "https://translate-dev.freebsd.org/api/units/225372/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.885492Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "This filter does not process characters. It processes a <emphasis>language</emphasis> (albeit a very simple one, consisting only of numbers)." ], "previous_source": "", "target": [ "" ], "id_hash": -8173714564093884929, "content_hash": -8173714564093884929, "location": "book.translate.xml:14481", "context": "", "note": "(itstool) path: blockquote/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2172, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 19, "source_unit": "https://translate-dev.freebsd.org/api/units/107699/?format=api", "priority": 100, "id": 225373, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=0e9121e8ffbf45ff", "url": "https://translate-dev.freebsd.org/api/units/225373/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.892863Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "When we have no more input, it can mean one of two things:" ], "previous_source": "", "target": [ "" ], "id_hash": -5339035781248277956, "content_hash": -5339035781248277956, "location": "book.translate.xml:14485", "context": "", "note": "(itstool) path: blockquote/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2173, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 13, "source_unit": "https://translate-dev.freebsd.org/api/units/107700/?format=api", "priority": 100, "id": 225374, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=35e7ef3e8f98a23c", "url": "https://translate-dev.freebsd.org/api/units/225374/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.899968Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "We are done and can quit. This is the same as before." ], "previous_source": "", "target": [ "" ], "id_hash": -8946829018730070756, "content_hash": -8946829018730070756, "location": "book.translate.xml:14490", "context": "", "note": "(itstool) path: listitem/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2174, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 12, "source_unit": "https://translate-dev.freebsd.org/api/units/107701/?format=api", "priority": 100, "id": 225375, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=03d67a68e86ffd1c", "url": "https://translate-dev.freebsd.org/api/units/225375/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.907860Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "The last character we have read was a digit. We have stored it at the end of our <acronym>ASCII</acronym>–to–float conversion buffer. We now need to convert the contents of that buffer into a number and write the last line of our output." ], "previous_source": "", "target": [ "" ], "id_hash": -5071210316204882378, "content_hash": -5071210316204882378, "location": "book.translate.xml:14495", "context": "", "note": "(itstool) path: listitem/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2175, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 42, "source_unit": "https://translate-dev.freebsd.org/api/units/107702/?format=api", "priority": 100, "id": 225376, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=399f7115f94fc636", "url": "https://translate-dev.freebsd.org/api/units/225376/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.915446Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "For that reason, we have modified our <function>getchar</function> and our <function>read</function> routines to return with the <varname role=\"register\">carry flag</varname> <emphasis>clear</emphasis> whenever we are fetching another character from the input, or the <varname role=\"register\">carry flag</varname> <emphasis>set</emphasis> whenever there is no more input." ], "previous_source": "", "target": [ "" ], "id_hash": 2712746872431766467, "content_hash": 2712746872431766467, "location": "book.translate.xml:14504", "context": "", "note": "(itstool) path: blockquote/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2176, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 41, "source_unit": "https://translate-dev.freebsd.org/api/units/107703/?format=api", "priority": 100, "id": 225377, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=a5a59ce860d8ebc3", "url": "https://translate-dev.freebsd.org/api/units/225377/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.922386Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "Of course, we are still using assembly language magic to do that! Take a good look at <function>getchar</function>. It <emphasis>always</emphasis> returns with the <varname role=\"register\">carry flag</varname> <emphasis>clear</emphasis>." ], "previous_source": "", "target": [ "" ], "id_hash": -8099004853618085549, "content_hash": -8099004853618085549, "location": "book.translate.xml:14513", "context": "", "note": "(itstool) path: blockquote/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2177, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 27, "source_unit": "https://translate-dev.freebsd.org/api/units/107704/?format=api", "priority": 100, "id": 225378, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=0f9a8dfef9edf153", "url": "https://translate-dev.freebsd.org/api/units/225378/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.929054Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "Yet, our main code relies on the <varname role=\"register\">carry flag</varname> to tell it when to quit—and it works." ], "previous_source": "", "target": [ "" ], "id_hash": -2328456601720068918, "content_hash": -2328456601720068918, "location": "book.translate.xml:14518", "context": "", "note": "(itstool) path: blockquote/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2178, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 18, "source_unit": "https://translate-dev.freebsd.org/api/units/107705/?format=api", "priority": 100, "id": 225379, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=5fafa90eb38fe4ca", "url": "https://translate-dev.freebsd.org/api/units/225379/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.936045Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "The magic is in <function>read</function>. Whenever it receives more input from the system, it just returns to <function>getchar</function>, which fetches a character from the input buffer, <emphasis>clears</emphasis> the <varname role=\"register\">carry flag</varname> and returns." ], "previous_source": "", "target": [ "" ], "id_hash": 7824799178817427977, "content_hash": 7824799178817427977, "location": "book.translate.xml:14521", "context": "", "note": "(itstool) path: blockquote/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2179, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 33, "source_unit": "https://translate-dev.freebsd.org/api/units/107706/?format=api", "priority": 100, "id": 225380, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=ec974565442e5a09", "url": "https://translate-dev.freebsd.org/api/units/225380/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.945086Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "But when <function>read</function> receives no more input from the system, it does <emphasis>not</emphasis> return to <function>getchar</function> at all. Instead, the <function role=\"opcode\">add esp, byte 4</function> op code adds <constant>4</constant> to <varname role=\"register\">ESP</varname>, <emphasis>sets</emphasis> the <varname role=\"register\">carry flag</varname>, and returns." ], "previous_source": "", "target": [ "" ], "id_hash": 4806996759232745952, "content_hash": 4806996759232745952, "location": "book.translate.xml:14526", "context": "", "note": "(itstool) path: blockquote/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2180, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 39, "source_unit": "https://translate-dev.freebsd.org/api/units/107707/?format=api", "priority": 100, "id": 225381, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=c2b5e2157e8591e0", "url": "https://translate-dev.freebsd.org/api/units/225381/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.951819Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "So, where does it return to? Whenever a program uses the <function role=\"opcode\">call</function> op code, the microprocessor <function role=\"opcode\">push</function>es the return address, i.e., it stores it on the top of the stack (not the <acronym>FPU</acronym> stack, the system stack, which is in the memory). When a program uses the <function role=\"opcode\">ret</function> op code, the microprocessor <function role=\"opcode\">pop</function>s the return value from the stack, and jumps to the address that was stored there." ], "previous_source": "", "target": [ "" ], "id_hash": 4473962686942550852, "content_hash": 4473962686942550852, "location": "book.translate.xml:14534", "context": "", "note": "(itstool) path: blockquote/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2181, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 72, "source_unit": "https://translate-dev.freebsd.org/api/units/107708/?format=api", "priority": 100, "id": 225382, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=be16b55c15901b44", "url": "https://translate-dev.freebsd.org/api/units/225382/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.959030Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "But since we added <constant>4</constant> to <varname role=\"register\">ESP</varname> (which is the stack pointer register), we have effectively given the microprocessor a minor case of <emphasis>amnesia</emphasis>: It no longer remembers it was <function>getchar</function> that <function role=\"opcode\">call</function>ed <function>read</function>." ], "previous_source": "", "target": [ "" ], "id_hash": 4800226778474507223, "content_hash": 4800226778474507223, "location": "book.translate.xml:14544", "context": "", "note": "(itstool) path: blockquote/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2182, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 36, "source_unit": "https://translate-dev.freebsd.org/api/units/107709/?format=api", "priority": 100, "id": 225383, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=c29dd4d2844a6bd7", "url": "https://translate-dev.freebsd.org/api/units/225383/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.965648Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "And since <function>getchar</function> never <function role=\"opcode\">push</function>ed anything before <function role=\"opcode\">call</function>ing <function>read</function>, the top of the stack now contains the return address to whatever or whoever <function role=\"opcode\">call</function>ed <function>getchar</function>. As far as that caller is concerned, he <function role=\"opcode\">call</function>ed <function>getchar</function>, which <function role=\"opcode\">ret</function>urned with the <varname role=\"register\">carry flag</varname> set!" ], "previous_source": "", "target": [ "" ], "id_hash": 1484787236677251073, "content_hash": 1484787236677251073, "location": "book.translate.xml:14550", "context": "", "note": "(itstool) path: blockquote/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2183, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 48, "source_unit": "https://translate-dev.freebsd.org/api/units/107710/?format=api", "priority": 100, "id": 225384, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=949b0620012e7001", "url": "https://translate-dev.freebsd.org/api/units/225384/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.973153Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "Other than that, the <function>bcdload</function> routine is caught up in the middle of a Lilliputian conflict between the Big–Endians and the Little–Endians." ], "previous_source": "", "target": [ "" ], "id_hash": 8876569516956870689, "content_hash": 8876569516956870689, "location": "book.translate.xml:14558", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2184, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 22, "source_unit": "https://translate-dev.freebsd.org/api/units/107711/?format=api", "priority": 100, "id": 225385, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=fb2fe8f212466821", "url": "https://translate-dev.freebsd.org/api/units/225385/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.980339Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "It is converting the text representation of a number into that number: The text is stored in the big–endian order, but the <emphasis>packed decimal</emphasis> is little–endian." ], "previous_source": "", "target": [ "" ], "id_hash": 4070298582133153795, "content_hash": 4070298582133153795, "location": "book.translate.xml:14562", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2185, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 26, "source_unit": "https://translate-dev.freebsd.org/api/units/107712/?format=api", "priority": 100, "id": 225386, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=b87c9afebdd2a003", "url": "https://translate-dev.freebsd.org/api/units/225386/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.987355Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "To solve the conflict, we use the <function>std</function> op code early on. We cancel it with <function>cld</function> later on: It is quite important we do not <function>call</function> anything that may depend on the default setting of the <emphasis>direction flag</emphasis> while <function>std</function> is active." ], "previous_source": "", "target": [ "" ], "id_hash": 8930916721443282732, "content_hash": 8930916721443282732, "location": "book.translate.xml:14567", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2186, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 43, "source_unit": "https://translate-dev.freebsd.org/api/units/107713/?format=api", "priority": 100, "id": 225387, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=fbf0fd70ac391f2c", "url": "https://translate-dev.freebsd.org/api/units/225387/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:26.994240Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "Everything else in this code should be quit eclear, providing you have read the entire chapter that precedes it." ], "previous_source": "", "target": [ "" ], "id_hash": -4253621096745808654, "content_hash": -4253621096745808654, "location": "book.translate.xml:14574", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2187, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 19, "source_unit": "https://translate-dev.freebsd.org/api/units/92255/?format=api", "priority": 100, "id": 225388, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=44f81a262f5bccf2", "url": "https://translate-dev.freebsd.org/api/units/225388/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.004450Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "It is a classical example of the adage that programming requires a lot of thought and only a little coding. Once we have thought through every tiny detail, the code almost writes itself." ], "previous_source": "", "target": [ "" ], "id_hash": 8842380663921257698, "content_hash": 8842380663921257698, "location": "book.translate.xml:14578", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2188, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 33, "source_unit": "https://translate-dev.freebsd.org/api/units/107714/?format=api", "priority": 100, "id": 225389, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=fab6725d69cf2ce2", "url": "https://translate-dev.freebsd.org/api/units/225389/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.011460Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "Using <application>pinhole</application>" ], "previous_source": "", "target": [ "" ], "id_hash": -678000785971158668, "content_hash": -678000785971158668, "location": "book.translate.xml:14585", "context": "", "note": "(itstool) path: sect2/title", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2189, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/107715/?format=api", "priority": 100, "id": 225390, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=769741e09ac0e174", "url": "https://translate-dev.freebsd.org/api/units/225390/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.019852Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "Because we have decided to make the program <emphasis>ignore</emphasis> any input except for numbers (and even those inside a comment), we can actually perform <emphasis>textual queries</emphasis>. We do not <emphasis>have to</emphasis>, but we <emphasis>can</emphasis>." ], "previous_source": "", "target": [ "" ], "id_hash": 5387663397070565642, "content_hash": 5387663397070565642, "location": "book.translate.xml:14587", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2190, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 34, "source_unit": "https://translate-dev.freebsd.org/api/units/107716/?format=api", "priority": 100, "id": 225391, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=cac4d35087c3f10a", "url": "https://translate-dev.freebsd.org/api/units/225391/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.027314Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "In my humble opinion, forming a textual query, instead of having to follow a very strict syntax, makes software much more user friendly." ], "previous_source": "", "target": [ "" ], "id_hash": 2481778190368560814, "content_hash": 2481778190368560814, "location": "book.translate.xml:14594", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2191, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 23, "source_unit": "https://translate-dev.freebsd.org/api/units/107717/?format=api", "priority": 100, "id": 225392, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=a2710c1d783ad6ae", "url": "https://translate-dev.freebsd.org/api/units/225392/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.034492Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "Suppose we want to build a pinhole camera to use the 4x5 inch film. The standard focal length for that film is about 150mm. We want to <emphasis>fine–tune</emphasis> our focal length so the pinhole diameter is as round a number as possible. Let us also suppose we are quite comfortable with cameras but somewhat intimidated by computers. Rather than just have to type in a bunch of numbers, we want to <emphasis>ask</emphasis> a couple of questions." ], "previous_source": "", "target": [ "" ], "id_hash": 2443532058382528011, "content_hash": 2443532058382528011, "location": "book.translate.xml:14598", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2192, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 76, "source_unit": "https://translate-dev.freebsd.org/api/units/107718/?format=api", "priority": 100, "id": 225393, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=a1e92b75f12b6e0b", "url": "https://translate-dev.freebsd.org/api/units/225393/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.041650Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "Our session might look like this:" ], "previous_source": "", "target": [ "" ], "id_hash": 1878600367476981526, "content_hash": 1878600367476981526, "location": "book.translate.xml:14607", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2193, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 6, "source_unit": "https://translate-dev.freebsd.org/api/units/107719/?format=api", "priority": 100, "id": 225394, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=9a122114ba623f16", "url": "https://translate-dev.freebsd.org/api/units/225394/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.051455Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "<prompt>%</prompt> <userinput>pinhole\n\nComputer,\n\nWhat size pinhole do I need for the focal length of 150?</userinput>\n150\t490\t306\t362\t2930\t12\n<userinput>Hmmm... How about 160?</userinput>\n160\t506\t316\t362\t3125\t12\n<userinput>Let's make it 155, please.</userinput>\n155\t498\t311\t362\t3027\t12\n<userinput>Ah, let's try 157...</userinput>\n157\t501\t313\t362\t3066\t12\n<userinput>156?</userinput>\n156\t500\t312\t362\t3047\t12\n<userinput>That's it! Perfect! Thank you very much!\n^D</userinput>" ], "previous_source": "", "target": [ "" ], "id_hash": -6997165459728289478, "content_hash": -6997165459728289478, "location": "book.translate.xml:14609", "context": "", "note": "(itstool) path: sect2/screen", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2194, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 67, "source_unit": "https://translate-dev.freebsd.org/api/units/107720/?format=api", "priority": 100, "id": 225395, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=1ee513164243313a", "url": "https://translate-dev.freebsd.org/api/units/225395/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.059720Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "We have found that while for the focal length of 150, our pinhole diameter should be 490 microns, or 0.49 mm, if we go with the almost identical focal length of 156 mm, we can get away with a pinhole diameter of exactly one half of a millimeter." ], "previous_source": "", "target": [ "" ], "id_hash": -4866452384340981319, "content_hash": -4866452384340981319, "location": "book.translate.xml:14626", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2195, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 48, "source_unit": "https://translate-dev.freebsd.org/api/units/107721/?format=api", "priority": 100, "id": 225396, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=3c76e3570b00c9b9", "url": "https://translate-dev.freebsd.org/api/units/225396/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.067633Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "Scripting" ], "previous_source": "", "target": [ "" ], "id_hash": -2113656748661410651, "content_hash": -2113656748661410651, "location": "book.translate.xml:14634", "context": "", "note": "(itstool) path: sect2/title", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2196, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 1, "source_unit": "https://translate-dev.freebsd.org/api/units/107722/?format=api", "priority": 100, "id": 225397, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=62aac862beedf4a5", "url": "https://translate-dev.freebsd.org/api/units/225397/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.075963Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "Because we have chosen the <constant>#</constant> character to denote the start of a comment, we can treat our <application>pinhole</application> software as a <emphasis>scripting language</emphasis>." ], "previous_source": "", "target": [ "" ], "id_hash": 3052853810896905999, "content_hash": 3052853810896905999, "location": "book.translate.xml:14636", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2197, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 24, "source_unit": "https://translate-dev.freebsd.org/api/units/107723/?format=api", "priority": 100, "id": 225398, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=aa5dea5dc5b5270f", "url": "https://translate-dev.freebsd.org/api/units/225398/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.083380Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "You have probably seen <application>shell</application> <emphasis>scripts</emphasis> that start with:" ], "previous_source": "", "target": [ "" ], "id_hash": -7323880838147961394, "content_hash": -7323880838147961394, "location": "book.translate.xml:14641", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2198, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 9, "source_unit": "https://translate-dev.freebsd.org/api/units/107724/?format=api", "priority": 100, "id": 225399, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=1a5c592e68e68dce", "url": "https://translate-dev.freebsd.org/api/units/225399/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.090463Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "#! /bin/sh" ], "previous_source": "", "target": [ "" ], "id_hash": -1434816266093792768, "content_hash": -1434816266093792768, "location": "book.translate.xml:14644", "context": "", "note": "(itstool) path: sect2/programlisting", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2199, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 2, "source_unit": "https://translate-dev.freebsd.org/api/units/92256/?format=api", "priority": 100, "id": 225400, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=6c1682353d86f200", "url": "https://translate-dev.freebsd.org/api/units/225400/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.098927Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "...or..." ], "previous_source": "", "target": [ "" ], "id_hash": -7035896724130759886, "content_hash": -7035896724130759886, "location": "book.translate.xml:14646", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2200, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 1, "source_unit": "https://translate-dev.freebsd.org/api/units/107725/?format=api", "priority": 100, "id": 225401, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=1e5b793509d9fb32", "url": "https://translate-dev.freebsd.org/api/units/225401/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.112753Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "#!/bin/sh" ], "previous_source": "", "target": [ "" ], "id_hash": -391901552249288753, "content_hash": -391901552249288753, "location": "book.translate.xml:14648", "context": "", "note": "(itstool) path: sect2/programlisting", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2201, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 1, "source_unit": "https://translate-dev.freebsd.org/api/units/92257/?format=api", "priority": 100, "id": 225402, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=7a8faf9d5741c7cf", "url": "https://translate-dev.freebsd.org/api/units/225402/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.120159Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "...because the blank space after the <function>#!</function> is optional." ], "previous_source": "", "target": [ "" ], "id_hash": -4074001461845012046, "content_hash": -4074001461845012046, "location": "book.translate.xml:14650", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2202, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 9, "source_unit": "https://translate-dev.freebsd.org/api/units/107726/?format=api", "priority": 100, "id": 225403, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=47763d41644e51b2", "url": "https://translate-dev.freebsd.org/api/units/225403/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.128560Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "Whenever <trademark class=\"registered\">UNIX</trademark> is asked to run an executable file which starts with the <function>#!</function>, it assumes the file is a script. It adds the command to the rest of the first line of the script, and tries to execute that." ], "previous_source": "", "target": [ "" ], "id_hash": 9220327934563392102, "content_hash": 9220327934563392102, "location": "book.translate.xml:14653", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2203, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 41, "source_unit": "https://translate-dev.freebsd.org/api/units/107727/?format=api", "priority": 100, "id": 225404, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=fff52f67b4431a66", "url": "https://translate-dev.freebsd.org/api/units/225404/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.136234Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "Suppose now that we have installed <application>pinhole</application> in <application>/usr/local/bin/</application>, we can now write a script to calculate various pinhole diameters suitable for various focal lengths commonly used with the 120 film." ], "previous_source": "", "target": [ "" ], "id_hash": 3823815017911353552, "content_hash": 3823815017911353552, "location": "book.translate.xml:14659", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2204, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 31, "source_unit": "https://translate-dev.freebsd.org/api/units/107728/?format=api", "priority": 100, "id": 225405, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=b510eb7fd56900d0", "url": "https://translate-dev.freebsd.org/api/units/225405/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.143399Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "The script might look something like this:" ], "previous_source": "", "target": [ "" ], "id_hash": -123000476897575700, "content_hash": -123000476897575700, "location": "book.translate.xml:14665", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2205, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 7, "source_unit": "https://translate-dev.freebsd.org/api/units/107729/?format=api", "priority": 100, "id": 225406, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=7e4b03b7cb50fcec", "url": "https://translate-dev.freebsd.org/api/units/225406/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.150182Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "#! /usr/local/bin/pinhole -b -i\n# Find the best pinhole diameter\n# for the 120 film\n\n### Standard\n80\n\n### Wide angle\n30, 40, 50, 60, 70\n\n### Telephoto\n100, 120, 140" ], "previous_source": "", "target": [ "" ], "id_hash": -3051695231245900627, "content_hash": -3051695231245900627, "location": "book.translate.xml:14667", "context": "", "note": "(itstool) path: sect2/programlisting", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2206, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 31, "source_unit": "https://translate-dev.freebsd.org/api/units/92258/?format=api", "priority": 100, "id": 225407, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=55a6335b12d5a4ad", "url": "https://translate-dev.freebsd.org/api/units/225407/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.159578Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "Because 120 is a medium size film, we may name this file <application>medium</application>." ], "previous_source": "", "target": [ "" ], "id_hash": 3275648311600569706, "content_hash": 3275648311600569706, "location": "book.translate.xml:14680", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2207, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 13, "source_unit": "https://translate-dev.freebsd.org/api/units/107730/?format=api", "priority": 100, "id": 225408, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=ad7570c8c60f5d6a", "url": "https://translate-dev.freebsd.org/api/units/225408/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.167343Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "We can set its permissions to execute, and run it as if it were a program:" ], "previous_source": "", "target": [ "" ], "id_hash": 5538554426496136457, "content_hash": 5538554426496136457, "location": "book.translate.xml:14683", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2208, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 16, "source_unit": "https://translate-dev.freebsd.org/api/units/107731/?format=api", "priority": 100, "id": 225409, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=ccdce5e808783509", "url": "https://translate-dev.freebsd.org/api/units/225409/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.174804Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "<prompt>%</prompt> <userinput>chmod 755 medium</userinput>\n<prompt>%</prompt> <userinput>./medium</userinput>" ], "previous_source": "", "target": [ "" ], "id_hash": -5575594244329230507, "content_hash": -5575594244329230507, "location": "book.translate.xml:14686", "context": "", "note": "(itstool) path: sect2/screen", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2209, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 6, "source_unit": "https://translate-dev.freebsd.org/api/units/107732/?format=api", "priority": 100, "id": 225410, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=329f8293570b2f55", "url": "https://translate-dev.freebsd.org/api/units/225410/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.182495Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "<trademark class=\"registered\">UNIX</trademark> will interpret that last command as:" ], "previous_source": "", "target": [ "" ], "id_hash": -2098796686612691633, "content_hash": -2098796686612691633, "location": "book.translate.xml:14689", "context": "", "note": "(itstool) path: sect2/para", "flags": "", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2210, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 8, "source_unit": "https://translate-dev.freebsd.org/api/units/107733/?format=api", "priority": 100, "id": 225411, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=62df93888eaf054f", "url": "https://translate-dev.freebsd.org/api/units/225411/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.190741Z" }, { "translation": "https://translate-dev.freebsd.org/api/translations/freebsd-doc/boooks_developers-handbook/es_CL/?format=api", "source": [ "<prompt>%</prompt> <userinput>/usr/local/bin/pinhole -b -i ./medium</userinput>" ], "previous_source": "", "target": [ "" ], "id_hash": 2113314363650082307, "content_hash": 2113314363650082307, "location": "book.translate.xml:14691", "context": "", "note": "(itstool) path: sect2/screen", "flags": "no-wrap", "labels": [], "state": 0, "fuzzy": false, "translated": false, "approved": false, "position": 2211, "has_suggestion": false, "has_comment": false, "has_failing_check": false, "num_words": 5, "source_unit": "https://translate-dev.freebsd.org/api/units/107734/?format=api", "priority": 100, "id": 225412, "web_url": "https://translate-dev.freebsd.org/translate/freebsd-doc/boooks_developers-handbook/es_CL/?checksum=9d54003788180603", "url": "https://translate-dev.freebsd.org/api/units/225412/?format=api", "explanation": "", "extra_flags": "", "pending": false, "timestamp": "2020-12-11T23:51:27.198344Z" } ] }{ "count": 2274, "next": "