<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1" version="1.1">
  <file original="NoName" source-language="en" datatype="plaintext" target-language="en">
    <body>
      <trans-unit xml:space="preserve" approved="no" id="c150176e209aa249" weblate-flags="read-only, safe-html, strict-same">
        <source>= Parsing Parsing is the process where a serialized JSON text is validated and decomposed into elements. The library provides these functions and types to assist with parsing:</source>
        <target state="translated">= Parsing Parsing is the process where a serialized JSON text is validated and decomposed into elements. The library provides these functions and types to assist with parsing:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">12</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="b4c4db868dbf643a" weblate-flags="read-only, safe-html, strict-same">
        <source>Name</source>
        <target state="translated">Name</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">18</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="f7f5c115cf553484" weblate-flags="read-only, safe-html, strict-same">
        <source>Description</source>
        <target state="translated">Description</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">18</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="f1c817f70611635f" weblate-flags="read-only, safe-html, strict-same">
        <source>&lt;&lt;ref_basic_parser&gt;&gt;</source>
        <target state="translated">&lt;&lt;ref_basic_parser&gt;&gt;</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">18</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="774e2727df7835b9" weblate-flags="read-only, safe-html, strict-same">
        <source>A SAX push parser implementation which converts a serialized JSON text into</source>
        <target state="translated">A SAX push parser implementation which converts a serialized JSON text into</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">18</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="ab00221753fc5425" weblate-flags="read-only, safe-html, strict-same">
        <source>a series of member function calls to a user provided handler. This allows custom behaviors to be implemented for representing the document in memory.</source>
        <target state="translated">a series of member function calls to a user provided handler. This allows custom behaviors to be implemented for representing the document in memory.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">23</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="fcb5d99e04a6b00b" weblate-flags="read-only, safe-html, strict-same">
        <source>&lt;&lt;ref_parse_options&gt;&gt;</source>
        <target state="translated">&lt;&lt;ref_parse_options&gt;&gt;</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">26</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="d3c417b958a37c82" weblate-flags="read-only, safe-html, strict-same">
        <source>A structure used to select which extensions are enabled during parsing.</source>
        <target state="translated">A structure used to select which extensions are enabled during parsing.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">26</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="6eeaba3b72b4a38e" weblate-flags="read-only, safe-html, strict-same">
        <source>&lt;&lt;ref_parse&gt;&gt;</source>
        <target state="translated">&lt;&lt;ref_parse&gt;&gt;</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">26</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="113418f0569f3e33" weblate-flags="read-only, safe-html, strict-same">
        <source>Parse a string containing a complete serialized JSON text, and return</source>
        <target state="translated">Parse a string containing a complete serialized JSON text, and return</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">26</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="6455002c3e8780b4" weblate-flags="read-only, safe-html, strict-same">
        <source>a &lt;&lt;ref_value&gt;&gt;.</source>
        <target state="translated">a &lt;&lt;ref_value&gt;&gt;.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">31</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="a2a6bab6d5aef9d1" weblate-flags="read-only, safe-html, strict-same">
        <source>&lt;&lt;ref_parser&gt;&gt;</source>
        <target state="translated">&lt;&lt;ref_parser&gt;&gt;</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">33</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id=":33" weblate-flags="read-only, safe-html, strict-same">
        <source>A stateful DOM parser object which may be used to efficiently parse a series</source>
        <target state="translated">A stateful DOM parser object which may be used to efficiently parse a series</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">33</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="514684340cc702c9" weblate-flags="read-only, safe-html, strict-same">
        <source>of JSON texts each contained in a single contiguous character buffer, returning each result as a &lt;&lt;ref_value&gt;&gt;.</source>
        <target state="translated">of JSON texts each contained in a single contiguous character buffer, returning each result as a &lt;&lt;ref_value&gt;&gt;.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">35</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="da6282521f1d881b" weblate-flags="read-only, safe-html, strict-same">
        <source>&lt;&lt;ref_stream_parser&gt;&gt;</source>
        <target state="translated">&lt;&lt;ref_stream_parser&gt;&gt;</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">38</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id=":38" weblate-flags="read-only, safe-html, strict-same">
        <source>A stateful DOM parser object which may be used to efficiently parse a series</source>
        <target state="translated">A stateful DOM parser object which may be used to efficiently parse a series</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">38</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="b7bc3bd415dc33f2" weblate-flags="read-only, safe-html, strict-same">
        <source>of JSON texts incrementally, returning each result as a &lt;&lt;ref_value&gt;&gt;.</source>
        <target state="translated">of JSON texts incrementally, returning each result as a &lt;&lt;ref_value&gt;&gt;.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">40</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="1fa03898151effc6" weblate-flags="read-only, safe-html, strict-same">
        <source>&lt;&lt;ref_value_stack&gt;&gt;</source>
        <target state="translated">&lt;&lt;ref_value_stack&gt;&gt;</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">42</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="1bb6b0a9eacf32d8" weblate-flags="read-only, safe-html, strict-same">
        <source>A low level building block used for efficiently building a &lt;&lt;ref_value&gt;&gt;. The</source>
        <target state="translated">A low level building block used for efficiently building a &lt;&lt;ref_value&gt;&gt;. The</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">42</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="8eec7b277feba93f" weblate-flags="read-only, safe-html, strict-same">
        <source>parsers use this internally, and users may use it to adapt foreign parsers to produce this library's containers. |===</source>
        <target state="translated">parsers use this internally, and users may use it to adapt foreign parsers to produce this library's containers. |===</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">44</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="9ba79cc5e74c9889" weblate-flags="read-only, safe-html, strict-same">
        <source>The &lt;&lt;ref_parse&gt;&gt; function offers a simple interface for converting a serialized JSON text to a &lt;&lt;ref_value&gt;&gt; in a single function call. This overload uses exceptions to indicate errors:</source>
        <target state="translated">The &lt;&lt;ref_parse&gt;&gt; function offers a simple interface for converting a serialized JSON text to a &lt;&lt;ref_value&gt;&gt; in a single function call. This overload uses exceptions to indicate errors:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">48</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="a1ce069d19def6c5" weblate-flags="read-only, safe-html, strict-same">
        <source>Alternatively, an {ref_error_code} can be used:</source>
        <target state="translated">Alternatively, an {ref_error_code} can be used:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">57</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="817ad1a80ca936fa" weblate-flags="read-only, safe-html, strict-same">
        <source>Even when using error codes, exceptions thrown from the underlying {ref_memory_resource} are still possible:</source>
        <target state="translated">Even when using error codes, exceptions thrown from the underlying {ref_memory_resource} are still possible:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">64</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="79f55af9be183fb0" weblate-flags="read-only, safe-html, strict-same">
        <source>The &lt;&lt;ref_value&gt;&gt; returned in the preceding examples use the &lt;&lt;default_memory_resource,default memory resource&gt;&gt;. The following code uses a &lt;&lt;ref_monotonic_resource&gt;&gt;, which results in faster parsing. `jv` is marked `const` to prevent subsequent modification, because containers using a monotonic resource waste memory when mutated.</source>
        <target state="translated">The &lt;&lt;ref_value&gt;&gt; returned in the preceding examples use the &lt;&lt;default_memory_resource,default memory resource&gt;&gt;. The following code uses a &lt;&lt;ref_monotonic_resource&gt;&gt;, which results in faster parsing. `jv` is marked `const` to prevent subsequent modification, because containers using a monotonic resource waste memory when mutated.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">72</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="fcc2be909ae94e9b" weblate-flags="read-only, safe-html, strict-same">
        <source>Non-Standard JSON</source>
        <target state="translated">Non-Standard JSON</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">83</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="ccac0d17ef48cfc0" weblate-flags="read-only, safe-html, strict-same">
        <source>Unless otherwise specified, the parser in this library is strict. It recognizes only valid, standard JSON. The parser can be configured to allow certain non-standard extensions by filling in a &lt;&lt;ref_parse_options&gt;&gt; structure and passing it by value. By default all extensions are disabled:</source>
        <target state="translated">Unless otherwise specified, the parser in this library is strict. It recognizes only valid, standard JSON. The parser can be configured to allow certain non-standard extensions by filling in a &lt;&lt;ref_parse_options&gt;&gt; structure and passing it by value. By default all extensions are disabled:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">84</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="3d75cc3b996f733b" weblate-flags="read-only, safe-html, strict-same">
        <source>When building with {cpp}20 or later, the use of https://en.cppreference.com/w/cpp/language/aggregate_initialization#Designated_initializers[designated initializers] with &lt;&lt;ref_parse_options&gt;&gt; is possible:</source>
        <target state="translated">When building with {cpp}20 or later, the use of https://en.cppreference.com/w/cpp/language/aggregate_initialization#Designated_initializers[designated initializers] with &lt;&lt;ref_parse_options&gt;&gt; is possible:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">94</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="abe08839ce016b71" weblate-flags="read-only, safe-html, strict-same">
        <source>When `allow_invalid_utf16` is enabled, the parser will not throw an error in the case of illegal leading, trailing, or half a surrogate. Instead, it will replace the invalid UTF-16 code point(s) with the Unicode replacement character.</source>
        <target state="translated">When `allow_invalid_utf16` is enabled, the parser will not throw an error in the case of illegal leading, trailing, or half a surrogate. Instead, it will replace the invalid UTF-16 code point(s) with the Unicode replacement character.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">103</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="845744e7da88cece" weblate-flags="read-only, safe-html, strict-same">
        <source>When enabling comment support take extra care not to drop whitespace</source>
        <target state="translated">When enabling comment support take extra care not to drop whitespace</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">113</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="ad7ba2c526153451" weblate-flags="read-only, safe-html, strict-same">
        <source>when reading the input. For example, `std::getline` removes the endline characters from the string it produces.</source>
        <target state="translated">when reading the input. For example, `std::getline` removes the endline characters from the string it produces.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">114</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="8d530d02d734582a" weblate-flags="read-only, safe-html, strict-same">
        <source>Full Precision Number Parsing</source>
        <target state="translated">Full Precision Number Parsing</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">117</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="b0edb7d31a6f4d04" weblate-flags="read-only, safe-html, strict-same">
        <source>The default algorithm that the library uses to parse numbers is fast, but may result in slight precision loss. This may not be suitable for some applications, so there is an option to enable an alternative algorithm that doesn't have that flaw, but is somewhat slower. To do this, you also need to use &lt;&lt;ref_parse_options&gt;&gt; structure.</source>
        <target state="translated">The default algorithm that the library uses to parse numbers is fast, but may result in slight precision loss. This may not be suitable for some applications, so there is an option to enable an alternative algorithm that doesn't have that flaw, but is somewhat slower. To do this, you also need to use &lt;&lt;ref_parse_options&gt;&gt; structure.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">118</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="0b111af1102f4b7c" weblate-flags="read-only, safe-html, strict-same">
        <source>Note that full precision number parsing requires the algorithm to see the full number. This means, that when used with &lt;&lt;ref_stream_parser&gt;&gt;, additional memory allocations may be necessary to store the number parts which were so far accepted by the parser. The library does try its best to avoid such allocations.</source>
        <target state="translated">Note that full precision number parsing requires the algorithm to see the full number. This means, that when used with &lt;&lt;ref_stream_parser&gt;&gt;, additional memory allocations may be necessary to store the number parts which were so far accepted by the parser. The library does try its best to avoid such allocations.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">129</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="701ff1629bc46b4b" weblate-flags="read-only, safe-html, strict-same">
        <source>Parser</source>
        <target state="translated">Parser</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">135</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="21e6ec9901f86604" weblate-flags="read-only, safe-html, strict-same">
        <source>Instances of &lt;&lt;ref_parser&gt;&gt; and &lt;&lt;ref_stream_parser&gt;&gt; offer functionality beyond what is available when using the &lt;&lt;ref_parse&gt;&gt; free functions:</source>
        <target state="translated">Instances of &lt;&lt;ref_parser&gt;&gt; and &lt;&lt;ref_stream_parser&gt;&gt; offer functionality beyond what is available when using the &lt;&lt;ref_parse&gt;&gt; free functions:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">136</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="4139b31f51f74dce" weblate-flags="read-only, safe-html, strict-same">
        <source>More control over memory</source>
        <target state="translated">More control over memory</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">139</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="04c232f63cc2d303" weblate-flags="read-only, safe-html, strict-same">
        <source>Streaming API, parse input JSON incrementally</source>
        <target state="translated">Streaming API, parse input JSON incrementally</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">140</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="802f7d5c43d2d4d0" weblate-flags="read-only, safe-html, strict-same">
        <source>Improved performance when parsing multiple JSON texts</source>
        <target state="translated">Improved performance when parsing multiple JSON texts</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">141</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="e9707a853155c1de" weblate-flags="read-only, safe-html, strict-same">
        <source>Ignore non-JSON content after the end of a JSON text</source>
        <target state="translated">Ignore non-JSON content after the end of a JSON text</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">142</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="69b1575957f3cb09" weblate-flags="read-only, safe-html, strict-same">
        <source>The parser implementation uses temporary storage space to accumulate values during parsing. When using the &lt;&lt;ref_parse&gt;&gt; free functions, this storage is allocated and freed in each call. However, by declaring an instance of &lt;&lt;ref_parser&gt;&gt; or &lt;&lt;ref_stream_parser&gt;&gt;, this temporary storage can be reused when parsing more than one JSON text, reducing the total number of dynamic memory allocations.</source>
        <target state="translated">The parser implementation uses temporary storage space to accumulate values during parsing. When using the &lt;&lt;ref_parse&gt;&gt; free functions, this storage is allocated and freed in each call. However, by declaring an instance of &lt;&lt;ref_parser&gt;&gt; or &lt;&lt;ref_stream_parser&gt;&gt;, this temporary storage can be reused when parsing more than one JSON text, reducing the total number of dynamic memory allocations.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">144</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="58d37bc14001be1a" weblate-flags="read-only, safe-html, strict-same">
        <source>To use the &lt;&lt;ref_parser&gt;&gt;, declare an instance. Then call &lt;&lt;ref_parser_write&gt;&gt; once with the buffer containing representing the input JSON. Finally, call &lt;&lt;ref_parser_release&gt;&gt; to take ownership of the resulting &lt;&lt;ref_value&gt;&gt; upon success. This example persists the parser instance in a class member to reuse across calls:</source>
        <target state="translated">To use the &lt;&lt;ref_parser&gt;&gt;, declare an instance. Then call &lt;&lt;ref_parser_write&gt;&gt; once with the buffer containing representing the input JSON. Finally, call &lt;&lt;ref_parser_release&gt;&gt; to take ownership of the resulting &lt;&lt;ref_value&gt;&gt; upon success. This example persists the parser instance in a class member to reuse across calls:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">151</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="dc41b05f1b18a35c" weblate-flags="read-only, safe-html, strict-same">
        <source>Sometimes a protocol may have a JSON text followed by data that is in a different format or specification. The JSON portion can still be parsed by using the function &lt;&lt;ref_parser_write_some&gt;&gt;. Upon success, the return value will indicate the number of characters consumed from the input, which will exclude the non-JSON characters:</source>
        <target state="translated">Sometimes a protocol may have a JSON text followed by data that is in a different format or specification. The JSON portion can still be parsed by using the function &lt;&lt;ref_parser_write_some&gt;&gt;. Upon success, the return value will indicate the number of characters consumed from the input, which will exclude the non-JSON characters:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">162</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="a920c5b49d1f9f41" weblate-flags="read-only, safe-html, strict-same">
        <source>The parser instance may be constructed with parse options which allow some non-standard JSON extensions to be recognized:</source>
        <target state="translated">The parser instance may be constructed with parse options which allow some non-standard JSON extensions to be recognized:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">173</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="d24d6f62d6afbd4a" weblate-flags="read-only, safe-html, strict-same">
        <source>Streaming Parser</source>
        <target state="translated">Streaming Parser</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">181</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="aa4cc1ac74e0b961" weblate-flags="read-only, safe-html, strict-same">
        <source>The &lt;&lt;ref_stream_parser&gt;&gt; implements a https://en.wikipedia.org/wiki/Online_algorithm[__streaming algorithm__]; it allows incremental processing of large JSON inputs using one or more contiguous character buffers. The entire input JSON does not need to be loaded into memory at once. A network server can use the streaming interface to process incoming JSON in fixed-size amounts, providing these benefits:</source>
        <target state="translated">The &lt;&lt;ref_stream_parser&gt;&gt; implements a https://en.wikipedia.org/wiki/Online_algorithm[__streaming algorithm__]; it allows incremental processing of large JSON inputs using one or more contiguous character buffers. The entire input JSON does not need to be loaded into memory at once. A network server can use the streaming interface to process incoming JSON in fixed-size amounts, providing these benefits:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">182</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="b69775956b1a6589" weblate-flags="read-only, safe-html, strict-same">
        <source>CPU consumption per I/O cycle is bounded</source>
        <target state="translated">CPU consumption per I/O cycle is bounded</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">189</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="ff8e15b3e916c42e" weblate-flags="read-only, safe-html, strict-same">
        <source>Memory consumption per I/O cycle is bounded</source>
        <target state="translated">Memory consumption per I/O cycle is bounded</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">190</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="87d0751380bff34d" weblate-flags="read-only, safe-html, strict-same">
        <source>Jitter, unfairness, and latency is reduced</source>
        <target state="translated">Jitter, unfairness, and latency is reduced</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">191</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="c953cf45ef99cdf2" weblate-flags="read-only, safe-html, strict-same">
        <source>Less total memory is required to process the full input</source>
        <target state="translated">Less total memory is required to process the full input</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">192</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="9811db9e611d6add" weblate-flags="read-only, safe-html, strict-same">
        <source>To use the &lt;&lt;ref_stream_parser&gt;&gt;, declare an instance. Then call &lt;&lt;ref_stream_parser_write&gt;&gt; zero or more times with successive buffers representing the input JSON. When there are no more buffers, call &lt;&lt;ref_stream_parser_finish&gt;&gt;. The function &lt;&lt;ref_stream_parser_done&gt;&gt; returns `true` after a successful call to `write` or `finish` if parsing is complete.</source>
        <target state="translated">To use the &lt;&lt;ref_stream_parser&gt;&gt;, declare an instance. Then call &lt;&lt;ref_stream_parser_write&gt;&gt; zero or more times with successive buffers representing the input JSON. When there are no more buffers, call &lt;&lt;ref_stream_parser_finish&gt;&gt;. The function &lt;&lt;ref_stream_parser_done&gt;&gt; returns `true` after a successful call to `write` or `finish` if parsing is complete.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">194</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="ae5110153370dc2b" weblate-flags="read-only, safe-html, strict-same">
        <source>In the following example a JSON text is parsed from standard input a line at a time. Error codes are used instead. The function &lt;&lt;ref_stream_parser_finish&gt;&gt; is used to indicate the end of the input:</source>
        <target state="translated">In the following example a JSON text is parsed from standard input a line at a time. Error codes are used instead. The function &lt;&lt;ref_stream_parser_finish&gt;&gt; is used to indicate the end of the input:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">200</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="c085d7d0e31196ba" weblate-flags="read-only, safe-html, strict-same">
        <source>This example will break, if comments are enabled, because of</source>
        <target state="translated">This example will break, if comments are enabled, because of</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">204</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="6497ed55c77adb29" weblate-flags="read-only, safe-html, strict-same">
        <source>`std::getline` use (see the warning in &lt;&lt;non_standard_json&gt;&gt; section).</source>
        <target state="translated">`std::getline` use (see the warning in &lt;&lt;non_standard_json&gt;&gt; section).</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">205</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="075c661ebd1d4c4a" weblate-flags="read-only, safe-html, strict-same">
        <source>We can complicate the example further by extracting _several_ JSON values from the sequence of lines.</source>
        <target state="translated">We can complicate the example further by extracting _several_ JSON values from the sequence of lines.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">212</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="d545c85f1f7d12fb" weblate-flags="read-only, safe-html, strict-same">
        <source>Controlling Memory</source>
        <target state="translated">Controlling Memory</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">220</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="b42472f563e77e90" weblate-flags="read-only, safe-html, strict-same">
        <source>After default construction, or after &lt;&lt;ref_stream_parser_reset&gt;&gt; is called with no arguments, the &lt;&lt;ref_value&gt;&gt; produced after a successful parse operation uses the default memory resource. To use a different memory resource, call `reset` with the resource to use. Here we use a &lt;&lt;ref_monotonic_resource&gt;&gt;, which is optimized for parsing but not subsequent modification:</source>
        <target state="translated">After default construction, or after &lt;&lt;ref_stream_parser_reset&gt;&gt; is called with no arguments, the &lt;&lt;ref_value&gt;&gt; produced after a successful parse operation uses the default memory resource. To use a different memory resource, call `reset` with the resource to use. Here we use a &lt;&lt;ref_monotonic_resource&gt;&gt;, which is optimized for parsing but not subsequent modification:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">221</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="a02c497fa2bc38f2" weblate-flags="read-only, safe-html, strict-same">
        <source>To achieve performance and memory efficiency, the parser uses a temporary storage area to hold intermediate results. This storage is reused when parsing more than one JSON text, reducing the total number of calls to allocate memory and thus improving performance. Upon construction, the memory resource used to perform allocations for this temporary storage area may be specified. Otherwise, the default memory resource is used. In addition to a memory resource, the parser can make use of a caller-owned buffer for temporary storage. This can help avoid dynamic allocations for small inputs. The following example uses a four kilobyte temporary buffer for the parser, and falls back to the default memory resource if needed:</source>
        <target state="translated">To achieve performance and memory efficiency, the parser uses a temporary storage area to hold intermediate results. This storage is reused when parsing more than one JSON text, reducing the total number of calls to allocate memory and thus improving performance. Upon construction, the memory resource used to perform allocations for this temporary storage area may be specified. Otherwise, the default memory resource is used. In addition to a memory resource, the parser can make use of a caller-owned buffer for temporary storage. This can help avoid dynamic allocations for small inputs. The following example uses a four kilobyte temporary buffer for the parser, and falls back to the default memory resource if needed:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">232</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="5e505f588184ce3b" weblate-flags="read-only, safe-html, strict-same">
        <source>Avoiding Dynamic Allocations</source>
        <target state="translated">Avoiding Dynamic Allocations</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">248</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="4308e0efd6523806" weblate-flags="read-only, safe-html, strict-same">
        <source>Through careful specification of buffers and memory resources, it is possible to eliminate all dynamic allocation completely when parsing JSON, for the case where the entire JSON text is available in a single character buffer, as shown here:</source>
        <target state="translated">Through careful specification of buffers and memory resources, it is possible to eliminate all dynamic allocation completely when parsing JSON, for the case where the entire JSON text is available in a single character buffer, as shown here:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">249</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="3e10e202825b1fc4" weblate-flags="read-only, safe-html, strict-same">
        <source>Custom Parsers</source>
        <target state="translated">Custom Parsers</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">259</context>
        </context-group>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="cb56a9c2b7611c93" weblate-flags="read-only, safe-html, strict-same">
        <source>Users who wish to implement custom parsing strategies may create their own handler to use with an instance of &lt;&lt;ref_basic_parser&gt;&gt;. The handler implements the function signatures required by SAX event interface. In &lt;&lt;examples_validate&gt;&gt; example we define the "null" parser, which throws out the parsed results, to use in the implementation of a function that determines if a JSON text is valid.</source>
        <target state="translated">Users who wish to implement custom parsing strategies may create their own handler to use with an instance of &lt;&lt;ref_basic_parser&gt;&gt;. The handler implements the function signatures required by SAX event interface. In &lt;&lt;examples_validate&gt;&gt; example we define the "null" parser, which throws out the parsed results, to use in the implementation of a function that determines if a JSON text is valid.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile"></context>
          <context context-type="linenumber">260</context>
        </context-group>
      </trans-unit>
    </body>
  </file>
</xliff>
