Imported Upstream version 1.6.2 upstream/1.6.2
authorJinWang An <jinwang.an@samsung.com>
Fri, 17 Dec 2021 05:27:45 +0000 (14:27 +0900)
committerJinWang An <jinwang.an@samsung.com>
Fri, 17 Dec 2021 05:27:45 +0000 (14:27 +0900)
17 files changed:
.gitlab-ci.yml [new file with mode: 0644]
NEWS
doc/draft-zyp-json-schema-02.txt [deleted file]
doc/rfc4627.txt [deleted file]
json-glib.doap [deleted file]
json-glib/json-enum-types.c.in
json-glib/json-parser.c
json-glib/json-scanner.c
json-glib/tests/invalid.c
json-glib/tests/meson.build
json-glib/tests/reader.c
json-glib/tests/skip-bom.json [new file with mode: 0644]
meson.build
po/.gitignore [deleted file]
po/LINGUAS
po/be.po [new file with mode: 0644]
po/pt.po

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644 (file)
index 0000000..fb3c392
--- /dev/null
@@ -0,0 +1,37 @@
+image: fedora:31
+
+stages:
+  - build
+
+before_script:
+  - dnf install -y gcc gettext glib2-devel gobject-introspection-devel gtk-doc meson ninja-build redhat-rpm-config
+
+build-json-glib:
+  stage: build
+  script:
+    - meson --prefix /usr -Dman=true _build .
+    - cd _build
+    - ninja
+    - meson test
+  except:
+    - tags
+  artifacts:
+    when: on_failure
+    name: "json-glib-${CI_COMMIT_REF_NAME}"
+    paths:
+      - "${CI_PROJECT_DIR}/_build/meson-logs"
+
+dist-json-glib:
+  stage: build
+  only:
+    - tags
+  script:
+    - meson --prefix /usr --buildtype release -Dman=true -Ddocs=true _build .
+    - cd _build
+    - ninja dist
+    - ninja json-glib-doc
+    - tar -c -f "json-glib-docs-${CI_COMMIT_TAG}.tar.xz" -C docs html
+  artifacts:
+    paths:
+      - "${CI_PROJECT_DIR}/_build/json-glib-docs-${CI_COMMIT_TAG}.tar.xz"
+      - "${CI_PROJECT_DIR}/_build/meson-dist/json-glib-*.tar.xz"
diff --git a/NEWS b/NEWS
index 1dd3285..f0379d9 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -23,6 +23,9 @@ Overview of changes for 1.6
 • #46 - Document nullability of `json_from_string()` [Emmanuele Bassi]
 • #45 - Properly detect multiple top-level statements [Emmanuele Bassi]
 • #41, #22 - Fix library versions on Darwin [Tom Schoonjans]
+• Fix build reproducibility [!33, Alexander Kanavin]
+• #26 - Fix parsing of UTF-16 surrogate pairs [James Westman]
+• #56 - Ignore UTF-8 BOM [Jan-Michael Brummer]
 
 Overview of changes for 1.4
 ==============================
diff --git a/doc/draft-zyp-json-schema-02.txt b/doc/draft-zyp-json-schema-02.txt
deleted file mode 100644 (file)
index 5e72fee..0000000
+++ /dev/null
@@ -1,1345 +0,0 @@
-
-
-
-Internet Engineering Task Force                              K. Zyp, Ed.
-Internet-Draft                                             SitePen (USA)
-Intended status: Informational                            March 23, 2010
-Expires: September 24, 2010
-
-
-   A JSON Media Type for Describing the Structure and Meaning of JSON
-                               Documents
-                        draft-zyp-json-schema-02
-
-Abstract
-
-   JSON (JavaScript Object Notation) Schema defines the media type
-   application/schema+json, a JSON based format for defining the
-   structure of JSON data.  JSON Schema provides a contract for what
-   JSON data is required for a given application and how to interact
-   with it.  JSON Schema is intended to define validation,
-   documentation, hyperlink navigation, and interaction control of JSON
-   data.
-
-Status of This Memo
-
-   This Internet-Draft is submitted to IETF in full conformance with the
-   provisions of BCP 78 and BCP 79.
-
-   Internet-Drafts are working documents of the Internet Engineering
-   Task Force (IETF), its areas, and its working groups.  Note that
-   other groups may also distribute working documents as Internet-
-   Drafts.
-
-   Internet-Drafts are draft documents valid for a maximum of six months
-   and may be updated, replaced, or obsoleted by other documents at any
-   time.  It is inappropriate to use Internet-Drafts as reference
-   material or to cite them other than as "work in progress."
-
-   The list of current Internet-Drafts can be accessed at
-   http://www.ietf.org/ietf/1id-abstracts.txt.
-
-   The list of Internet-Draft Shadow Directories can be accessed at
-   http://www.ietf.org/shadow.html.
-
-   This Internet-Draft will expire on September 24, 2010.
-
-Copyright Notice
-
-   Copyright (c) 2010 IETF Trust and the persons identified as the
-   document authors.  All rights reserved.
-
-
-
-
-Zyp                    Expires September 24, 2010               [Page 1]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-   This document is subject to BCP 78 and the IETF Trust's Legal
-   Provisions Relating to IETF Documents
-   (http://trustee.ietf.org/license-info) in effect on the date of
-   publication of this document.  Please review these documents
-   carefully, as they describe your rights and restrictions with respect
-   to this document.  Code Components extracted from this document must
-   include Simplified BSD License text as described in Section 4.e of
-   the Trust Legal Provisions and are provided without warranty as
-   described in the BSD License.
-
-Table of Contents
-
-   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
-   2.  Conventions  . . . . . . . . . . . . . . . . . . . . . . . . .  4
-   3.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .  4
-     3.1.  Terminology  . . . . . . . . . . . . . . . . . . . . . . .  5
-     3.2.  Design Considerations  . . . . . . . . . . . . . . . . . .  6
-   4.  Schema/Instance Association  . . . . . . . . . . . . . . . . .  6
-     4.1.  Self-Descriptive Schema  . . . . . . . . . . . . . . . . .  7
-   5.  Core Schema Definition . . . . . . . . . . . . . . . . . . . .  7
-     5.1.  type . . . . . . . . . . . . . . . . . . . . . . . . . . .  8
-     5.2.  properties . . . . . . . . . . . . . . . . . . . . . . . .  8
-     5.3.  items  . . . . . . . . . . . . . . . . . . . . . . . . . .  9
-     5.4.  optional . . . . . . . . . . . . . . . . . . . . . . . . .  9
-     5.5.  additionalProperties . . . . . . . . . . . . . . . . . . .  9
-     5.6.  requires . . . . . . . . . . . . . . . . . . . . . . . . .  9
-     5.7.  minimum  . . . . . . . . . . . . . . . . . . . . . . . . . 10
-     5.8.  maximum  . . . . . . . . . . . . . . . . . . . . . . . . . 10
-     5.9.  minimumCanEqual  . . . . . . . . . . . . . . . . . . . . . 10
-     5.10. maximumCanEqual  . . . . . . . . . . . . . . . . . . . . . 10
-     5.11. minItems . . . . . . . . . . . . . . . . . . . . . . . . . 10
-     5.12. maxItems . . . . . . . . . . . . . . . . . . . . . . . . . 10
-     5.13. uniqueItems  . . . . . . . . . . . . . . . . . . . . . . . 10
-     5.14. pattern  . . . . . . . . . . . . . . . . . . . . . . . . . 10
-     5.15. maxLength  . . . . . . . . . . . . . . . . . . . . . . . . 11
-     5.16. minLength  . . . . . . . . . . . . . . . . . . . . . . . . 11
-     5.17. enum . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
-     5.18. title  . . . . . . . . . . . . . . . . . . . . . . . . . . 11
-     5.19. description  . . . . . . . . . . . . . . . . . . . . . . . 11
-     5.20. format . . . . . . . . . . . . . . . . . . . . . . . . . . 11
-     5.21. contentEncoding  . . . . . . . . . . . . . . . . . . . . . 12
-     5.22. default  . . . . . . . . . . . . . . . . . . . . . . . . . 13
-     5.23. divisibleBy  . . . . . . . . . . . . . . . . . . . . . . . 13
-     5.24. disallow . . . . . . . . . . . . . . . . . . . . . . . . . 13
-     5.25. extends  . . . . . . . . . . . . . . . . . . . . . . . . . 13
-   6.  Hyper Schema . . . . . . . . . . . . . . . . . . . . . . . . . 13
-     6.1.  links  . . . . . . . . . . . . . . . . . . . . . . . . . . 13
-       6.1.1.  Link Description Object  . . . . . . . . . . . . . . . 14
-
-
-
-Zyp                    Expires September 24, 2010               [Page 2]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-     6.2.  fragmentResolution . . . . . . . . . . . . . . . . . . . . 18
-       6.2.1.  dot-delimited fragment resolution  . . . . . . . . . . 18
-       6.2.2.  slash-delimited fragment resolution  . . . . . . . . . 19
-     6.3.  root . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
-     6.4.  readonly . . . . . . . . . . . . . . . . . . . . . . . . . 19
-     6.5.  pathStart  . . . . . . . . . . . . . . . . . . . . . . . . 20
-     6.6.  mediaType  . . . . . . . . . . . . . . . . . . . . . . . . 20
-     6.7.  alternate  . . . . . . . . . . . . . . . . . . . . . . . . 20
-   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 20
-   8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 21
-     8.1.  Registry of Link Relations . . . . . . . . . . . . . . . . 21
-   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 22
-     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 22
-     9.2.  Informative References . . . . . . . . . . . . . . . . . . 22
-   Appendix A.  Change Log  . . . . . . . . . . . . . . . . . . . . . 23
-   Appendix B.  Open Issues . . . . . . . . . . . . . . . . . . . . . 24
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Zyp                    Expires September 24, 2010               [Page 3]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-1.  Introduction
-
-   JSON (JavaScript Object Notation) Schema is a JSON media type for
-   defining the structure of JSON data.  JSON Schema provides a contract
-   for what JSON data is required for a given application and how to
-   interact with it.  JSON Schema is intended to define validation,
-   documentation, hyperlink navigation, and interaction control of JSON
-   data.
-
-2.  Conventions
-
-   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
-   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
-   document are to be interpreted as described in RFC 2119.
-
-3.  Overview
-
-   JSON Schema defines the media type application/schema+json for
-   describing the structure of other JSON documents.  JSON Schema is
-   JSON-based and includes facilities for describing the structure of
-   JSON documents in terms of allowable values, descriptions, and
-   interpreting relations with other resources.
-
-   JSON Schema format is organized into several separate definitions.
-   The first definition is the core schema specification.  This
-   definition is primary concerned with describing a JSON structure and
-   specifying valid elements in the structure.  The second definition is
-   the Hyper Schema specification which is intended define elements in a
-   structure that can be interpreted as hyperlinks.  Hyper Schema builds
-   on JSON Schema to describe the hyperlink structure of other JSON
-   documents.  This allows user agents to be able to successfully
-   navigate JSON documents based on their schemas.
-
-   Cumulatively JSON Schema acts as a meta-document that can be used to
-   define the required type and constraints on property values, as well
-   as define the meaning of the property values for the purpose of
-   describing a resource and determining hyperlinks within the
-   representation.
-
-   An example JSON Schema that describes products might look like:
-
-
-
-
-
-
-
-
-
-
-
-Zyp                    Expires September 24, 2010               [Page 4]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-   {
-     "name":"Product",
-     "properties":{
-       "id":{
-         "type":"number",
-         "description":"Product identifier"
-       },
-       "name":{
-         "description":"Name of the product",
-         "type":"string"
-       },
-       "price":{
-         "type": "number",
-         "minimum":0
-       },
-       "tags":{
-         "optional":true,
-         "type":"array",
-         "items":{
-            "type":"string"
-         }
-       }
-     },
-     "links":[
-       {
-         "rel":"full",
-         "href":"{id}"
-       },
-       {
-         "rel":"comments",
-         "href":"comments/?id={id}"
-       }
-     ]
-   }
-
-   This schema defines the properties of the instance JSON documents and
-   their required properties (id, name, and price) as well as an
-   optional property (tags).  This also defines the link relations of
-   the instance JSON documents.
-
-3.1.  Terminology
-
-   For this specification, a schema will be used to denote a JSON Schema
-   definition, and an instance refers to the JSON object or array that
-   the schema will be describing and validating
-
-
-
-
-
-
-Zyp                    Expires September 24, 2010               [Page 5]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-3.2.  Design Considerations
-
-   The JSON Schema media type does not attempt to dictate the structure
-   of JSON representations that contain data, but rather provides a
-   separate format for flexibly communicating how a JSON representation
-   should be interpreted and validated, such that user agents can
-   properly understand acceptable structures and extrapolate hyperlink
-   information with the JSON document.  It is acknowledged that JSON
-   documents come in a variety of structures, and JSON is unique in that
-   the structure of stored data structures often prescribes a non-
-   ambiguous definite JSON representation.  Attempting to force a
-   specific structure is generally not viable, and therefore JSON Schema
-   allows for great flexibility in the structure of JSON data that it
-   describes.
-
-   This specification is protocol agnostic.  The underlying protocol
-   (such as HTTP) should sufficiently define the semantics of the
-   client-server interface, the retrieval of resource representations
-   linked to by JSON representations, and modification of those
-   resources.  The goal of this format is to sufficiently describe JSON
-   structures such that one can utilize existing information available
-   in existing JSON representations from a large variety of services
-   that leverage a representational state transfer architecture using
-   existing protocols.
-
-4.  Schema/Instance Association
-
-   JSON Schema instances are correlated to their schema by the
-   "describedby" relation, where the schema is defined to be the target
-   of the relation.  Instance representations may be of the application/
-   json media type or any other subtype.  Consequently, dictating how an
-   instance representation should specify the relation to the schema is
-   beyond the normative scope of this document (since this document
-   specifically defines the JSON Schema media type, and no other), but
-   it is recommended that instances specify their schema so that user
-   agents can interpret the instance representation and messages may
-   retain the self-descriptive characteristic, avoiding the need for
-   out-of-band information about instance data.  Two approaches are
-   recommended for declaring the relation to the schema that describes
-   the meaning of a JSON instance's (or collection of instances)
-   structure.  A MIME type parameter named "profile" or a Link header
-   with a relation of "describedby" SHOULD be used:
-
-
-   Content-Type: application/json;
-                 profile=http://json.com/my-hyper-schema
-
-   or if the content is being transferred by a protocol (such as HTTP)
-
-
-
-Zyp                    Expires September 24, 2010               [Page 6]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-   that provides headers, a Link header can be used:
-
-
-   Link: <http://json.com/my-hyper-schema>; rel="describedby"
-
-   Instances MAY specify multiple schemas, to indicate all the schemas
-   that are applicable to the data.  The instance data may have multiple
-   schemas that it is defined by (the instance data should be valid for
-   those schemas).  Or if the document is a collection of instances, the
-   collection may contain instances from different schemas.  When
-   collections contain heterogeneous instances, the pathStart attribute
-   MAY be specified in the schema to disambiguate which schema should be
-   applied for each item in the collection.
-
-4.1.  Self-Descriptive Schema
-
-   JSON Schemas are themselves instances for the schema schemas.  A
-   self-describing JSON Schema for the core JSON Schema can be found at
-   http://json-schema.org/schema and the hyper schema self-description
-   can be found at: http://json-schema.org/hyper-schema.  All schemas
-   used within a protocol with media type definitions SHOULD include a
-   MIME parameter that refers to the self-descriptive hyper schema or
-   another schema that extends this hyper schema:
-
-
-   Content-Type: application/json;
-                 profile=http://www.json-schema.org/hyper-schema
-
-5.  Core Schema Definition
-
-   A JSON Schema is a JSON Object that defines various attributes of the
-   instance and defines it's usage and valid values.  A JSON Schema is a
-   JSON Object with schema attribute properties.  The following is the
-   grammar of a JSON Schema:
-
-   And an example JSON Schema definition could look like:
-
-
-   {"description":"A person",
-    "type":"object",
-
-    "properties":
-     {"name": {"type":"string"},
-      "age" : {"type":"integer",
-        "maximum":125}}
-   }
-
-   A JSON Schema object may have any of the following properties, called
-
-
-
-Zyp                    Expires September 24, 2010               [Page 7]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-   schema attributes (all attributes are optional):
-
-5.1.  type
-
-      Union type definition - An array with two or more items which
-      indicates a union of type definitions.  Each item in the array may
-      be a simple type definition or a schema.  The instance value is
-      valid if it is of the same type as one the type definitions in the
-      array or if it is valid by one of the schemas in the array.  For
-      example to indicate that a string or number is a valid: {"type":
-      ["string","number"]}
-
-      Simple type definition - A string indicating a primitive or simple
-      type.  The following are acceptable strings:
-
-         string - Value must be a string.
-
-         number - Value must be a number, floating point numbers are
-         allowed.
-
-         integer - Value must be an integer, no floating point numbers
-         are allowed.  This is a subset of the number type.
-
-         boolean - Value must be a boolean.
-
-         object - Value must be an object.
-
-         array - Value must be an array.
-
-         null - Value must be null.  Note this is mainly for purpose of
-         being able use union types to define nullability.
-
-         any - Value may be of any type including null.  If the property
-         is not defined or is not in this list, than any type of value
-         is acceptable.  Other type values may be used for custom
-         purposes, but minimal validators of the specification
-         implementation can allow any instance value on unknown type
-         values.
-
-5.2.  properties
-
-   This should be an object type definition, which is an object with
-   property definitions that correspond to instance object properties.
-   When the instance value is an object, the property values of the
-   instance object must conform to the property definitions in this
-   object.  In this object, each property definition's value should be a
-   schema, and the property's name should be the name of the instance
-   property that it defines.
-
-
-
-Zyp                    Expires September 24, 2010               [Page 8]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-5.3.  items
-
-   This should be a schema or an array of schemas.  When this is an
-   object/schema and the instance value is an array, all the items in
-   the array must conform to this schema.  When this is an array of
-   schemas and the instance value is an array, each position in the
-   instance array must conform to the schema in the corresponding
-   position for this array.  This called tuple typing.  When tuple
-   typing is used, additional items are allowed, disallowed, or
-   constrained by the additionalProperties attribute using the same
-   rules as extra properties for objects.  The default value is an empty
-   schema which allows any value for items in the instance array.
-
-5.4.  optional
-
-   This indicates that the instance property in the instance object is
-   optional.  This is false by default.
-
-5.5.  additionalProperties
-
-   This provides a default property definition for all properties that
-   are not explicitly defined in an object type definition.  The value
-   must be a schema.  If false is provided, no additional properties are
-   allowed, and the schema can not be extended.  The default value is an
-   empty schema which allows any value for additional properties.
-
-5.6.  requires
-
-   This indicates that if this property is present in the containing
-   instance object, the property given by requires attribute must also
-   be present in the containing instance object.  The value of this
-   property may be a string, indicating the require property name.  Or
-   the value may be a schema, in which case the containing instance must
-   be valid by the schema if the property is present.  For example if a
-   object type definition is defined:
-
-
-   {
-     "state":
-     {
-       "optional":true
-     },
-     "town":
-     {
-       "requires":"state",
-       "optional":true
-     }
-   }
-
-
-
-Zyp                    Expires September 24, 2010               [Page 9]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-   An instance must include a state property if a town property is
-   included.  If a town property is not included, the state property is
-   optional.
-
-5.7.  minimum
-
-   This indicates the minimum value for the instance property when the
-   type of the instance value is a number.
-
-5.8.  maximum
-
-   This indicates the minimum value for the instance property when the
-   type of the instance value is a number.
-
-5.9.  minimumCanEqual
-
-   If the minimum is defined, this indicates whether or not the instance
-   property value can equal the minimum.
-
-5.10.  maximumCanEqual
-
-   If the maximum is defined, this indicates whether or not the instance
-   property value can equal the maximum.
-
-5.11.  minItems
-
-   This indicates the minimum number of values in an array when an array
-   is the instance value.
-
-5.12.  maxItems
-
-   This indicates the maximum number of values in an array when an array
-   is the instance value.
-
-5.13.  uniqueItems
-
-   This indicates that all the items in an array must be unique (no two
-   identical values) within that array when an array is the instance
-   value.
-
-5.14.  pattern
-
-   When the instance value is a string, this provides a regular
-   expression that a instance string value should match in order to be
-   valid.  Regular expressions should follow the regular expression
-   specification from ECMA 262/Perl 5
-
-
-
-
-
-Zyp                    Expires September 24, 2010              [Page 10]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-5.15.  maxLength
-
-   When the instance value is a string, this indicates maximum length of
-   the string.
-
-5.16.  minLength
-
-   When the instance value is a string, this indicates minimum length of
-   the string.
-
-5.17.  enum
-
-   This provides an enumeration of possible values that are valid for
-   the instance property.  This should be an array, and each item in the
-   array represents a possible value for the instance value.  If "enum"
-   is included, the instance value must be one of the values in enum
-   array in order for the schema to be valid.
-
-5.18.  title
-
-   This provides a short description of the instance property.  The
-   value must be a string.
-
-5.19.  description
-
-   This provides a full description of the of purpose the instance
-   property.  The value must be a string.
-
-5.20.  format
-
-   This property indicates the type of data, content type, or
-   microformat to be expected in the instance property values.  A format
-   attribute may be one of the values listed below, and if so, should
-   adhere to the semantics describing for the format.  A format should
-   only be used give meaning to primitive types (string, integer,
-   number, or boolean).  Validators are not required to validate that
-   the instance values conform to a format.  The following formats are
-   defined:
-
-      Any valid MIME media type may be used as a format value, in which
-      case the instance property value must be a string, representing
-      the contents of the MIME file.
-
-      date-time - This should be a date in ISO 8601 format of YYYY-MM-
-      DDThh:mm:ssZ in UTC time.  This is the recommended form of date/
-      timestamp.
-
-
-
-
-
-Zyp                    Expires September 24, 2010              [Page 11]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-      date - This should be a date in the format of YYYY-MM-DD.  It is
-      recommended that you use the "date-time" format instead of "date"
-      unless you need to transfer only the date part.
-
-      time - This should be a time in the format of hh:mm:ss.  It is
-      recommended that you use the "date-time" format instead of "time"
-      unless you need to transfer only the time part.
-
-      utc-millisec - This should be the difference, measured in
-      milliseconds, between the specified time and midnight, January 1,
-      1970 UTC.  The value should be a number (integer or float).
-
-      regex - A regular expression.
-
-      color - This is a CSS color (like "#FF0000" or "red").
-
-      style - This is a CSS style definition (like "color: red;
-      background-color:#FFF").
-
-      phone - This should be a phone number (format may follow E.123).
-
-      uri - This value should be a URI..
-
-      email - This should be an email address.
-
-      ip-address - This should be an ip version 4 address.
-
-      ipv6 - This should be an ip version 6 address.
-
-      street-address - This should be a street address.
-
-      locality - This should be a city or town.
-
-      region - This should be a region (a state in the US, province in
-      Canada, etc.)
-
-      postal-code - This should be a postal code (AKA zip code).
-
-      country - This should be the name of a country.
-
-      Additional custom formats may be defined with a URL to a
-      definition of the format.
-
-5.21.  contentEncoding
-
-   If the instance property value is a string, this indicates that the
-   string should be interpreted as binary data and decoded using the
-   encoding named by this schema property.  RFC 2045, Sec 6.1 lists
-
-
-
-Zyp                    Expires September 24, 2010              [Page 12]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-   possible values.
-
-5.22.  default
-
-   This indicates the default for the instance property.
-
-5.23.  divisibleBy
-
-   This indicates that the instance property value must be divisible by
-   the given schema value when the instance property value is a number.
-
-5.24.  disallow
-
-   This attribute may take the same values as the "type" attribute,
-   however if the instance matches the type or if this value is an array
-   and the instance matches any type or schema in the array, than this
-   instance is not valid.
-
-5.25.  extends
-
-   The value of this property should be another schema which will
-   provide a base schema which the current schema will inherit from.
-   The inheritance rules are such that any instance that is valid
-   according to the current schema must be valid according to the
-   referenced schema.  This may also be an array, in which case, the
-   instance must be valid for all the schemas in the array.
-
-6.  Hyper Schema
-
-   This section defines hypermedia definitions of JSON schema.  The
-   following attributes are specified in addition to those attributes
-   that already provided by JSON schema with the specific purpose of
-   informing user agents of relations between resources based on JSON
-   data.  Just as with JSON schema attributes, all the attributes in
-   hyper-schema are optional.  Therefore an empty object is a valid
-   (non-informative) schema, and essentially describes plain JSON (no
-   constraints on the structures).  Addition of attributes provides
-   additive information for user agents.
-
-6.1.  links
-
-   The value of the links property should be an array, where each item
-   in the array is a link description object which describes the link
-   relations of the instances.
-
-
-
-
-
-
-
-Zyp                    Expires September 24, 2010              [Page 13]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-6.1.1.  Link Description Object
-
-   A link description object is used to describe the link relations.  In
-   the context of a schema, it defines the link relations of the
-   instances of the schema, and can be parameterized by the instance
-   values.  The link description format can be used on its own in
-   regular (non-schema documents), and use of this format can be
-   declared by referencing the normative link description schema as the
-   the schema for the data structure that uses the links.  The URI of
-   the normative link description schema is:
-   http://json-schema.org/links.
-
-6.1.1.1.  href
-
-   The value of the "href" link description property indicates the
-   target URI of the related resource.  The value of the instance
-   property should be resolved as a URI-Reference per [RFC3986] and may
-   be a relative URI.  The base URI to be used for relative resolution
-   should be the URI used to retrieve the instance object (not the
-   schema) when used in the context of a schema.  Also, the URI may be
-   parametrized by the property values of the instance object.
-
-   Instance property values should be substituted into the URIs where
-   matching braces ('{', '}') are found surrounding zero or more
-   characters, creating an expanded URI.  Instance property value
-   substitutions are resolved by using the text between the braces to
-   denote the property name from the instance to get the value to
-   substitute.  For example, if an href value is defined:
-
-
-   http://somesite.com/{id}
-
-   Then it would be resolved by replace the value of the "id" property
-   value from the instance object.  If the value of the "id" property
-   was "45", the expanded URI would be:
-
-
-   http://somesite.com/45
-
-   If matching braces are found with the string "-this" (no quotes)
-   between the braces, than the actual instance value should be used to
-   replace the braces, rather than a property value.  This should only
-   be used in situations where the instance is a scalar (string,
-   boolean, or number), and not for objects or arrays.
-
-
-
-
-
-
-
-Zyp                    Expires September 24, 2010              [Page 14]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-6.1.1.2.  rel
-
-   The value of the "rel" property indicates the name of the relation to
-   the target resource.  The relation to the target should be
-   interpreted as specifically from the instance object that the schema
-   (or sub-schema) applies to, not just the top level resource that
-   contains the object within its hierarchy.  If a resource JSON
-   representation contains a sub object with a property interpreted as a
-   link, that sub-object holds the relation with the target.  A relation
-   to target from the top level resource must be indicated with the
-   schema describing the top level JSON representation.
-
-   Relationship definitions SHOULD NOT be media type dependent, and
-   users are encouraged to utilize existing accepted relation
-   definitions, including those in existing relation registries (see
-   &rfc4287).  However, we define these relation here for clarity of
-   normative interpretation within the context of JSON hyper schema
-   defined relations:
-
-      self - If the relation value is "self", when this property is
-      encountered in the instance object, the object represents a
-      resource and the instance object is treated as a full
-      representation of the target resource identified by the specified
-      URI.
-
-      full - This indicates that the target of the link is the full
-      representation for the instance object.  The object that contains
-      this link may not be the full representation.
-
-      describedby - This indicates the target of the link is the schema
-      for the instance object.  This may be used to specifically denote
-      the schemas of objects within a JSON object hierarchy,
-      facilitating polymorphic type data structures.
-
-      The following relations are applicable for schemas (the schema as
-      the "from" resource in the relation).
-
-      instances - This indicates the target resource that represents
-      collection of instances of a schema.
-
-      create - This indicates a target to use for creating new instances
-      of a schema.  This link definition SHOULD be a submission link
-      with a non-safe method (like POST).
-
-   For example, if a schema is defined:
-
-
-
-
-
-
-Zyp                    Expires September 24, 2010              [Page 15]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-   {
-       "links": [
-           {
-                   "rel": "self"
-                   "href": "{id}"
-           },
-           {
-                   "rel": "up"
-                   "href": "{upId}"
-           },
-           {
-                   "rel": "children"
-                   "href": "?upId={id}"
-           }
-       ]
-   }
-
-   And if a collection of instance resource's JSON representation was
-   retrieved:
-
-
-   GET /Resource/
-
-   [
-       {
-           "id": "thing",
-           "upId": "parent"
-       },
-       {
-           "id": "thing2",
-           "upId": "parent"
-       }
-   ]
-
-   This would indicate that for the first item in the collection, it's
-   own (self) URI would resolve to "/Resource/thing" and the first
-   item's "up" relation should be resolved to the resource at
-   "/Resource/parent".  The "children" collection would be located at
-   "/Resource/?upId=thing".
-
-6.1.1.2.1.  targetSchema
-
-   This property value can be a schema that defines the expected
-   structure of the JSON representation of the target of the link.
-
-
-
-
-
-
-
-Zyp                    Expires September 24, 2010              [Page 16]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-6.1.1.3.  Submission Link Properties
-
-   The following properties also apply to link definition objects, and
-   provide functionality analogous to HTML forms, in providing a means
-   for submitting extra (often user supplied) information to send to a
-   server.
-
-6.1.1.3.1.  method
-
-   This indicates which method should be used to access the target
-   resource.  In an HTTP environment, this would be "GET" or "POST"
-   (other HTTP methods such as "PUT" and "DELETE" have semantics that
-   are clearly implied by accessed resources, and do not need to be
-   defined here).  This defaults to "GET".
-
-6.1.1.3.2.  enctype
-
-   If present, this property indicates a query media type format that
-   the server supports for querying or posting to the collection of
-   instances at the target resource.  The query can be suffixed to the
-   target URI to query the collection with property-based constraints on
-   the resources that SHOULD be returned from the server or used to post
-   data to the resource (depending on the method).  For example, with
-   the following schema:
-
-
-   {
-    "links":[
-       {
-         "enctype": "application/x-www-form-urlencoded",
-         "method": "GET",
-         "href": "/Product/",
-         "properties":{
-            "name":{"description":"name of the product"}
-         }
-       }
-     ]
-   }
-
-   This indicates that the client can query the server for instances
-   that have a specific name:
-
-
-   /Product/?name=Slinky
-
-   If no enctype or method is specified, only the single URI specified
-   by the href property is defined.  If the method is POST, application/
-   json is the default media type.
-
-
-
-Zyp                    Expires September 24, 2010              [Page 17]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-6.1.1.3.3.  properties
-
-   This is inherited from the base JSON schema definition, and can
-   follow the same structure, but its meaning should be used to define
-   the acceptable property names and values for the action (whether it
-   be for the GET query or POST body).  If properties are omitted, and
-   this form is the child of a schema, the properties from the parent
-   schema should be used as the basis for the form action.
-
-6.2.  fragmentResolution
-
-   This property indicates the fragment resolution protocol to use for
-   resolving fragment identifiers in URIs within the instance
-   representations.  This applies to the instance object URIs and all
-   children of the instance object's URIs.  The default fragment
-   resolution protocol is "slash-delimited", which is defined below.
-   Other fragment resolution protocols may be used, but are not defined
-   in this document.
-
-   The fragment identifier is based on RFC 2396 Sec 5, and defines the
-   mechanism for resolving references to entities within a document.
-
-6.2.1.  dot-delimited fragment resolution
-
-   With the dot-delimited fragment resolution protocol, the fragment
-   identifier is interpreted as a series of property reference tokens
-   that are delimited by the "." character (\x2E).  Each property
-   reference token is a series of any legal URI component characters
-   except the "." character.  Each property reference token should be
-   interpreted, starting from the beginning of the fragment identifier,
-   as a path reference in the target JSON structure.  The final target
-   value of the fragment can be determined by starting with the root of
-   the JSON structure from the representation of the resource identified
-   by the pre-fragment URI.  If the target is a JSON object, than the
-   new target is the value of the property with the name identified by
-   the next property reference token in the fragment.  If the target is
-   a JSON array, than the target is determined by finding the item in
-   array the array with the index defined by the next property reference
-   token (which MUST be a number).  The target is successively updated
-   for each property reference token, until the entire fragment has been
-   traversed.
-
-   Property names SHOULD be URI-encoded.  In particular, any "." in a
-   property name MUST be encoded to avoid being interpreted as a
-   property delimiter.
-
-   For example, for the following JSON representation:
-
-
-
-
-Zyp                    Expires September 24, 2010              [Page 18]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-   {
-      "foo":{
-         "anArray":[
-           {"prop":44}
-         ],
-         "another prop":{
-             "baz":"A string"
-         }
-      }
-   }
-
-   The following fragment identifiers would be resolved:
-
-
-   fragment identifier    resolution
-   -------------------    ----------
-   #                      self, the root of the resource itself
-   #foo                   the object referred to by the foo property
-   #foo.another prop      the object referred to by the "another prop"
-                          property of the object referred to by the
-                          "foo" property
-   #foo.another prop.baz  the string referred to by the value of "baz"
-                          property of the "another prop" property of
-                          the object referred to by the "foo" property
-   #foo.anArray.0         the first object in the "anArray" array
-
-6.2.2.  slash-delimited fragment resolution
-
-   The slash-delimited fragment resolution protocol is exactly the same
-   as dot-delimited fragment resolution protocol except that the "/"
-   character (\x2F) is used as the delimiter between property names
-   (instead of ".").
-
-6.3.  root
-
-   This attribute indicates that the value of the instance property
-   value SHOULD be treated as the root or the body of the representation
-   for the purposes of user agent interaction and fragment resolution
-   (all other properties of the instance objects are can be regarded as
-   meta-data descriptions for the data).
-
-6.4.  readonly
-
-   This indicates that the instance property should not be changed.
-   Attempts by a user agent to modify the value of this property are
-   expected to be rejected by a server.
-
-
-
-
-
-Zyp                    Expires September 24, 2010              [Page 19]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-6.5.  pathStart
-
-   This property value is a URI-Reference that indicates the URI that
-   all the URIs for the instances of the schema should start with.  When
-   multiple schemas have been referenced for an instance, the user agent
-   can determine if this schema is applicable for a particular instance
-   by determining if URI of the instance begins with the pathStart's
-   referenced URI. pathStart MUST be resolved as per [RFC3986] section
-   5.  If the URI of the instance does not start with URI indicated by
-   pathStart, or if another schema specifies a starting URI that is
-   longer and also matches the instance, this schema should not be
-   applied to the instance.  Any schema that does not have a pathStart
-   attribute should be considered applicable to all the instances for
-   which it is referenced.
-
-6.6.  mediaType
-
-   This indicates the media type of the instance representations that
-   this schema is defining.
-
-6.7.  alternate
-
-   This is an array of JSON schema definitions that define any other
-   schemas for alternate JSON-based representations of the instance
-   resources.
-
-7.  Security Considerations
-
-   This specification is a sub-type of the JSON format, and consequently
-   the security considerations are generally the same as RFC 4627.
-   However, an additional issue is that when link relation of "self" is
-   used to denote a full representation of an object, the user agent
-   SHOULD NOT consider the representation to be the authoritative
-   representation of the resource denoted by the target URI if the
-   target URI is not equivalent to or a sub-path of the the URI used to
-   request the resource representation which contains the target URI
-   with the "self" link.  For example, if a hyper schema was defined:
-
-
-   {
-     "links":[
-           {
-                   "rel":"self",
-                   "href":"{id}"
-           }
-     ]
-   }
-
-
-
-
-Zyp                    Expires September 24, 2010              [Page 20]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-   And a resource was requested from somesite.com:
-
-
-   GET /foo/
-
-   With a response of:
-
-
-Content-Type: application/json; profile=/schema-for-this-data
-[
-  {"id":"bar", "name":"This representation can be safely treated \
-        as authoritative "},
-  {"id":"/baz", "name":"This representation should not be treated as \
-        authoritative the user agent should make request the resource\
-        from "/baz" to ensure it has the authoritative representation"},
-  {"id":"http://othersite.com/something", "name":"This representation\
-        should also not be treated as authoritative and the target\
-        resource representation should be retrieved for the\
-        authoritative representation"}
-]
-
-8.  IANA Considerations
-
-   The proposed MIME media type for JSON Schema is application/
-   schema+json
-
-   Type name: application
-
-   Subtype name: schema+json
-
-   Required parameters: profile
-
-   The value of the profile parameter should be a URI (relative or
-   absolute) that refers to the schema used to define the structure of
-   this structure (the meta-schema).  Normally the value would be
-   http://json-schema.org/hyper-schema, but it is allowable to use other
-   schemas that extend the hyper schema's meta- schema.
-
-   Optional parameters: pretty
-
-   The value of the pretty parameter may be true or false to indicate if
-   additional whitespace has been included to make the JSON
-   representation easier to read.
-
-8.1.  Registry of Link Relations
-
-   This registry is maintained by IANA per RFC 4287 and this
-   specification adds three values: "full", "create", "instances".  New
-
-
-
-Zyp                    Expires September 24, 2010              [Page 21]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-   assignments are subject to IESG Approval, as outlined in [RFC5226].
-   Requests should be made by email to IANA, which will then forward the
-   request to the IESG, requesting approval.
-
-9.  References
-
-9.1.  Normative References
-
-   [RFC3986]                          Berners-Lee, T., Fielding, R., and
-                                      L. Masinter, "Uniform Resource
-                                      Identifier (URI): Generic Syntax",
-                                      STD 66, RFC 3986, January 2005.
-
-   [RFC2119]                          Bradner, S., "Key words for use in
-                                      RFCs to Indicate Requirement
-                                      Levels", BCP 14, RFC 2119,
-                                      March 1997.
-
-   [RFC4287]                          Nottingham, M., Ed. and R. Sayre,
-                                      Ed., "The Atom Syndication
-                                      Format", RFC 4287, December 2005.
-
-   [RFC3339]                          Klyne, G., Ed. and C. Newman,
-                                      "Date and Time on the Internet:
-                                      Timestamps", RFC 3339, July 2002.
-
-   [RFC2045]                          Freed, N. and N. Borenstein,
-                                      "Multipurpose Internet Mail
-                                      Extensions (MIME) Part One: Format
-                                      of Internet Message Bodies",
-                                      RFC 2045, November 1996.
-
-9.2.  Informative References
-
-   [RFC4627]                          Crockford, D., "The application/
-                                      json Media Type for JavaScript
-                                      Object Notation (JSON)", RFC 4627,
-                                      July 2006.
-
-   [RFC2616]                          Fielding, R., Gettys, J., Mogul,
-                                      J., Frystyk, H., Masinter, L.,
-                                      Leach, P., and T. Berners-Lee,
-                                      "Hypertext Transfer Protocol --
-                                      HTTP/1.1", RFC 2616, June 1999.
-
-   [RFC5226]                          Narten, T. and H. Alvestrand,
-                                      "Guidelines for Writing an IANA
-                                      Considerations Section in RFCs",
-
-
-
-Zyp                    Expires September 24, 2010              [Page 22]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-                                      BCP 26, RFC 5226, May 2008.
-
-   [I-D.hammer-discovery]             Hammer-Lahav, E., "LRDD: Link-
-                                      based Resource Descriptor
-                                      Discovery",
-                                      draft-hammer-discovery-04 (work in
-                                      progress), March 2010.
-
-   [I-D.gregorio-uritemplate]         Gregorio, J., Fielding, R.,
-                                      Hadley, M., and M. Nottingham,
-                                      "URI Template",
-                                      draft-gregorio-uritemplate-04
-                                      (work in progress), March 2010.
-
-   [I-D.nottingham-http-link-header]  Nottingham, M., "Web Linking", dra
-                                      ft-nottingham-http-link-header-08
-                                      (work in progress), March 2010.
-
-   [W3C.REC-html401-19991224]         Hors, A., Jacobs, I., and D.
-                                      Raggett, "HTML 4.01
-                                      Specification", World Wide Web
-                                      Consortium Recommendation REC-
-                                      html401-19991224, December 1999, <
-                                      http://www.w3.org/TR/1999/
-                                      REC-html401-19991224>.
-
-Appendix A.  Change Log
-
-   -02
-
-   o  Replaced maxDecimal attribute with divisibleBy attribute
-
-   o  Added slash-delimited fragment resolution protocol and made it the
-      default.
-
-   o  Added language about using links outside of schemas by referencing
-      it's normative URI.
-
-   o  Added uniqueItems attribute
-
-   o  Added targetSchema attribute to link description object
-
-   -01
-
-   o  Fixed category and updates from template
-
-   -00
-
-
-
-
-Zyp                    Expires September 24, 2010              [Page 23]
-\f
-Internet-Draft           JSON Schema Media Type               March 2010
-
-
-   o  Initial draft
-
-Appendix B.  Open Issues
-
-   Should we give a preference to MIME headers over Link headers (or
-   only use one)?
-
-   Should we use "profile" as the media type parameter instead?
-
-   Should "root" be a MIME parameter instead of a schema attribute?
-
-   Should "format" be renamed to "mediaType" or "contentType" to reflect
-   the usage MIME media types that are allowed.
-
-   I still do not like how dates are handled.
-
-   Should "slash-delimited" or "dot-delimited" be the default fragment
-   resolution protocol?
-
-Author's Address
-
-   Kris Zyp (editor)
-   SitePen (USA)
-   530 Lytton Avenue
-   Palo Alto, CA 94301
-   USA
-
-   Phone: +1 650 968 8787
-   EMail: kris@sitepen.com
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Zyp                    Expires September 24, 2010              [Page 24]
-\f
-
diff --git a/doc/rfc4627.txt b/doc/rfc4627.txt
deleted file mode 100644 (file)
index 67b8909..0000000
+++ /dev/null
@@ -1,563 +0,0 @@
-
-
-
-
-
-
-Network Working Group                                       D. Crockford
-Request for Comments: 4627                                      JSON.org
-Category: Informational                                        July 2006
-
-
- The application/json Media Type for JavaScript Object Notation (JSON)
-
-Status of This Memo
-
-   This memo provides information for the Internet community.  It does
-   not specify an Internet standard of any kind.  Distribution of this
-   memo is unlimited.
-
-Copyright Notice
-
-   Copyright (C) The Internet Society (2006).
-
-Abstract
-
-   JavaScript Object Notation (JSON) is a lightweight, text-based,
-   language-independent data interchange format.  It was derived from
-   the ECMAScript Programming Language Standard.  JSON defines a small
-   set of formatting rules for the portable representation of structured
-   data.
-
-1.  Introduction
-
-   JavaScript Object Notation (JSON) is a text format for the
-   serialization of structured data.  It is derived from the object
-   literals of JavaScript, as defined in the ECMAScript Programming
-   Language Standard, Third Edition [ECMA].
-
-   JSON can represent four primitive types (strings, numbers, booleans,
-   and null) and two structured types (objects and arrays).
-
-   A string is a sequence of zero or more Unicode characters [UNICODE].
-
-   An object is an unordered collection of zero or more name/value
-   pairs, where a name is a string and a value is a string, number,
-   boolean, null, object, or array.
-
-   An array is an ordered sequence of zero or more values.
-
-   The terms "object" and "array" come from the conventions of
-   JavaScript.
-
-   JSON's design goals were for it to be minimal, portable, textual, and
-   a subset of JavaScript.
-
-
-
-Crockford                    Informational                      [Page 1]
-\f
-RFC 4627                          JSON                         July 2006
-
-
-1.1.  Conventions Used in This Document
-
-   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
-   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
-   document are to be interpreted as described in [RFC2119].
-
-   The grammatical rules in this document are to be interpreted as
-   described in [RFC4234].
-
-2.  JSON Grammar
-
-   A JSON text is a sequence of tokens.  The set of tokens includes six
-   structural characters, strings, numbers, and three literal names.
-
-   A JSON text is a serialized object or array.
-
-      JSON-text = object / array
-
-   These are the six structural characters:
-
-      begin-array     = ws %x5B ws  ; [ left square bracket
-
-      begin-object    = ws %x7B ws  ; { left curly bracket
-
-      end-array       = ws %x5D ws  ; ] right square bracket
-
-      end-object      = ws %x7D ws  ; } right curly bracket
-
-      name-separator  = ws %x3A ws  ; : colon
-
-      value-separator = ws %x2C ws  ; , comma
-
-   Insignificant whitespace is allowed before or after any of the six
-   structural characters.
-
-      ws = *(
-                %x20 /              ; Space
-                %x09 /              ; Horizontal tab
-                %x0A /              ; Line feed or New line
-                %x0D                ; Carriage return
-            )
-
-2.1.  Values
-
-   A JSON value MUST be an object, array, number, or string, or one of
-   the following three literal names:
-
-      false null true
-
-
-
-Crockford                    Informational                      [Page 2]
-\f
-RFC 4627                          JSON                         July 2006
-
-
-   The literal names MUST be lowercase.  No other literal names are
-   allowed.
-
-         value = false / null / true / object / array / number / string
-
-         false = %x66.61.6c.73.65   ; false
-
-         null  = %x6e.75.6c.6c      ; null
-
-         true  = %x74.72.75.65      ; true
-
-2.2.  Objects
-
-   An object structure is represented as a pair of curly brackets
-   surrounding zero or more name/value pairs (or members).  A name is a
-   string.  A single colon comes after each name, separating the name
-   from the value.  A single comma separates a value from a following
-   name.  The names within an object SHOULD be unique.
-
-      object = begin-object [ member *( value-separator member ) ]
-      end-object
-
-      member = string name-separator value
-
-2.3.  Arrays
-
-   An array structure is represented as square brackets surrounding zero
-   or more values (or elements).  Elements are separated by commas.
-
-      array = begin-array [ value *( value-separator value ) ] end-array
-
-2.4.  Numbers
-
-   The representation of numbers is similar to that used in most
-   programming languages.  A number contains an integer component that
-   may be prefixed with an optional minus sign, which may be followed by
-   a fraction part and/or an exponent part.
-
-   Octal and hex forms are not allowed.  Leading zeros are not allowed.
-
-   A fraction part is a decimal point followed by one or more digits.
-
-   An exponent part begins with the letter E in upper or lowercase,
-   which may be followed by a plus or minus sign.  The E and optional
-   sign are followed by one or more digits.
-
-   Numeric values that cannot be represented as sequences of digits
-   (such as Infinity and NaN) are not permitted.
-
-
-
-Crockford                    Informational                      [Page 3]
-\f
-RFC 4627                          JSON                         July 2006
-
-
-         number = [ minus ] int [ frac ] [ exp ]
-
-         decimal-point = %x2E       ; .
-
-         digit1-9 = %x31-39         ; 1-9
-
-         e = %x65 / %x45            ; e E
-
-         exp = e [ minus / plus ] 1*DIGIT
-
-         frac = decimal-point 1*DIGIT
-
-         int = zero / ( digit1-9 *DIGIT )
-
-         minus = %x2D               ; -
-
-         plus = %x2B                ; +
-
-         zero = %x30                ; 0
-
-2.5.  Strings
-
-   The representation of strings is similar to conventions used in the C
-   family of programming languages.  A string begins and ends with
-   quotation marks.  All Unicode characters may be placed within the
-   quotation marks except for the characters that must be escaped:
-   quotation mark, reverse solidus, and the control characters (U+0000
-   through U+001F).
-
-   Any character may be escaped.  If the character is in the Basic
-   Multilingual Plane (U+0000 through U+FFFF), then it may be
-   represented as a six-character sequence: a reverse solidus, followed
-   by the lowercase letter u, followed by four hexadecimal digits that
-   encode the character's code point.  The hexadecimal letters A though
-   F can be upper or lowercase.  So, for example, a string containing
-   only a single reverse solidus character may be represented as
-   "\u005C".
-
-   Alternatively, there are two-character sequence escape
-   representations of some popular characters.  So, for example, a
-   string containing only a single reverse solidus character may be
-   represented more compactly as "\\".
-
-   To escape an extended character that is not in the Basic Multilingual
-   Plane, the character is represented as a twelve-character sequence,
-   encoding the UTF-16 surrogate pair.  So, for example, a string
-   containing only the G clef character (U+1D11E) may be represented as
-   "\uD834\uDD1E".
-
-
-
-Crockford                    Informational                      [Page 4]
-\f
-RFC 4627                          JSON                         July 2006
-
-
-         string = quotation-mark *char quotation-mark
-
-         char = unescaped /
-                escape (
-                    %x22 /          ; "    quotation mark  U+0022
-                    %x5C /          ; \    reverse solidus U+005C
-                    %x2F /          ; /    solidus         U+002F
-                    %x62 /          ; b    backspace       U+0008
-                    %x66 /          ; f    form feed       U+000C
-                    %x6E /          ; n    line feed       U+000A
-                    %x72 /          ; r    carriage return U+000D
-                    %x74 /          ; t    tab             U+0009
-                    %x75 4HEXDIG )  ; uXXXX                U+XXXX
-
-         escape = %x5C              ; \
-
-         quotation-mark = %x22      ; "
-
-         unescaped = %x20-21 / %x23-5B / %x5D-10FFFF
-
-3.  Encoding
-
-   JSON text SHALL be encoded in Unicode.  The default encoding is
-   UTF-8.
-
-   Since the first two characters of a JSON text will always be ASCII
-   characters [RFC0020], it is possible to determine whether an octet
-   stream is UTF-8, UTF-16 (BE or LE), or UTF-32 (BE or LE) by looking
-   at the pattern of nulls in the first four octets.
-
-           00 00 00 xx  UTF-32BE
-           00 xx 00 xx  UTF-16BE
-           xx 00 00 00  UTF-32LE
-           xx 00 xx 00  UTF-16LE
-           xx xx xx xx  UTF-8
-
-4.  Parsers
-
-   A JSON parser transforms a JSON text into another representation.  A
-   JSON parser MUST accept all texts that conform to the JSON grammar.
-   A JSON parser MAY accept non-JSON forms or extensions.
-
-   An implementation may set limits on the size of texts that it
-   accepts.  An implementation may set limits on the maximum depth of
-   nesting.  An implementation may set limits on the range of numbers.
-   An implementation may set limits on the length and character contents
-   of strings.
-
-
-
-
-Crockford                    Informational                      [Page 5]
-\f
-RFC 4627                          JSON                         July 2006
-
-
-5. Generators
-
-   A JSON generator produces JSON text.  The resulting text MUST
-   strictly conform to the JSON grammar.
-
-6. IANA Considerations
-
-   The MIME media type for JSON text is application/json.
-
-   Type name: application
-
-   Subtype name: json
-
-   Required parameters: n/a
-
-   Optional parameters: n/a
-
-   Encoding considerations: 8bit if UTF-8; binary if UTF-16 or UTF-32
-
-      JSON may be represented using UTF-8, UTF-16, or UTF-32.  When JSON
-      is written in UTF-8, JSON is 8bit compatible.  When JSON is
-      written in UTF-16 or UTF-32, the binary content-transfer-encoding
-      must be used.
-
-   Security considerations:
-
-   Generally there are security issues with scripting languages.  JSON
-   is a subset of JavaScript, but it is a safe subset that excludes
-   assignment and invocation.
-
-   A JSON text can be safely passed into JavaScript's eval() function
-   (which compiles and executes a string) if all the characters not
-   enclosed in strings are in the set of characters that form JSON
-   tokens.  This can be quickly determined in JavaScript with two
-   regular expressions and calls to the test and replace methods.
-
-      var my_JSON_object = !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
-             text.replace(/"(\\.|[^"\\])*"/g, ''))) &&
-         eval('(' + text + ')');
-
-   Interoperability considerations: n/a
-
-   Published specification: RFC 4627
-
-
-
-
-
-
-
-
-Crockford                    Informational                      [Page 6]
-\f
-RFC 4627                          JSON                         July 2006
-
-
-   Applications that use this media type:
-
-      JSON has been used to exchange data between applications written
-      in all of these programming languages: ActionScript, C, C#,
-      ColdFusion, Common Lisp, E, Erlang, Java, JavaScript, Lua,
-      Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Scheme.
-
-   Additional information:
-
-      Magic number(s): n/a
-      File extension(s): .json
-      Macintosh file type code(s): TEXT
-
-   Person & email address to contact for further information:
-      Douglas Crockford
-      douglas@crockford.com
-
-   Intended usage: COMMON
-
-   Restrictions on usage: none
-
-   Author:
-      Douglas Crockford
-      douglas@crockford.com
-
-   Change controller:
-      Douglas Crockford
-      douglas@crockford.com
-
-7. Security Considerations
-
-   See Security Considerations in Section 6.
-
-8. Examples
-
-   This is a JSON object:
-
-   {
-      "Image": {
-          "Width":  800,
-          "Height": 600,
-          "Title":  "View from 15th Floor",
-          "Thumbnail": {
-              "Url":    "http://www.example.com/image/481989943",
-              "Height": 125,
-              "Width":  "100"
-          },
-          "IDs": [116, 943, 234, 38793]
-
-
-
-Crockford                    Informational                      [Page 7]
-\f
-RFC 4627                          JSON                         July 2006
-
-
-        }
-   }
-
-   Its Image member is an object whose Thumbnail member is an object
-   and whose IDs member is an array of numbers.
-
-   This is a JSON array containing two objects:
-
-   [
-      {
-         "precision": "zip",
-         "Latitude":  37.7668,
-         "Longitude": -122.3959,
-         "Address":   "",
-         "City":      "SAN FRANCISCO",
-         "State":     "CA",
-         "Zip":       "94107",
-         "Country":   "US"
-      },
-      {
-         "precision": "zip",
-         "Latitude":  37.371991,
-         "Longitude": -122.026020,
-         "Address":   "",
-         "City":      "SUNNYVALE",
-         "State":     "CA",
-         "Zip":       "94085",
-         "Country":   "US"
-      }
-   ]
-
-9. References
-
-9.1.  Normative References
-
-   [ECMA]    European Computer Manufacturers Association, "ECMAScript
-             Language Specification 3rd Edition", December 1999,
-             <http://www.ecma-international.org/publications/files/
-             ecma-st/ECMA-262.pdf>.
-
-   [RFC0020] Cerf, V., "ASCII format for network interchange", RFC 20,
-             October 1969.
-
-   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
-             Requirement Levels", BCP 14, RFC 2119, March 1997.
-
-   [RFC4234] Crocker, D. and P.  Overell, "Augmented BNF for Syntax
-             Specifications: ABNF", RFC 4234, October 2005.
-
-
-
-Crockford                    Informational                      [Page 8]
-\f
-RFC 4627                          JSON                         July 2006
-
-
-   [UNICODE] The Unicode Consortium, "The Unicode Standard Version 4.0",
-             2003, <http://www.unicode.org/versions/Unicode4.1.0/>.
-
-Author's Address
-
-   Douglas Crockford
-   JSON.org
-   EMail: douglas@crockford.com
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Crockford                    Informational                      [Page 9]
-\f
-RFC 4627                          JSON                         July 2006
-
-
-Full Copyright Statement
-
-   Copyright (C) The Internet Society (2006).
-
-   This document is subject to the rights, licenses and restrictions
-   contained in BCP 78, and except as set forth therein, the authors
-   retain all their rights.
-
-   This document and the information contained herein are provided on an
-   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
-   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
-   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
-   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
-   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
-   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-Intellectual Property
-
-   The IETF takes no position regarding the validity or scope of any
-   Intellectual Property Rights or other rights that might be claimed to
-   pertain to the implementation or use of the technology described in
-   this document or the extent to which any license under such rights
-   might or might not be available; nor does it represent that it has
-   made any independent effort to identify any such rights.  Information
-   on the procedures with respect to rights in RFC documents can be
-   found in BCP 78 and BCP 79.
-
-   Copies of IPR disclosures made to the IETF Secretariat and any
-   assurances of licenses to be made available, or the result of an
-   attempt made to obtain a general license or permission for the use of
-   such proprietary rights by implementers or users of this
-   specification can be obtained from the IETF on-line IPR repository at
-   http://www.ietf.org/ipr.
-
-   The IETF invites any interested party to bring to its attention any
-   copyrights, patents or patent applications, or other proprietary
-   rights that may cover technology that may be required to implement
-   this standard.  Please address the information to the IETF at
-   ietf-ipr@ietf.org.
-
-Acknowledgement
-
-   Funding for the RFC Editor function is provided by the IETF
-   Administrative Support Activity (IASA).
-
-
-
-
-
-
-
-Crockford                    Informational                     [Page 10]
-\f
diff --git a/json-glib.doap b/json-glib.doap
deleted file mode 100644 (file)
index 82ab5a7..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-         xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
-         xmlns:foaf="http://xmlns.com/foaf/0.1/"
-         xmlns:gnome="http://api.gnome.org/doap-extensions#"
-         xmlns="http://usefulinc.com/ns/doap#">
-  <name>JSON-GLib</name>
-  <shortname>json-glib</shortname>
-  <shortdesc>GLib-based JSON manipulation library</shortdesc>
-  <description>JSON-GLib implements a full JSON parser using GLib and GObject. Use JSON-GLib it is possible to parse and generate valid JSON data structures, using a DOM-like API. JSON-GLib also offers GObject integration, providing the ability to serialize and deserialize GObject instances to and from JSON data types.</description>
-
-  <homepage rdf:resource="https://wiki.gnome.org/Projects/JsonGlib"/>
-  <license rdf:resource="http://spdx.org/licenses/LGPL-2.1+"/>
-  <download-page rdf:resource="http://download.gnome.org/sources/json-glib/"/>
-  <bug-database rdf:resource="https://gitlab.gnome.org/GNOME/json-glib/issues/" />
-  <repository>
-    <GitRepository>
-      <location rdf:resource="https://gitlab.gnome.org/GNOME/json-glib.git"/>
-      <browse rdf:resource="https://gitlab.gnome.org/GNOME/json-glib/"/>
-    </GitRepository>
-  </repository>
-
-  <category rdf:resource="http://api.gnome.org/doap-extensions#core"/>
-
-  <programming-language>C</programming-language>
-
-  <maintainer>
-    <foaf:Person>
-      <foaf:name>Emmanuele Bassi</foaf:name>
-      <foaf:mbox rdf:resource="mailto:ebassi@gnome.org"/>
-      <gnome:userid>ebassi</gnome:userid>
-    </foaf:Person>
-  </maintainer>
-
-  <author>
-    <foaf:Person>
-      <foaf:name>Emmanuele Bassi</foaf:name>
-      <foaf:mbox rdf:resource="mailto:ebassi@gnome.org"/>
-      <gnome:userid>ebassi</gnome:userid>
-    </foaf:Person>
-  </author>
-
-</Project>
index da07c46..7b39290 100644 (file)
@@ -9,8 +9,8 @@
 
 /*** BEGIN file-production ***/
 
-/* enumerations from "@filename@" */
-#include "@filename@"
+/* enumerations from "@basename@" */
+#include "@basename@"
 
 /*** END file-production ***/
 
index 4e08848..4a560d8 100644 (file)
@@ -970,7 +970,7 @@ json_parser_new_immutable (void)
 
 static gboolean
 json_parser_load (JsonParser   *parser,
-                  const gchar  *data,
+                  const gchar  *input_data,
                   gsize         length,
                   GError      **error)
 {
@@ -979,6 +979,7 @@ json_parser_load (JsonParser   *parser,
   gboolean done;
   gboolean retval = TRUE;
   gint i;
+  gchar *data = input_data;
 
   json_parser_clear (parser);
 
@@ -991,6 +992,19 @@ json_parser_load (JsonParser   *parser,
       return FALSE;
     }
 
+  if (length >= 3)
+    {
+      /* Check for UTF-8 signature and skip it if necessary */
+       if (((data[0] & 0xFF) == 0xEF) &&
+           ((data[1] & 0xFF) == 0xBB) &&
+           ((data[2] & 0xFF) == 0xBF))
+         {
+           JSON_NOTE (PARSER, "Skipping BOM");
+           data += 3;
+           length -= 3;
+         }
+    }
+
   scanner = json_scanner_create (parser);
   json_scanner_input_text (scanner, data, length);
 
index 59dd29c..e9a58be 100644 (file)
 #include <io.h> /* For _read() */
 #endif
 
+enum {
+  JSON_ERR_MALFORMED_SURROGATE_PAIR = G_TOKEN_LAST + 1,
+};
+
 struct _JsonScannerConfig
 {
   /* Character sets
@@ -681,7 +685,11 @@ json_scanner_unexp_token (JsonScanner *scanner,
        case G_ERR_DIGIT_RADIX:
          g_snprintf (token_string, token_string_len, "scanner: digit is beyond radix");
          break;
-         
+
+       case JSON_ERR_MALFORMED_SURROGATE_PAIR:
+         g_snprintf (token_string, token_string_len, "scanner: malformed surrogate pair");
+         break;
+
        case G_ERR_UNKNOWN:
        default:
          g_snprintf (token_string, token_string_len, "scanner: unknown error");
@@ -1066,7 +1074,7 @@ json_scanner_get_token_ll (JsonScanner *scanner,
          gstring = g_string_new (NULL);
          while ((ch = json_scanner_get_char (scanner, line_p, position_p)) != 0)
            {
-             if (ch == '"')
+             if (ch == '"' || token == G_TOKEN_ERROR)
                {
                  in_string_dq = FALSE;
                  break;
@@ -1130,8 +1138,20 @@ json_scanner_get_token_ll (JsonScanner *scanner,
                                       units[0] = ucs;
                                       units[1] = json_scanner_get_unichar (scanner, line_p, position_p);
 
-                                      ucs = decode_utf16_surrogate_pair (units);
-                                      g_assert (g_unichar_validate (ucs));
+                                      if (0xdc00 <= units[1] && units[1] <= 0xdfff &&
+                                          0xd800 <= units[0] && units[0] <= 0xdbff)
+                                        {
+                                          ucs = decode_utf16_surrogate_pair (units);
+                                          g_assert (g_unichar_validate (ucs));
+                                        }
+                                      else
+                                        {
+                                          token = G_TOKEN_ERROR;
+                                          value.v_error = JSON_ERR_MALFORMED_SURROGATE_PAIR;
+                                          gstring = NULL;
+                                          break;
+                                        }
+
                                     }
                                 }
 
index 0ab2d30..cb5f818 100644 (file)
@@ -212,6 +212,9 @@ static const struct
 
   /* values */
   { "values-1", "[ -false ]", test_invalid_value },
+  { "values-2", "[\"\\uD800\\uD800\"]", test_invalid_value },
+  { "values-3", "[\"\\uDB00\\uD800\"]", test_invalid_value },
+  { "values-4", "[\"\\uDB00\"]", test_invalid_value },
 
   /* assignment */
   { "assignment-1", "var foo", test_invalid_assignment },
index 7fdbc3f..1eb56c8 100644 (file)
@@ -17,6 +17,7 @@ tests = [
 
 test_data = [
   'invalid.json',
+  'skip-bom.json',
   'stream-load.json',
 ]
 
index d0a046b..67a81c3 100644 (file)
@@ -212,6 +212,32 @@ test_reader_null_value (void)
   g_object_unref (parser);
 }
 
+/* test_reader_skip_bom: Ensure that a BOM Unicode character is skipped when parsing */
+static void
+test_reader_skip_bom (void)
+{
+  JsonParser *parser = json_parser_new ();
+  JsonReader *reader = json_reader_new (NULL);
+  GError *error = NULL;
+  char *path;
+
+  path = g_test_build_filename (G_TEST_DIST, "skip-bom.json", NULL);
+
+  json_parser_load_from_mapped_file (parser, path, &error);
+  g_assert_no_error (error);
+
+  json_reader_set_root (reader, json_parser_get_root (parser));
+
+  json_reader_read_member (reader, "appName");
+  g_assert_true (json_reader_is_value (reader));
+  g_assert_no_error (json_reader_get_error (reader));
+  g_assert_cmpstr (json_reader_get_string_value (reader), ==, "String starts with BOM");
+
+  g_free (path);
+  g_object_unref (reader);
+  g_object_unref (parser);
+}
+
 int
 main (int   argc,
       char *argv[])
@@ -223,6 +249,7 @@ main (int   argc,
   g_test_add_func ("/reader/base-object", test_base_object);
   g_test_add_func ("/reader/level", test_reader_level);
   g_test_add_func ("/reader/null-value", test_reader_null_value);
+  g_test_add_func ("/reader/bom", test_reader_skip_bom);
 
   return g_test_run ();
 }
diff --git a/json-glib/tests/skip-bom.json b/json-glib/tests/skip-bom.json
new file mode 100644 (file)
index 0000000..1546695
--- /dev/null
@@ -0,0 +1,3 @@
+{
+       "appName": "String starts with BOM"
+}
index 72aa537..5613ca5 100644 (file)
@@ -1,4 +1,4 @@
-project('json-glib', 'c', version: '1.6.0',
+project('json-glib', 'c', version: '1.6.2',
         license: 'LGPLv2.1+',
         default_options: [
           'warning_level=1',
diff --git a/po/.gitignore b/po/.gitignore
deleted file mode 100644 (file)
index 9ac1987..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/Makefile.in.in
-/Makevars.template
-/POTFILES
-/Rules-quot
-/boldquot.sed
-/en@boldquot.header
-/en@quot.header
-/insert-header.sin
-/quot.sed
-/remove-potcdate.sed
-/remove-potcdate.sin
-/stamp-po
-*.gmo
-*.pot
index 0c0edd8..1f68e26 100644 (file)
@@ -1,4 +1,5 @@
 as
+be
 bg
 bn_IN
 bs
diff --git a/po/be.po b/po/be.po
new file mode 100644 (file)
index 0000000..0d59b54
--- /dev/null
+++ b/po/be.po
@@ -0,0 +1,278 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: 98e6872775a91bf27122ff608b6db605\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/json-glib/issues\n"
+"POT-Creation-Date: 2020-10-03 17:18+0000\n"
+"PO-Revision-Date: 2020-10-07 11:06\n"
+"Last-Translator: Zander Brown <zbrown@gnome.org>\n"
+"Language-Team: Belarusian\n"
+"Language: be_BY\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || n%10>=5 && n%10<=9 || n"
+"%100>=11 && n%100<=14 ? 2 : 3);\n"
+"X-Generator: Gtranslator 3.32.1\n"
+"X-Crowdin-Project: 98e6872775a91bf27122ff608b6db605\n"
+"X-Crowdin-Project-ID: 2\n"
+"X-Crowdin-Language: be\n"
+"X-Crowdin-File: /master/sources/json-glib-1.0/en_GB.po\n"
+"X-Crowdin-File-ID: 130\n"
+
+#: json-glib/json-glib-format.c:58
+msgid "Prettify output"
+msgstr "Выводзіць зручным для чытання"
+
+#: json-glib/json-glib-format.c:59
+msgid "Indentation spaces"
+msgstr "Водступы"
+
+#: json-glib/json-glib-format.c:59
+msgid "SPACES"
+msgstr "ПРАГАЛЫ"
+
+#: json-glib/json-glib-format.c:60
+msgid "Output file"
+msgstr "Выходны файл"
+
+#: json-glib/json-glib-format.c:60 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: json-glib/json-glib-format.c:61
+msgid "FILE…"
+msgstr "ФАЙЛ…"
+
+#. Translators: the first %s is the program name, the second one
+#. * is the URI of the file, the third is the error message.
+#.
+#: json-glib/json-glib-format.c:87 json-glib/json-glib-format.c:123
+#: json-glib/json-glib-validate.c:63
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: не атрымалася адкрыць файл: %s\n"
+
+#. Translators: the first %s is the program name, the second one
+#. * is the URI of the file, the third is the error message.
+#.
+#: json-glib/json-glib-format.c:101 json-glib/json-glib-validate.c:75
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: не атрымалася разабраць файл: %s\n"
+
+#. Translators: the first %s is the program name, the
+#. * second one is the URI of the file.
+#.
+#: json-glib/json-glib-format.c:143
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: не атрымалася запісаць у stdout"
+
+#. Translators: the first %s is the program name, the second one
+#. * is the URI of the file, the third is the error message.
+#.
+#: json-glib/json-glib-format.c:167 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: не атрымалася закрыць: %s\n"
+
+#. Translators: this message will appear after the usage string
+#. and before the list of options.
+#: json-glib/json-glib-format.c:203
+msgid "Format JSON files."
+msgstr "Фармат файлаў JSON."
+
+#: json-glib/json-glib-format.c:204
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format фарматуе рэсурсы JSON."
+
+#. Translators: the %s is the program name. This error message
+#. * means the user is calling json-glib-validate without any
+#. * argument.
+#.
+#: json-glib/json-glib-format.c:219 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Не атрымалася разабраць параметры загаднага радка: %s\n"
+
+#: json-glib/json-glib-format.c:221 json-glib/json-glib-format.c:235
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try “%s --help” for more information."
+msgstr "Выкарыстайце “%s --help”, каб атрымаць больш падрабязную інфармацыю."
+
+#. Translators: the %s is the program name. This error message
+#. * means the user is calling json-glib-validate without any
+#. * argument.
+#.
+#: json-glib/json-glib-format.c:233 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: адсутнічаюць файлы"
+
+#. Translators: this message will appear after the usage string
+#. and before the list of options.
+#: json-glib/json-glib-validate.c:118
+msgid "Validate JSON files."
+msgstr "Праверка файлаў JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate правярае даныя JSON па вызначанаму URI."
+
+#. translators: the %s is the name of the data structure
+#: json-glib/json-gobject.c:935
+#, c-format
+msgid "Expecting a JSON object, but the root node is of type “%s”"
+msgstr "Чакаўся аб’ект JSON object, але каранёвы вузел мае тып “%s”"
+
+#. translators: the '%s' is the type name
+#: json-glib/json-gvariant.c:524
+#, c-format
+msgid "Unexpected type “%s” in JSON node"
+msgstr "Нечаканы тып “%s” у вузле JSON"
+
+#: json-glib/json-gvariant.c:594
+msgid "Missing elements in JSON array to conform to a tuple"
+msgstr "У масіве JSON адсутнічаюць элементы для адпаведнасці картэжу"
+
+#: json-glib/json-gvariant.c:622
+msgid "Missing closing symbol “)” in the GVariant tuple type"
+msgstr "У тыпе картэжу GVariant адсутнічае закрыўная дужка \")\""
+
+#: json-glib/json-gvariant.c:630
+msgid "Unexpected extra elements in JSON array"
+msgstr "Нечаканыя дадатковыя элементы ў масіве JSON"
+
+#: json-glib/json-gvariant.c:931
+msgid "Invalid string value converting to GVariant"
+msgstr "Хібнае значэнне радка для пераўтварэння ў GVariant"
+
+#: json-glib/json-gvariant.c:986
+msgid ""
+"A GVariant dictionary entry expects a JSON object with exactly one member"
+msgstr "Запіс слоўніка GVariant мусіць быць аб’ектам JSON з адзіным складнікам"
+
+#: json-glib/json-gvariant.c:1264
+#, c-format
+msgid "GVariant class “%c” not supported"
+msgstr "Клас GVariant “%c” не падтрымліваецца"
+
+#: json-glib/json-gvariant.c:1312
+msgid "Invalid GVariant signature"
+msgstr "Хібны подпіс GVariant"
+
+#: json-glib/json-gvariant.c:1360
+msgid "JSON data is empty"
+msgstr "Даныя JSON адсутнічаюць"
+
+#. translators: %s: is the file name, the first %d is the line
+#. * number, the second %d is the position on the line, and %s is
+#. * the error message
+#.
+#: json-glib/json-parser.c:906
+#, c-format
+msgid "%s:%d:%d: Parse error: %s"
+msgstr "%s:%d:%d: не атрымалася разабраць: %s"
+
+#: json-glib/json-parser.c:989
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Даныя JSON мусяць быць закадаваныя ў UTF-8"
+
+#: json-glib/json-path.c:389
+msgid "Only one root node is allowed in a JSONPath expression"
+msgstr "У выразе JSONPath мусіць быць толькі адзін каранёвы вузел"
+
+#. translators: the %c is the invalid character
+#: json-glib/json-path.c:398
+#, c-format
+msgid "Root node followed by invalid character “%c”"
+msgstr "За каранёвым вузлом ідзе хібны сімвал “%c”"
+
+#: json-glib/json-path.c:438
+msgid "Missing member name or wildcard after . character"
+msgstr "Пасля сімвала \".\" адсутнічае назва складніка альбо шаблон"
+
+#: json-glib/json-path.c:512
+#, c-format
+msgid "Malformed slice expression “%*s”"
+msgstr "Хібны выраз часткі “%*s”"
+
+#: json-glib/json-path.c:556
+#, c-format
+msgid "Invalid set definition “%*s”"
+msgstr "Хібнае вызначэнне набору “%*s”"
+
+#: json-glib/json-path.c:609
+#, c-format
+msgid "Invalid slice definition “%*s”"
+msgstr "Хібнае вызначэнне часткі “%*s”"
+
+#: json-glib/json-path.c:637
+#, c-format
+msgid "Invalid array index definition “%*s”"
+msgstr "Хібнае вызначэнне індэксу масіву “%*s”"
+
+#: json-glib/json-path.c:656
+#, c-format
+msgid "Invalid first character “%c”"
+msgstr "Хібны першы сімвал “%c”"
+
+#: json-glib/json-reader.c:474
+#, c-format
+msgid ""
+"The current node is of type “%s”, but an array or an object was expected."
+msgstr "У бягучага вузла тып “%s”, а чакаўся аб’ект альбо масіў."
+
+#: json-glib/json-reader.c:486
+#, c-format
+msgid ""
+"The index “%d” is greater than the size of the array at the current position."
+msgstr "Індэкс “%d” большы за памер масіву на бягучай пазіцыі."
+
+#: json-glib/json-reader.c:503
+#, c-format
+msgid ""
+"The index “%d” is greater than the size of the object at the current "
+"position."
+msgstr "Індэкс “%d” большы за памер аб’екта на бягучай пазіцыі."
+
+#: json-glib/json-reader.c:585 json-glib/json-reader.c:751
+#: json-glib/json-reader.c:799 json-glib/json-reader.c:837
+#: json-glib/json-reader.c:875 json-glib/json-reader.c:913
+#: json-glib/json-reader.c:951 json-glib/json-reader.c:996
+#: json-glib/json-reader.c:1032 json-glib/json-reader.c:1058
+msgid "No node available at the current position"
+msgstr "На бягучай пазіцыі няма даступных вузлоў"
+
+#: json-glib/json-reader.c:592
+#, c-format
+msgid "The current position holds a “%s” and not an array"
+msgstr "На бягучай пазіцыі знаходзіцца “%s”, а не масіў"
+
+#: json-glib/json-reader.c:668
+#, c-format
+msgid "The current node is of type “%s”, but an object was expected."
+msgstr "У бягучага вузла тып “%s”, а чакаўся аб’ект."
+
+#: json-glib/json-reader.c:675
+#, c-format
+msgid "The member “%s” is not defined in the object at the current position."
+msgstr "Складнік \"%s\" не вызначаны ў аб’екце на бягучай пазіцыі."
+
+#: json-glib/json-reader.c:758 json-glib/json-reader.c:806
+#, c-format
+msgid "The current position holds a “%s” and not an object"
+msgstr "На бягучай пазіцыі знаходзіцца “%s”, а не аб’ект"
+
+#: json-glib/json-reader.c:846 json-glib/json-reader.c:884
+#: json-glib/json-reader.c:922 json-glib/json-reader.c:960
+#: json-glib/json-reader.c:1005
+#, c-format
+msgid "The current position holds a “%s” and not a value"
+msgstr "На бягучай пазіцыі знаходзіцца “%s”, а не значэнне"
+
+#: json-glib/json-reader.c:968
+msgid "The current position does not hold a string type"
+msgstr "Бягучая пазіцыя не змяшчае тыпу радка"
index aba2d47..501ef26 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -4,35 +4,53 @@
 # Duarte Loreto <happyguy_pt@hotmail.com>, 2012, 2013, 2014.\r
 # \r
 # Pedro Albuquerque <palbuquerque73@openmailbox.com>, 2015.
+# Juliano de Souza Camargo <julianosc@protonmail.com>, 2020.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: 3.12\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
-"glib&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2015-06-07 22:10+0000\n"
-"PO-Revision-Date: 2015-06-25 09:43+0100\n"
-"Last-Translator: Pedro Albuquerque <palbuquerque73@openmailbox.com>\n"
-"Language-Team: Português <palbuquerque73@openmailbox.com>\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/json-glib/issues\n"
+"POT-Creation-Date: 2020-06-16 13:37+0000\n"
+"PO-Revision-Date: 2020-09-11 20:45-0300\n"
+"Last-Translator: Juliano de Souza Camargo <julianosc@protonmail.com>\n"
+"Language-Team: Portuguese <>\n"
 "Language: pt\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Gtranslator 2.91.6\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"X-Generator: Gtranslator 3.36.0\n"
 
-#: ../json-glib/json-glib-format.c:50
+#: json-glib/json-glib-format.c:58
 msgid "Prettify output"
 msgstr "Embelezar resultado"
 
-#: ../json-glib/json-glib-format.c:51
+#: json-glib/json-glib-format.c:59
 msgid "Indentation spaces"
 msgstr "Espaços da indentação"
 
+#: json-glib/json-glib-format.c:59
+msgid "SPACES"
+msgstr "ESPAÇOS"
+
+#: json-glib/json-glib-format.c:60
+msgid "Output file"
+msgstr "Ficheiro de saída"
+
+#: json-glib/json-glib-format.c:60 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FICHEIRO"
+
+#: json-glib/json-glib-format.c:61
+#| msgid "FILE"
+msgid "FILE…"
+msgstr "FICHEIRO..."
+
 #. Translators: the first %s is the program name, the second one
 #. * is the URI of the file, the third is the error message.
 #.
-#: ../json-glib/json-glib-format.c:77 ../json-glib/json-glib-validate.c:63
+#: json-glib/json-glib-format.c:87 json-glib/json-glib-format.c:120
+#: json-glib/json-glib-validate.c:63
 #, c-format
 msgid "%s: %s: error opening file: %s\n"
 msgstr "%s: %s: erro ao abrir ficheiro: %s\n"
@@ -40,7 +58,7 @@ msgstr "%s: %s: erro ao abrir ficheiro: %s\n"
 #. Translators: the first %s is the program name, the second one
 #. * is the URI of the file, the third is the error message.
 #.
-#: ../json-glib/json-glib-format.c:89 ../json-glib/json-glib-validate.c:75
+#: json-glib/json-glib-format.c:99 json-glib/json-glib-validate.c:75
 #, c-format
 msgid "%s: %s: error parsing file: %s\n"
 msgstr "%s: %s: erro ao processar ficheiro: %s\n"
@@ -48,7 +66,7 @@ msgstr "%s: %s: erro ao processar ficheiro: %s\n"
 #. Translators: the first %s is the program name, the
 #. * second one is the URI of the file.
 #.
-#: ../json-glib/json-glib-format.c:108
+#: json-glib/json-glib-format.c:138
 #, c-format
 msgid "%s: %s: error writing to stdout"
 msgstr "%s: %s: erro ao escrever para stdout"
@@ -56,22 +74,18 @@ msgstr "%s: %s: erro ao escrever para stdout"
 #. Translators: the first %s is the program name, the second one
 #. * is the URI of the file, the third is the error message.
 #.
-#: ../json-glib/json-glib-format.c:128 ../json-glib/json-glib-validate.c:87
+#: json-glib/json-glib-format.c:159 json-glib/json-glib-validate.c:87
 #, c-format
 msgid "%s: %s: error closing: %s\n"
 msgstr "%s: %s: erro ao fechar: %s\n"
 
-#: ../json-glib/json-glib-format.c:157 ../json-glib/json-glib-validate.c:115
-msgid "FILE"
-msgstr "FICHEIRO"
-
 #. Translators: this message will appear after the usage string
 #. and before the list of options.
-#: ../json-glib/json-glib-format.c:160
+#: json-glib/json-glib-format.c:192
 msgid "Format JSON files."
 msgstr "Formatar ficheiros JSON."
 
-#: ../json-glib/json-glib-format.c:161
+#: json-glib/json-glib-format.c:193
 msgid "json-glib-format formats JSON resources."
 msgstr "json-glib-format formata recursos JSON."
 
@@ -79,183 +93,215 @@ msgstr "json-glib-format formata recursos JSON."
 #. * means the user is calling json-glib-validate without any
 #. * argument.
 #.
-#: ../json-glib/json-glib-format.c:178 ../json-glib/json-glib-validate.c:136
+#: json-glib/json-glib-format.c:208 json-glib/json-glib-validate.c:136
 #, c-format
 msgid "Error parsing commandline options: %s\n"
 msgstr "Erro ao processar opções de linha de comandos: %s\n"
 
-#: ../json-glib/json-glib-format.c:180 ../json-glib/json-glib-format.c:194
-#: ../json-glib/json-glib-validate.c:138 ../json-glib/json-glib-validate.c:152
+#: json-glib/json-glib-format.c:210 json-glib/json-glib-format.c:224
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
 #, c-format
-msgid "Try \"%s --help\" for more information."
-msgstr "Tente \"%s --help\" para mais informações."
+#| msgid "Try \"%s --help\" for more information."
+msgid "Try “%s --help” for more information."
+msgstr "Tente “%s --help” para mais informações."
 
 #. Translators: the %s is the program name. This error message
 #. * means the user is calling json-glib-validate without any
 #. * argument.
 #.
-#: ../json-glib/json-glib-format.c:192 ../json-glib/json-glib-validate.c:150
+#: json-glib/json-glib-format.c:222 json-glib/json-glib-validate.c:150
 #, c-format
 msgid "%s: missing files"
 msgstr "%s: faltam ficheiros"
 
 #. Translators: this message will appear after the usage string
 #. and before the list of options.
-#: ../json-glib/json-glib-validate.c:118
+#: json-glib/json-glib-validate.c:118
 msgid "Validate JSON files."
 msgstr "Validar ficheiros JSON."
 
-#: ../json-glib/json-glib-validate.c:119
+#: json-glib/json-glib-validate.c:119
 msgid "json-glib-validate validates JSON data at the given URI."
 msgstr "json-glib-validate valida dados JSON no URI indicado."
 
-#: ../json-glib/json-gobject.c:943
+#. translators: the %s is the name of the data structure
+#: json-glib/json-gobject.c:940
 #, c-format
-msgid "Expecting a JSON object, but the root node is of type `%s'"
-msgstr "Esperado um objeto JSON, mas o nó raiz é do tipo \"%s\""
+#| msgid "Expecting a JSON object, but the root node is of type `%s'"
+msgid "Expecting a JSON object, but the root node is of type “%s”"
+msgstr "Esperado um objeto JSON, mas o nó raiz é do tipo “%s”"
 
-#: ../json-glib/json-gvariant.c:523
+#. translators: the '%s' is the type name
+#: json-glib/json-gvariant.c:524
 #, c-format
-msgid "Unexpected type '%s' in JSON node"
-msgstr "Tipo \"%s\" inesperado no nó JSON"
+#| msgid "Unexpected type '%s' in JSON node"
+msgid "Unexpected type “%s” in JSON node"
+msgstr "Tipo “%s” inesperado no nó JSON"
 
-#: ../json-glib/json-gvariant.c:593
+#: json-glib/json-gvariant.c:594
 msgid "Missing elements in JSON array to conform to a tuple"
 msgstr "Elementos em falta na matriz JSON para respeitar um conjunto"
 
-#: ../json-glib/json-gvariant.c:621
-msgid "Missing closing symbol ')' in the GVariant tuple type"
-msgstr "Falta o símbolo de fecho \")\" no tipo de conjunto GVariant"
+#: json-glib/json-gvariant.c:622
+#| msgid "Missing closing symbol ')' in the GVariant tuple type"
+msgid "Missing closing symbol “)” in the GVariant tuple type"
+msgstr "Falta o símbolo de fecho “)” no tipo de conjunto GVariant"
 
-#: ../json-glib/json-gvariant.c:629
+#: json-glib/json-gvariant.c:630
 msgid "Unexpected extra elements in JSON array"
 msgstr "Elementos extra inesperados na matriz JSON"
 
-#: ../json-glib/json-gvariant.c:908
+#: json-glib/json-gvariant.c:931
 msgid "Invalid string value converting to GVariant"
 msgstr "Valor inválido de cadeia ao converter em GVariant"
 
-#: ../json-glib/json-gvariant.c:964
+#: json-glib/json-gvariant.c:986
 msgid ""
 "A GVariant dictionary entry expects a JSON object with exactly one member"
 msgstr ""
 "Uma entrada de dicionário GVariant espera um objeto JSON com exatamente um "
 "membro"
 
-#: ../json-glib/json-gvariant.c:1248
+#: json-glib/json-gvariant.c:1264
 #, c-format
-msgid "GVariant class '%c' not supported"
-msgstr "Classe GVariant \"%c\" não suportada"
+#| msgid "GVariant class '%c' not supported"
+msgid "GVariant class “%c” not supported"
+msgstr "Classe GVariant “%c” não suportada"
 
-#: ../json-glib/json-gvariant.c:1296
+#: json-glib/json-gvariant.c:1312
 msgid "Invalid GVariant signature"
 msgstr "Assinatura GVariant inválida"
 
-#: ../json-glib/json-gvariant.c:1344
+#: json-glib/json-gvariant.c:1360
 msgid "JSON data is empty"
 msgstr "Dados JSON estão vazios"
 
-#: ../json-glib/json-parser.c:815
+#. translators: %s: is the file name, the first %d is the line
+#. * number, the second %d is the position on the line, and %s is
+#. * the error message
+#.
+#: json-glib/json-parser.c:909
 #, c-format
 msgid "%s:%d:%d: Parse error: %s"
 msgstr "%s:%d:%d: erro de processamento: %s"
 
-#: ../json-glib/json-parser.c:883
+#: json-glib/json-parser.c:992
 msgid "JSON data must be UTF-8 encoded"
 msgstr "Dados JSON têm de estar codificados em UTF-8"
 
-#: ../json-glib/json-path.c:388
+#: json-glib/json-path.c:389
 msgid "Only one root node is allowed in a JSONPath expression"
 msgstr "Só um nó raiz é permitido numa expressão JSONPath"
 
-#: ../json-glib/json-path.c:397
+#. translators: the %c is the invalid character
+#: json-glib/json-path.c:398
 #, c-format
-msgid "Root node followed by invalid character '%c'"
-msgstr "Nó raiz seguido do carácter inválido \"%c\""
+#| msgid "Root node followed by invalid character '%c'"
+msgid "Root node followed by invalid character “%c”"
+msgstr "Nó raiz seguido do carácter inválido “%c”"
 
-#: ../json-glib/json-path.c:437
+#: json-glib/json-path.c:438
 msgid "Missing member name or wildcard after . character"
 msgstr "Falta nome de membro ou caráter global após caráter \".\""
 
-#: ../json-glib/json-path.c:511
+#: json-glib/json-path.c:512
 #, c-format
-msgid "Malformed slice expression '%*s'"
-msgstr "Expressão \"%*s\" de fatia mal formada"
+#| msgid "Malformed slice expression '%*s'"
+msgid "Malformed slice expression “%*s”"
+msgstr "Expressão “%*s” de fatia mal formada"
 
-#: ../json-glib/json-path.c:555
+#: json-glib/json-path.c:556
 #, c-format
-msgid "Invalid set definition '%*s'"
-msgstr "Definição inválida de conjunto \"%*s\""
+#| msgid "Invalid set definition '%*s'"
+msgid "Invalid set definition “%*s”"
+msgstr "Definição inválida de conjunto “%*s”"
 
-#: ../json-glib/json-path.c:608
+#: json-glib/json-path.c:609
 #, c-format
-msgid "Invalid slice definition '%*s'"
-msgstr "Definição inválida de fatia \"%*s\""
+#| msgid "Invalid slice definition '%*s'"
+msgid "Invalid slice definition “%*s”"
+msgstr "Definição inválida de fatia “%*s”"
 
-#: ../json-glib/json-path.c:636
+#: json-glib/json-path.c:637
 #, c-format
-msgid "Invalid array index definition '%*s'"
-msgstr "Definição inválida de índice de matriz \"%*s\""
+#| msgid "Invalid array index definition '%*s'"
+msgid "Invalid array index definition “%*s”"
+msgstr "Definição inválida de índice de matriz “%*s”"
 
-#: ../json-glib/json-path.c:655
+#: json-glib/json-path.c:656
 #, c-format
-msgid "Invalid first character '%c'"
-msgstr "Primeiro carácter \"%c\" inválido"
+#| msgid "Invalid first character '%c'"
+msgid "Invalid first character “%c”"
+msgstr "Primeiro carácter “%c” inválido"
 
-#: ../json-glib/json-reader.c:459
+#: json-glib/json-reader.c:474
 #, c-format
+#| msgid ""
+#| "The current node is of type '%s', but an array or an object was expected."
 msgid ""
-"The current node is of type '%s', but an array or an object was expected."
-msgstr "O nó atual é do tipo \"%s\", mas era esperada uma matriz ou um objeto."
+"The current node is of type “%s”, but an array or an object was expected."
+msgstr "O nó atual é do tipo “%s”, mas era esperada uma matriz ou um objeto."
 
-#: ../json-glib/json-reader.c:471
+#: json-glib/json-reader.c:486
 #, c-format
+#| msgid ""
+#| "The index '%d' is greater than the size of the array at the current "
+#| "position."
 msgid ""
-"The index '%d' is greater than the size of the array at the current position."
-msgstr "O índice \"%d\" é maior do que o tamanho da matriz na posição atual."
+"The index “%d” is greater than the size of the array at the current position."
+msgstr "O índice “%d” é maior do que o tamanho da matriz na posição atual."
 
-#: ../json-glib/json-reader.c:488
+#: json-glib/json-reader.c:503
 #, c-format
+#| msgid ""
+#| "The index '%d' is greater than the size of the object at the current "
+#| "position."
 msgid ""
-"The index '%d' is greater than the size of the object at the current "
+"The index “%d” is greater than the size of the object at the current "
 "position."
-msgstr "O índice \"%d\" é maior do que o tamanho do objeto na posição atual."
+msgstr "O índice “%d” é maior do que o tamanho do objeto na posição atual."
 
-#: ../json-glib/json-reader.c:572 ../json-glib/json-reader.c:723
-#: ../json-glib/json-reader.c:774 ../json-glib/json-reader.c:812
-#: ../json-glib/json-reader.c:850 ../json-glib/json-reader.c:888
-#: ../json-glib/json-reader.c:926 ../json-glib/json-reader.c:971
-#: ../json-glib/json-reader.c:1007 ../json-glib/json-reader.c:1033
+#: json-glib/json-reader.c:585 json-glib/json-reader.c:751
+#: json-glib/json-reader.c:799 json-glib/json-reader.c:837
+#: json-glib/json-reader.c:875 json-glib/json-reader.c:913
+#: json-glib/json-reader.c:951 json-glib/json-reader.c:996
+#: json-glib/json-reader.c:1032 json-glib/json-reader.c:1058
 msgid "No node available at the current position"
 msgstr "Nenhum nó disponível na posição atual"
 
-#: ../json-glib/json-reader.c:579
+#: json-glib/json-reader.c:592
 #, c-format
-msgid "The current position holds a '%s' and not an array"
-msgstr "A posição atual contém um \"%s\" e não uma matriz"
+#| msgid "The current position holds a '%s' and not an array"
+msgid "The current position holds a “%s” and not an array"
+msgstr "A posição atual contém um “%s” e não uma matriz"
 
-#: ../json-glib/json-reader.c:642
+#: json-glib/json-reader.c:668
 #, c-format
-msgid "The current node is of type '%s', but an object was expected."
-msgstr "O nó atual é do tipo \"%s\", mas era esperado um objeto."
+#| msgid "The current node is of type '%s', but an object was expected."
+msgid "The current node is of type “%s”, but an object was expected."
+msgstr "O nó atual é do tipo “%s”, mas era esperado um objeto."
 
-#: ../json-glib/json-reader.c:649
+#: json-glib/json-reader.c:675
 #, c-format
-msgid "The member '%s' is not defined in the object at the current position."
-msgstr "O membro \"%s\" não está definido no objeto da posição atual."
+#| msgid ""
+#| "The member '%s' is not defined in the object at the current position."
+msgid "The member “%s” is not defined in the object at the current position."
+msgstr "O membro “%s” não está definido no objeto da posição atual."
 
-#: ../json-glib/json-reader.c:730 ../json-glib/json-reader.c:781
+#: json-glib/json-reader.c:758 json-glib/json-reader.c:806
 #, c-format
-msgid "The current position holds a '%s' and not an object"
-msgstr "A posição atual contém um \"%s\" e não um objeto"
+#| msgid "The current position holds a '%s' and not an object"
+msgid "The current position holds a “%s” and not an object"
+msgstr "A posição atual contém um “%s” e não um objeto"
 
-#: ../json-glib/json-reader.c:821 ../json-glib/json-reader.c:859
-#: ../json-glib/json-reader.c:897 ../json-glib/json-reader.c:935
-#: ../json-glib/json-reader.c:980
+#: json-glib/json-reader.c:846 json-glib/json-reader.c:884
+#: json-glib/json-reader.c:922 json-glib/json-reader.c:960
+#: json-glib/json-reader.c:1005
 #, c-format
-msgid "The current position holds a '%s' and not a value"
-msgstr "A posição atual contém um \"%s\" e não um valor"
+#| msgid "The current position holds a '%s' and not a value"
+msgid "The current position holds a “%s” and not a value"
+msgstr "A posição atual contém um “%s” e não um valor"
 
-#: ../json-glib/json-reader.c:943
+#: json-glib/json-reader.c:968
 msgid "The current position does not hold a string type"
 msgstr "A posição atual não contém um tipo cadeia"