--- /dev/null
+image: fedora:26
+
+stages:
+ - build
+
+before_script:
+ - dnf install -y gcc meson ninja-build gettext gtk-doc glib2-devel
+
+build-json-glib:
+ stage: build
+ script:
+ - meson _build .
+ - ninja -C _build
+ - mesontest -C _build
+ - ninja -C _build install
+++ /dev/null
-#!/bin/sh
-test -n "$srcdir" || srcdir=$(dirname "$0")
-test -n "$srcdir" || srcdir=.
-
-cd $srcdir
-
-PROJECT=json-glib
-VERSION=$(git describe --abbrev=0)
-
-NAME="${PROJECT}-${VERSION}"
-
-rm -f "${NAME}.tar"
-rm -f "${NAME}.tar.xz"
-
-echo "Creating git tree archive…"
-git archive --prefix="${NAME}/" --format=tar HEAD > ${NAME}.tar
-
-echo "Compressing archive…"
-xz -f "${NAME}.tar"
+++ /dev/null
-
-
-
-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
-
glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html')
docpath = join_paths(json_datadir, 'gtk-doc', 'html')
-gnome.gtkdoc('json-glib',
- main_xml: 'json-glib-docs.xml',
- src_dir: [
- join_paths(meson.source_root(), 'json-glib'),
- join_paths(meson.build_root(), 'json-glib'),
- ],
- dependencies: json_glib_dep,
- gobject_typesfile: 'json-glib.types',
- scan_args: [
- '--rebuild-types',
- '--ignore-decorators=_JSON_EXTERN',
- '--ignore-headers=' + ' '.join(private_headers),
- ],
- fixxref_args: [
- '--html-dir=@0@'.format(docpath),
- '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')),
- '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')),
- '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')),
- ],
- install: true)
+if get_option('docs')
+ gnome.gtkdoc('json-glib',
+ main_xml: 'json-glib-docs.xml',
+ src_dir: [
+ join_paths(meson.source_root(), 'json-glib'),
+ join_paths(meson.build_root(), 'json-glib'),
+ ],
+ dependencies: json_glib_dep,
+ gobject_typesfile: 'json-glib.types',
+ scan_args: [
+ '--rebuild-types',
+ '--ignore-decorators=_JSON_EXTERN',
+ '--ignore-headers=' + ' '.join(private_headers),
+ ],
+ fixxref_args: [
+ '--html-dir=@0@'.format(docpath),
+ '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')),
+ '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')),
+ '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')),
+ ],
+ install: true)
+endif
xsltproc = find_program('xsltproc', required: false)
-if xsltproc.found()
+if get_option('man') and xsltproc.found()
xlstproc_flags = [
'--nonet',
'--stringparam', 'man.output.quietly', '1',
+++ /dev/null
-
-
-
-
-
-
-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
+++ /dev/null
-<?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://bugzilla.gnome.org/enter_bug.cgi?product=json-glib"/>
- <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>
/*** END file-header ***/
/*** BEGIN file-production ***/
-/* enumerations from "@filename@" */
+/* enumerations from "@basename@" */
/*** END file-production ***/
/*** BEGIN file-tail ***/
*
* If @object is %NULL, the node’s existing object is cleared.
*
- * It is an error to call this on an immutable node.
+ * It is an error to call this on an immutable node, or on a node which is not
+ * an object node.
*/
void
json_node_set_object (JsonNode *node,
*
* Sets @object inside @node. The reference count of @object is not increased.
*
- * It is an error to call this on an immutable node.
+ * It is an error to call this on an immutable node, or on a node which is not
+ * an object node.
*/
void
json_node_take_object (JsonNode *node,
* json_node_get_object:
* @node: a #JsonNode
*
- * Retrieves the #JsonObject stored inside a #JsonNode. If the node does not
- * hold an object value, %NULL is returned.
+ * Retrieves the #JsonObject stored inside a #JsonNode. It is a programmer error
+ * to call this on a node which doesn’t hold an object value. Use
+ * %JSON_NODE_HOLDS_OBJECT first.
*
* Return value: (transfer none) (nullable): the #JsonObject
*/
* @node: a #JsonNode
*
* Retrieves the #JsonObject inside @node. The reference count of
- * the returned object is increased. If the node does not hold an object value,
- * %NULL is returned.
+ * the returned object is increased. It is a programmer error
+ * to call this on a node which doesn’t hold an object value. Use
+ * %JSON_NODE_HOLDS_OBJECT first.
*
* Return value: (transfer full) (nullable): the #JsonObject
*/
*
* Sets @array inside @node and increases the #JsonArray reference count.
*
- * It is an error to call this on an immutable node.
+ * It is an error to call this on an immutable node, or on a node which is not
+ * an array node.
*/
void
json_node_set_array (JsonNode *node,
*
* Sets @array into @node without increasing the #JsonArray reference count.
*
- * It is an error to call this on an immutable node.
+ * It is an error to call this on an immutable node, or a node which is not
+ * an array node.
*/
void
json_node_take_array (JsonNode *node,
* json_node_get_array:
* @node: a #JsonNode
*
- * Retrieves the #JsonArray stored inside a #JsonNode. If the node does not
- * hold an array value, %NULL is returned.
+ * Retrieves the #JsonArray stored inside a #JsonNode. It is a programmer error
+ * to call this on a node which doesn’t hold an array value. Use
+ * %JSON_NODE_HOLDS_ARRAY first.
*
* Return value: (transfer none) (nullable): the #JsonArray
*/
* @node: a #JsonNode
*
* Retrieves the #JsonArray stored inside a #JsonNode and returns it
- * with its reference count increased by one. If the node does not hold an
- * array value, %NULL is returned.
+ * with its reference count increased by one. It is a programmer error
+ * to call this on a node which doesn’t hold an array value. Use
+ * %JSON_NODE_HOLDS_ARRAY first.
*
* Return value: (transfer full) (nullable): the #JsonArray with its reference
* count increased.
* @value: (out caller-allocates): return location for an uninitialized value
*
* Retrieves a value from a #JsonNode and copies into @value. When done
- * using it, call g_value_unset() on the #GValue. If the node does not hold a
- * scalar value, @value is not modified.
+ * using it, call g_value_unset() on the #GValue. It is a programmer error
+ * to call this on a node which doesn’t hold a scalar value. Use
+ * %JSON_NODE_HOLDS_VALUE first.
*/
void
json_node_get_value (JsonNode *node,
*
* Sets @value inside @node. The passed #GValue is copied into the #JsonNode.
*
- * It is an error to call this on an immutable node.
+ * It is an error to call this on an immutable node, or on a node which is not
+ * a value node.
*/
void
json_node_set_value (JsonNode *node,
* Sets @value as the string content of the @node, replacing any existing
* content.
*
- * It is an error to call this on an immutable node.
+ * It is an error to call this on an immutable node, or on a node which is not
+ * a value node.
*/
void
json_node_set_string (JsonNode *node,
* Sets @value as the integer content of the @node, replacing any existing
* content.
*
- * It is an error to call this on an immutable node.
+ * It is an error to call this on an immutable node, or on a node which is not
+ * a value node.
*/
void
json_node_set_int (JsonNode *node,
* Sets @value as the double content of the @node, replacing any existing
* content.
*
- * It is an error to call this on an immutable node.
+ * It is an error to call this on an immutable node, or on a node which is not
+ * a value node.
*/
void
json_node_set_double (JsonNode *node,
* Sets @value as the boolean content of the @node, replacing any existing
* content.
*
- * It is an error to call this on an immutable node.
+ * It is an error to call this on an immutable node, or on a node which is not
+ * a value node.
*/
void
json_node_set_boolean (JsonNode *node,
{
priv->error_code = JSON_PARSER_ERROR_TRAILING_COMMA;
+ g_free (name);
json_object_unref (object);
json_node_unref (member);
json_node_unref (priv->current_node);
{
priv->error_code = JSON_PARSER_ERROR_MISSING_COMMA;
+ g_free (name);
json_object_unref (object);
json_node_unref (member);
json_node_unref (priv->current_node);
* json_parser_get_root:
* @parser: a #JsonParser
*
- * Retrieves the top level node from the parsed JSON stream.
+ * Retrieves the top level node from the parsed JSON stream. If the parser input
+ * was an empty string, or if parsing failed, this will be %NULL. It will also
+ * be %NULL if it has been stolen using json_parser_steal_root().
*
- * Return value: (transfer none): the root #JsonNode . The returned
+ * Return value: (transfer none) (nullable): the root #JsonNode . The returned
* node is owned by the #JsonParser and should never be modified
* or freed.
*/
g_return_val_if_fail (JSON_IS_PARSER (parser), NULL);
/* Sanity check. */
- g_return_val_if_fail (!parser->priv->is_immutable ||
+ g_return_val_if_fail (parser->priv->root == NULL ||
+ !parser->priv->is_immutable ||
json_node_is_immutable (parser->priv->root), NULL);
return parser->priv->root;
* json_parser_steal_root:
* @parser: a #JsonParser
*
- * Steals the top level node from the parsed JSON stream.
+ * Steals the top level node from the parsed JSON stream. This will be %NULL
+ * in the same situations as json_parser_get_root() returns %NULL.
*
- * Returns: (transfer full): the top level #JsonNode
+ * Returns: (transfer full) (nullable): the top level #JsonNode
*
* Since: 1.4
*/
g_return_val_if_fail (JSON_IS_PARSER (parser), NULL);
+ /* Sanity check. */
+ g_return_val_if_fail (parser->priv->root == NULL ||
+ !parser->priv->is_immutable ||
+ json_node_is_immutable (parser->priv->root), NULL);
+
return g_steal_pointer (&priv->root);
}
#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC
G_DEFINE_AUTOPTR_CLEANUP_FUNC (JsonArray, json_array_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC (JsonObject, json_object_unref)
-G_DEFINE_AUTOPTR_CLEANUP_FUNC (JsonNode, json_node_free)
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (JsonNode, json_node_unref)
#endif
G_END_DECLS
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <glib.h>
-#include <json-glib/json-glib.h>
+#include "json-test-utils.h"
static void
test_empty_array (void)
json_array_add_double_element (array, 3.14);
g_assert_cmpint (json_array_get_length (array), ==, 3);
- g_assert_cmpfloat (json_array_get_double_element (array, 2), ==, 3.14);
+ json_assert_fuzzy_equals (json_array_get_double_element (array, 2), 3.14, 0.001);
json_array_add_boolean_element (array, TRUE);
g_assert_cmpint (json_array_get_length (array), ==, 4);
--- /dev/null
+#include <string.h>
+#include <math.h>
+#include <float.h>
+#include <glib.h>
+#include <json-glib/json-glib.h>
+
+#define json_fuzzy_equals(n1,n2,epsilon) \
+ (((n1) > (n2) ? ((n1) - (n2)) : ((n2) - (n1))) < (epsilon))
+
+#define json_assert_fuzzy_equals(n1,n2,epsilon) \
+ G_STMT_START { \
+ double __n1 = (n1), __n2 = (n2), __epsilon = (epsilon); \
+ if (json_fuzzy_equals (__n1, __n2, __epsilon)) ; else { \
+ g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ #n1 " == " #n2 " (+/- " #epsilon ")", \
+ __n1, "==", __n2, 'f'); \
+ } \
+ } G_STMT_END
+
+#define json_assert_almost_equals(n1,n2) \
+ json_assert_fuzzy_equals (n1, n2, DBL_EPSILON)
-#include <glib.h>
-#include <json-glib/json-glib.h>
-#include <string.h>
+#include "json-test-utils.h"
static void
test_init_int (void)
JsonNode *node = json_node_new (JSON_NODE_VALUE);
json_node_set_double (node, 3.14159);
- g_assert_cmpfloat (json_node_get_double (node), ==, 3.14159);
+ json_assert_fuzzy_equals (json_node_get_double (node), 3.14159, 0.00001);
json_node_free (node);
}
json_node_set_int (node, 0);
g_assert_cmpint (json_node_get_int (node), ==, 0);
- g_assert_cmpfloat (json_node_get_double (node), ==, 0.0);
+ json_assert_almost_equals (json_node_get_double (node), 0.0);
g_assert (!json_node_get_boolean (node));
g_assert (!json_node_is_null (node));
json_node_set_int (node, 42);
g_assert_cmpint (json_node_get_int (node), ==, 42);
- g_assert_cmpfloat (json_node_get_double (node), ==, 42.0);
+ json_assert_almost_equals (json_node_get_double (node), 42.0);
g_assert (json_node_get_boolean (node));
g_assert (!json_node_is_null (node));
JsonNode *node = json_node_new (JSON_NODE_VALUE);
json_node_set_double (node, 3.14);
- g_assert_cmpfloat (json_node_get_double (node), ==, 3.14);
+ json_assert_fuzzy_equals (json_node_get_double (node), 3.14, 0.001);
g_assert_cmpint (json_node_get_int (node), ==, 3);
g_assert (json_node_get_boolean (node));
g_print ("Expecting a gdouble, got a %s\n", g_type_name (G_VALUE_TYPE (&check)));
g_assert_cmpint (G_VALUE_TYPE (&check), ==, G_TYPE_DOUBLE);
- g_assert_cmpfloat ((float) g_value_get_double (&check), ==, 3.14159f);
+ json_assert_fuzzy_equals (g_value_get_double (&check), 3.14159, 0.00001);
g_assert_cmpint (G_VALUE_TYPE (&value), !=, G_VALUE_TYPE (&check));
- g_assert_cmpfloat ((gdouble) g_value_get_float (&value), ==, g_value_get_double (&check));
+ json_assert_almost_equals (g_value_get_float (&value), g_value_get_double (&check));
g_value_unset (&value);
g_value_unset (&check);
-#include "config.h"
-
+#include "json-test-utils.h"
#include <stdlib.h>
-#include <stdio.h>
-
-#include <glib.h>
-
-#include <json-glib/json-glib.h>
static const gchar *test_empty_string = "";
static const gchar *test_empty_array_string = "[ ]";
static void
verify_double_value (JsonNode *node)
{
- g_assert_cmpfloat (10.2e3, ==, json_node_get_double (node));
+ json_assert_fuzzy_equals (10.2e3, json_node_get_double (node), 0.1);
}
static void
verify_negative_double_value (JsonNode *node)
{
- g_assert_cmpfloat (-3.14, ==, json_node_get_double (node));
+ json_assert_fuzzy_equals (-3.14, json_node_get_double (node), 0.01);
}
static const struct {
static guint n_test_unicode = G_N_ELEMENTS (test_unicode);
static void
-test_empty (void)
+test_empty_with_parser (JsonParser *parser)
{
- JsonParser *parser;
GError *error = NULL;
- parser = json_parser_new ();
- g_assert (JSON_IS_PARSER (parser));
-
if (g_test_verbose ())
g_print ("checking json_parser_load_from_data with empty string...\n");
g_assert (NULL == json_parser_get_root (parser));
}
+}
+static void
+test_empty (void)
+{
+ JsonParser *parser;
+
+ /* Check with and without immutability enabled, as there have been bugs with
+ * NULL root nodes on immutable parsers. */
+ parser = json_parser_new ();
+ g_assert (JSON_IS_PARSER (parser));
+ test_empty_with_parser (parser);
+ g_object_unref (parser);
+
+ parser = json_parser_new_immutable ();
+ g_assert (JSON_IS_PARSER (parser));
+ test_empty_with_parser (parser);
g_object_unref (parser);
}
g_assert_error (error, JSON_PATH_ERROR, code);
g_object_unref (path);
+ g_clear_error (&error);
}
static void
-#include <stdlib.h>
-#include <stdio.h>
-
-#include <glib.h>
-
-#include <json-glib/json-glib.h>
+#include "json-test-utils.h"
static const gchar *test_base_array_data =
"[ 0, true, null, \"foo\", 3.14, [ false ], { \"bar\" : 42 } ]";
g_assert (json_reader_get_error (reader) == NULL);
json_reader_read_member (reader, "double");
- g_assert_cmpfloat (json_reader_get_double_value (reader), ==, 42.47);
+ json_assert_fuzzy_equals (json_reader_get_double_value (reader), 42.47, 0.01);
json_reader_end_element (reader);
g_object_unref (reader);
g_assert (json_reader_get_error (reader) == NULL);
g_object_unref (reader);
+ g_object_unref (parser);
+ g_clear_error (&error);
}
static void
"baz", "Hello, World!",
"meh", 0.5,
NULL);
- JsonParser *parser = json_parser_new ();
+ JsonParser *parser = NULL;
GError *error = NULL;
JsonObject *object;
JsonNode *node;
g_free (data);
g_object_unref (parser);
g_object_unref (obj);
+ g_clear_error (&error);
}
int
-project('json-glib', 'c', version: '1.4.2',
+project('json-glib', 'c', version: '1.4.4',
license: 'LGPLv2.1+',
default_options: [
'warning_level=1',
gen_installed_test = files('build-aux/gen-installed-test.py')
subdir('json-glib')
-
subdir('po')
-
-if get_option('docs')
- subdir('doc')
-endif
+subdir('doc')
option('docs',
type: 'boolean', value: false,
description: 'Build the API reference and man pages (requires gtk-doc and xsltproc)')
+option('man',
+ type: 'boolean', value: false,
+ description: 'Build the man pages (requires xsltproc)')
+++ /dev/null
-/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
gl
he
hi
+hr
hu
id
it
ml
nb
ne
+nl
oc
or
pa
+++ /dev/null
-DOMAIN = json-glib-1.0
-XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 --add-comments
-COPYRIGHT_HOLDER = Intel Corporation and others
-MSGID_BUGS_ADDRESS = http://bugzilla.gnome.org/enter_bug.cgi?product=json-glib
-EXTRA_LOCALE_CATEGORIES =
-PACKAGE_GNU = no
-
-subdir = po
-top_builddir = ..
# Catalan translation for json-glib.
# Copyright (C) 2012 Free Software Foundation, Inc.
# This file is distributed under the same license as the json-glib package.
-# Gil Forcada <gilforcada@guifi.net>, 2012, 2013.
+# Gil Forcada <gilforcada@guifi.net>, 2012, 2013, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: json-glib master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
-"glib\n"
-"POT-Creation-Date: 2013-01-21 00:27+0100\n"
-"PO-Revision-Date: 2013-01-21 00:26+0100\n"
-"Last-Translator: Gil Forcada <gilforcada@guifi.net>\n"
+"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=json-"
+"glib&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2017-08-24 10:49+0000\n"
+"PO-Revision-Date: 2017-08-21 21:06+0200\n"
+"Last-Translator: Xavi Ivars <xavi.ivars@gmail.com>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
-"Language: ca@valencia\n"
+"Language: ca-valencia\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bits\n"
+"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Poedit 1.8.11\n"
-#: ../json-glib/json-gobject.c:925
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Formata l'eixida"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Espais de sagnat"
+
+#. 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
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: s'ha produït un error en obrir el fitxer: %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
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: s'ha produït un error en analitzar el fitxer: %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
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: s'ha produït un error en escriure a l'eixida estàndard"
+
+#. 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:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: s'ha produït un error en tancar: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "FITXER"
+
+#. Translators: this message will appear after the usage string
+#. and before the list of options.
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Formata fitxers JSON."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "El json-glib-format formata recursos 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:179 json-glib/json-glib-validate.c:136
#, c-format
-msgid "Expecting a JSON object, but the root node is of type `%s'"
+msgid "Error parsing commandline options: %s\n"
+msgstr ""
+"S'ha produït un error en analitzar les opcions de la línia d'ordes: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try “%s --help” for more information."
+msgstr "Per a més informació proveu «%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:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: manquen els fitxers"
+
+#. 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 "Valida fitxers JSON."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "El json-glib-validate valida les dades JSON de l'URI donat."
+
+#. 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 "S'esperava un objecte JSON, però el node arrel és del tipus «%s»"
-#: ../json-glib/json-gvariant.c:539
+#. translators: the '%s' is the type name
+#: json-glib/json-gvariant.c:524
#, c-format
-msgid "Unexpected type '%s' in JSON node"
+msgid "Unexpected type “%s” in JSON node"
msgstr "No s'esperava el tipus «%s» en un node de JSON"
-#: ../json-glib/json-gvariant.c:609
+#: json-glib/json-gvariant.c:594
msgid "Missing elements in JSON array to conform to a tuple"
msgstr "Manquen elements en la matriu de JSON perquè siguen una tupla"
-#: ../json-glib/json-gvariant.c:637
-msgid "Missing closing symbol ')' in the GVariant tuple type"
-msgstr "Manca el símbol de tancament «)» pel tipus de tupla de GVariant"
+#: json-glib/json-gvariant.c:622
+msgid "Missing closing symbol “)” in the GVariant tuple type"
+msgstr "Falta el símbol de tancament «)» pel tipus de tupla de GVariant"
-#: ../json-glib/json-gvariant.c:645
+#: json-glib/json-gvariant.c:630
msgid "Unexpected extra elements in JSON array"
msgstr "No s'esperaven elements extra en la matriu de JSON"
-#: ../json-glib/json-gvariant.c:924
+#: json-glib/json-gvariant.c:909
msgid "Invalid string value converting to GVariant"
msgstr "La cadena no es pot convertir a GVariant, la conversió no és vàlida"
-#: ../json-glib/json-gvariant.c:980
+#: json-glib/json-gvariant.c:964
msgid ""
"A GVariant dictionary entry expects a JSON object with exactly one member"
msgstr ""
"Un diccionari de GVariant requereix un objecte de JSON amb un sol membre"
-#: ../json-glib/json-gvariant.c:1236
+#: json-glib/json-gvariant.c:1242
#, c-format
-msgid "GVariant class '%c' not supported"
+msgid "GVariant class “%c” not supported"
msgstr "La classe «%c» de GVariant no es pot utilitzar"
-#: ../json-glib/json-gvariant.c:1281
+#: json-glib/json-gvariant.c:1290
msgid "Invalid GVariant signature"
msgstr "La signatura de GVariant no és vàlida"
-#: ../json-glib/json-gvariant.c:1326
+#: json-glib/json-gvariant.c:1338
msgid "JSON data is empty"
msgstr "No hi ha dades de JSON"
-#: ../json-glib/json-parser.c:825
+#. 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:907
#, c-format
msgid "%s:%d:%d: Parse error: %s"
msgstr "%s:%d:%d: error en l'anàlisi: %s"
-#: ../json-glib/json-path.c:375
+#: json-glib/json-parser.c:990
+msgid "JSON data must be UTF-8 encoded"
+msgstr "Les dades JSON han d'estar codificades amb UTF-8"
+
+#: json-glib/json-path.c:389
msgid "Only one root node is allowed in a JSONPath expression"
msgstr "Només es pot utilitzar un node arrel en una expressió JSONPath"
-#: ../json-glib/json-path.c:384
+#. translators: the %c is the invalid character
+#: json-glib/json-path.c:398
#, c-format
-msgid "Root node followed by invalid character '%c'"
+msgid "Root node followed by invalid character “%c”"
msgstr "El caràcter «%c» que segueix el node arrel no és vàlid"
-#: ../json-glib/json-path.c:490
+#: json-glib/json-path.c:438
+msgid "Missing member name or wildcard after . character"
+msgstr "Falta el nom del membre o un comodí després del caràcter «.»"
+
+#: json-glib/json-path.c:512
#, c-format
-msgid "Malformed slice expression '%*s'"
+msgid "Malformed slice expression “%*s”"
msgstr "L'expressió de tallat «%*s» no està ben formatada"
-#: ../json-glib/json-path.c:534
+#: json-glib/json-path.c:556
#, c-format
-msgid "Invalid set definition '%*s'"
+msgid "Invalid set definition “%*s”"
msgstr "La definició del conjunt «%*s» no és vàlida"
-#: ../json-glib/json-path.c:587
+#: json-glib/json-path.c:609
#, c-format
-msgid "Invalid slice definition '%*s'"
+msgid "Invalid slice definition “%*s”"
msgstr "La definició del tallat «%*s» no és vàlida"
-#: ../json-glib/json-path.c:615
+#: json-glib/json-path.c:637
#, c-format
-msgid "Invalid array index definition '%*s'"
+msgid "Invalid array index definition “%*s”"
msgstr "La definició de l'índex de la matriu «%*s» no és vàlida"
-#: ../json-glib/json-reader.c:464
+#: json-glib/json-path.c:656
+#, c-format
+msgid "Invalid first character “%c”"
+msgstr "El primer caràcter «%c» no és vàlid"
+
+#: json-glib/json-reader.c:474
#, c-format
msgid ""
-"The current node is of type '%s', but an array or an object was expected."
+"The current node is of type “%s”, but an array or an object was expected."
msgstr ""
"El node actual és de tipus «%s», però s'esperava una matriu, o bé, un "
"objecte."
-#: ../json-glib/json-reader.c:476
+#: json-glib/json-reader.c:486
#, c-format
msgid ""
-"The index '%d' is greater than the size of the array at the current position."
+"The index “%d” is greater than the size of the array at the current position."
msgstr "L'índex «%d» és més gran que la mida de la matriu a la posició actual."
-#: ../json-glib/json-reader.c:493
+#: json-glib/json-reader.c:503
#, c-format
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 "L'índex «%d» és més gran que la mida de l'objecte a la posició actual."
-#: ../json-glib/json-reader.c:577 ../json-glib/json-reader.c:730
-#: ../json-glib/json-reader.c:781 ../json-glib/json-reader.c:819
-#: ../json-glib/json-reader.c:857 ../json-glib/json-reader.c:895
-#: ../json-glib/json-reader.c:933 ../json-glib/json-reader.c:978
-#: ../json-glib/json-reader.c:1014 ../json-glib/json-reader.c:1040
+#: 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 "No hi ha cap node disponible a la posició actual"
-#: ../json-glib/json-reader.c:584
+#: json-glib/json-reader.c:592
#, c-format
-msgid "The current position holds a '%s' and not an array"
+msgid "The current position holds a “%s” and not an array"
msgstr "A la posició actual hi ha un «%s» i no una matriu"
-#: ../json-glib/json-reader.c:647
+#: json-glib/json-reader.c:668
#, c-format
-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 "El node actual és de tipus «%s», però s'esperava un objecte."
-#: ../json-glib/json-reader.c:654
+#: json-glib/json-reader.c:675
#, c-format
-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 "El membre «%s» no està definit a l'objecte de la posició actual."
-#: ../json-glib/json-reader.c:737 ../json-glib/json-reader.c:788
+#: 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"
+msgid "The current position holds a “%s” and not an object"
msgstr "A la posició actual hi ha un «%s» i no un objecte"
-#: ../json-glib/json-reader.c:828 ../json-glib/json-reader.c:866
-#: ../json-glib/json-reader.c:904 ../json-glib/json-reader.c:942
-#: ../json-glib/json-reader.c:987
+#: 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"
+msgid "The current position holds a “%s” and not a value"
msgstr "A la posició actual hi ha un «%s» i no un valor"
-#: ../json-glib/json-reader.c:950
+#: json-glib/json-reader.c:968
msgid "The current position does not hold a string type"
msgstr "A la posició actual no hi ha una cadena"
msgid ""
msgstr ""
"Project-Id-Version: json-glib master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
+"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=json-"
"glib&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2014-03-09 10:17+0000\n"
-"PO-Revision-Date: 2014-07-09 14:38+0200\n"
-"Last-Translator: Tom Tryfonidis <tomtryf@gmail.com>\n"
+"POT-Creation-Date: 2017-06-27 22:31+0000\n"
+"PO-Revision-Date: 2017-09-10 11:33+0200\n"
+"Last-Translator: Efstathios Iosifidis <iosifidis@opensuse.org>\n"
"Language-Team: team@lists.gnome.gr\n"
"Language: el\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: Poedit 1.6.5\n"
+"X-Generator: Poedit 1.5.7\n"
"X-Project-Style: gnome\n"
-#: ../json-glib/json-glib-format.c:50
+#: json-glib/json-glib-format.c:50
msgid "Prettify output"
msgstr "Ωραιοποίηση εξόδου"
-#: ../json-glib/json-glib-format.c:51
+#: json-glib/json-glib-format.c:51
msgid "Indentation spaces"
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:77 ../json-glib/json-glib-validate.c:63
+#: json-glib/json-glib-format.c:77 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:89 ../json-glib/json-glib-validate.c:75
+#: json-glib/json-glib-format.c:89 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:108
+#: json-glib/json-glib-format.c:108
#, c-format
msgid "%s: %s: error writing to stdout"
msgstr "%s: %s: σφάλμα εγγραφής στην τυπική έξοδο"
#. 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:129 json-glib/json-glib-validate.c:87
#, c-format
msgid "%s: %s: error closing: %s\n"
msgstr "%s: %s: σφάλμα κλεισίματος: %s\n"
-#: ../json-glib/json-glib-format.c:157 ../json-glib/json-glib-validate.c:115
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
msgid "FILE"
msgstr "ΑΡΧΕΙΟ"
#. 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:161
msgid "Format JSON files."
msgstr "Μορφή αρχείων JSON."
-#: ../json-glib/json-glib-format.c:161
+#: json-glib/json-glib-format.c:162
msgid "json-glib-format formats JSON resources."
msgstr "το json-glib-format μορφοποιεί τους πόρους 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:179 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: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:181 json-glib/json-glib-format.c:195
+#: 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\" για περισσότερες πληροφορίες."
+#| msgid "Try \"%s --help\" for more information."
+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:192 ../json-glib/json-glib-validate.c:150
+#: json-glib/json-glib-format.c:193 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
+#: json-glib/json-glib-validate.c:118
msgid "Validate JSON files."
msgstr "Επικυρώστε αρχεία 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 επικυρώνει δεδομένα JSON στο δοσμένο URI."
-#: ../json-glib/json-gobject.c:917
+#. translators: the %s is the name of the data structure
+#: json-glib/json-gobject.c:943
#, c-format
-msgid "Expecting a JSON object, but the root node is of type `%s'"
-msgstr "Αναμένεται αντικείμενο JSON, αλλά ο αρχικός κόμβος είναι τύπου `%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 "Αναμένεται αντικείμενο JSON, αλλά ο αρχικός κόμβος είναι τύπου «%s»"
-#: ../json-glib/json-gvariant.c:545
+#. translators: the '%s' is the type name
+#: json-glib/json-gvariant.c:523
#, c-format
-msgid "Unexpected type '%s' in JSON node"
-msgstr "Αναπάντεχος τύπος '%s' σε κόμβο JSON"
+#| msgid "Unexpected type '%s' in JSON node"
+msgid "Unexpected type “%s” in JSON node"
+msgstr "Αναπάντεχος τύπος «%s» σε κόμβο JSON"
-#: ../json-glib/json-gvariant.c:615
+#: json-glib/json-gvariant.c:593
msgid "Missing elements in JSON array to conform to a tuple"
msgstr "Λείπουν στοιχεία σε πίνακα JSON για συμφωνία με πλειάδα"
-#: ../json-glib/json-gvariant.c:643
-msgid "Missing closing symbol ')' in the GVariant tuple type"
-msgstr "Λείπει το σύμβολο κλεισίματος ')' στον τύπο πλειάδας GVariant"
+#: json-glib/json-gvariant.c:621
+#| msgid "Missing closing symbol ')' in the GVariant tuple type"
+msgid "Missing closing symbol “)” in the GVariant tuple type"
+msgstr "Λείπει το σύμβολο κλεισίματος «)» στον τύπο πλειάδας GVariant"
-#: ../json-glib/json-gvariant.c:651
+#: json-glib/json-gvariant.c:629
msgid "Unexpected extra elements in JSON array"
msgstr "Αναπάντεχα πρόσθετα στοιχεία σε πίνακα JSON"
-#: ../json-glib/json-gvariant.c:930
+#: json-glib/json-gvariant.c:908
msgid "Invalid string value converting to GVariant"
msgstr "Άκυρη τιμή συμβολοσειράς μετατροπής σε GVariant"
-#: ../json-glib/json-gvariant.c:986
+#: json-glib/json-gvariant.c:964
msgid ""
"A GVariant dictionary entry expects a JSON object with exactly one member"
msgstr ""
"Μια καταχώριση λεξικού GVariant περιμένει ένα αντικείμενο JSON με ακριβώς "
"ένα μέλος"
-#: ../json-glib/json-gvariant.c:1266
+#: json-glib/json-gvariant.c:1248
#, c-format
-msgid "GVariant class '%c' not supported"
-msgstr "Η κλάση GVariant '%c' δεν υποστηρίζεται"
+#| msgid "GVariant class '%c' not supported"
+msgid "GVariant class “%c” not supported"
+msgstr "Η κλάση GVariant «%c» δεν υποστηρίζεται"
-#: ../json-glib/json-gvariant.c:1314
+#: json-glib/json-gvariant.c:1296
msgid "Invalid GVariant signature"
msgstr "Άκυρη υπογραφή GVariant"
-#: ../json-glib/json-gvariant.c:1362
+#: json-glib/json-gvariant.c:1344
msgid "JSON data is empty"
msgstr "Τα δεδομένα JSON είναι κενά"
-#: ../json-glib/json-parser.c:817
+#. 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:907
#, c-format
msgid "%s:%d:%d: Parse error: %s"
msgstr "%s:%d:%d: Σφάλμα ανάλυσης: %s"
-#: ../json-glib/json-parser.c:885
+#: json-glib/json-parser.c:990
msgid "JSON data must be UTF-8 encoded"
msgstr "Τα δεδομένα JSON πρέπει να είναι κωδικοποιημένα ως UTF-8"
-#: ../json-glib/json-path.c:438
+#: json-glib/json-path.c:389
msgid "Only one root node is allowed in a JSONPath expression"
msgstr "Μόνο ένας αρχικός κόμβος επιτρέπεται σε μια έκφραση JSONPath"
-#: ../json-glib/json-path.c:447
+#. 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'"
+#| msgid "Root node followed by invalid character '%c'"
+msgid "Root node followed by invalid character “%c”"
+msgstr "Αρχικός κόμβος ακολουθούμενος από μη έγκυρο χαρακτήρα «%c»"
-#: ../json-glib/json-path.c:487
+#: json-glib/json-path.c:438
msgid "Missing member name or wildcard after . character"
msgstr "Λείπει όνομα μέλους ή συμβόλου υποκατάστασης μετά τον χαρακτήρα ."
-#: ../json-glib/json-path.c:561
+#: json-glib/json-path.c:512
#, c-format
-msgid "Malformed slice expression '%*s'"
-msgstr "Κακοδιατυπωμένη έκφραση τεμαχισμού '%*s'"
+#| msgid "Malformed slice expression '%*s'"
+msgid "Malformed slice expression “%*s”"
+msgstr "Κακοδιατυπωμένη έκφραση τεμαχισμού «%*s»"
-#: ../json-glib/json-path.c:605
+#: json-glib/json-path.c:556
#, c-format
-msgid "Invalid set definition '%*s'"
-msgstr "Άκυρος ορισμός συνόλου '%*s'"
+#| msgid "Invalid set definition '%*s'"
+msgid "Invalid set definition “%*s”"
+msgstr "Άκυρος ορισμός συνόλου «%*s»"
-#: ../json-glib/json-path.c:658
+#: json-glib/json-path.c:609
#, c-format
-msgid "Invalid slice definition '%*s'"
-msgstr "Άκυρος ορισμός τεμαχισμού '%*s'"
+#| msgid "Invalid slice definition '%*s'"
+msgid "Invalid slice definition “%*s”"
+msgstr "Άκυρος ορισμός τεμαχισμού «%*s»"
-#: ../json-glib/json-path.c:686
+#: json-glib/json-path.c:637
#, c-format
-msgid "Invalid array index definition '%*s'"
-msgstr "Άκυρος ορισμός δείκτη πίνακα '%*s'"
+#| msgid "Invalid array index definition '%*s'"
+msgid "Invalid array index definition “%*s”"
+msgstr "Μη έγκυρος ορισμός δείκτη πίνακα «%*s»"
-#: ../json-glib/json-path.c:705
+#: json-glib/json-path.c:656
#, c-format
-msgid "Invalid first character '%c'"
-msgstr "Άκυρος ο πρώτος χαρακτήρας '%c'"
+#| msgid "Invalid first character '%c'"
+msgid "Invalid first character “%c”"
+msgstr "Μή έγκυρος ο πρώτος χαρακτήρας «%c»"
-#: ../json-glib/json-reader.c:463
+#: 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."
+"The current node is of type “%s”, but an array or an object was expected."
msgstr ""
-"Ο τρέχων κόμβος είναι τύπου '%s', αλλά αναμενόταν ένας πίνακας ή ένα "
+"Ο τρέχων κόμβος είναι τύπου «%s», αλλά αναμενόταν ένας πίνακας ή ένα "
"αντικείμενο."
-#: ../json-glib/json-reader.c:475
+#: 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."
+"The index “%d” is greater than the size of the array at the current position."
msgstr ""
-"Ο δείκτης '%d' είναι μεγαλύτερος από το μέγεθος του πίνακα στην τρέχουσα "
+"Ο δείκτης «%d» είναι μεγαλύτερος από το μέγεθος του πίνακα στην τρέχουσα "
"θέση."
-#: ../json-glib/json-reader.c:492
+#: 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 ""
-"Ο δείκτης '%d' είναι μεγαλύτερος από το μέγεθος του αντικειμένου στην "
+"Ο δείκτης «%d» είναι μεγαλύτερος από το μέγεθος του αντικειμένου στην "
"τρέχουσα θέση."
-#: ../json-glib/json-reader.c:577 ../json-glib/json-reader.c:731
-#: ../json-glib/json-reader.c:782 ../json-glib/json-reader.c:820
-#: ../json-glib/json-reader.c:858 ../json-glib/json-reader.c:896
-#: ../json-glib/json-reader.c:934 ../json-glib/json-reader.c:979
-#: ../json-glib/json-reader.c:1015 ../json-glib/json-reader.c:1041
+#: json-glib/json-reader.c:587 json-glib/json-reader.c:751
+#: json-glib/json-reader.c:802 json-glib/json-reader.c:840
+#: json-glib/json-reader.c:878 json-glib/json-reader.c:916
+#: json-glib/json-reader.c:954 json-glib/json-reader.c:999
+#: json-glib/json-reader.c:1035 json-glib/json-reader.c:1061
msgid "No node available at the current position"
msgstr "Κανένας διαθέσιμος κόμβος στην τρέχουσα θέση"
-#: ../json-glib/json-reader.c:584
+#: json-glib/json-reader.c:594
#, c-format
-msgid "The current position holds a '%s' and not an array"
-msgstr "Η τρέχουσα θέση περιέχει ένα '%s' και όχι ένα πίνακα"
+#| msgid "The current position holds a '%s' and not an array"
+msgid "The current position holds a “%s” and not an array"
+msgstr "Η τρέχουσα θέση περιέχει ένα «%s» και όχι ένα πίνακα"
-#: ../json-glib/json-reader.c:647
+#: json-glib/json-reader.c:670
#, c-format
-msgid "The current node is of type '%s', but an object was expected."
-msgstr "Ο τρέχων κόμβος είναι του τύπου '%s', αλλά αναμενόταν ένα αντικείμενο."
+#| 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 "Ο τρέχων κόμβος είναι του τύπου «%s», αλλά αναμενόταν ένα αντικείμενο."
-#: ../json-glib/json-reader.c:654
+#: json-glib/json-reader.c:677
#, c-format
-msgid "The member '%s' is not defined in the object at the current position."
-msgstr "Το μέλος '%s' δεν ορίζεται στο αντικείμενο στην τρέχουσα θέση."
+#| 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 "Το μέλος «%s» δεν ορίζεται στο αντικείμενο στην τρέχουσα θέση."
-#: ../json-glib/json-reader.c:738 ../json-glib/json-reader.c:789
+#: json-glib/json-reader.c:758 json-glib/json-reader.c:809
#, c-format
-msgid "The current position holds a '%s' and not an object"
-msgstr "Η τρέχουσα θέση περιέχει ένα '%s' και όχι ένα αντικείμενο"
+#| msgid "The current position holds a '%s' and not an object"
+msgid "The current position holds a “%s” and not an object"
+msgstr "Η τρέχουσα θέση περιέχει ένα «%s» και όχι ένα αντικείμενο"
-#: ../json-glib/json-reader.c:829 ../json-glib/json-reader.c:867
-#: ../json-glib/json-reader.c:905 ../json-glib/json-reader.c:943
-#: ../json-glib/json-reader.c:988
+#: json-glib/json-reader.c:849 json-glib/json-reader.c:887
+#: json-glib/json-reader.c:925 json-glib/json-reader.c:963
+#: json-glib/json-reader.c:1008
#, c-format
-msgid "The current position holds a '%s' and not a value"
-msgstr "Η τρέχουσα θέση περιέχει ένα '%s' και όχι μια τιμή"
+#| msgid "The current position holds a '%s' and not a value"
+msgid "The current position holds a “%s” and not a value"
+msgstr "Η τρέχουσα θέση περιέχει ένα «%s» και όχι μια τιμή"
-#: ../json-glib/json-reader.c:951
+#: json-glib/json-reader.c:971
msgid "The current position does not hold a string type"
msgstr "Η τρέχουσα θέση δεν περιέχει τύπο συμβολοσειράς"
--- /dev/null
+# Croatian translation for json-glib.
+# Copyright (C) 2018 json-glib's COPYRIGHT HOLDER
+# This file is distributed under the same license as the json-glib package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: json-glib json-glib-1-4\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/json-glib/issues\n"
+"POT-Creation-Date: 2018-03-13 14:47+0000\n"
+"PO-Revision-Date: 2018-03-16 21:48+0100\n"
+"Language-Team: Croatian <hr@li.org>\n"
+"Language: hr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Last-Translator: \n"
+"X-Generator: Poedit 2.0.6\n"
+
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Uljepšani izlaz"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Poravnanje razmaka"
+
+#. 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
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: greška otvaranja datoteke: %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
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: greška obrade datoteke: %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
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: greška zapisivanja u 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:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: greška zatvaranja: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "DATOTEKA"
+
+#. Translators: this message will appear after the usage string
+#. and before the list of options.
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "Format JSON datoteka."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formati JSON resursa."
+
+#. 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:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Greška obrade mogućnosti naredbenog redka: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try “%s --help” for more information."
+msgstr "Pokušajte “%s --help” za više informacija."
+
+#. 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:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: nedostaju datoteke"
+
+#. 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 "Provjera JSON datoteka."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate provjerava JSON podatke na danom URI-ju."
+
+#. 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 "Očekivani je JSON objekt li korijenski čvor je “%s” vrste"
+
+#. translators: the '%s' is the type name
+#: json-glib/json-gvariant.c:524
+#, c-format
+msgid "Unexpected type “%s” in JSON node"
+msgstr "Neočekivana vrsta “%s” u JSON čvoru"
+
+#: json-glib/json-gvariant.c:594
+msgid "Missing elements in JSON array to conform to a tuple"
+msgstr "Nedostaju elementu u JSON polju za porvrdu tuple"
+
+#: json-glib/json-gvariant.c:622
+msgid "Missing closing symbol “)” in the GVariant tuple type"
+msgstr "Nedostaje simbol zatvaranja “)” u vrsti GVariant tuple"
+
+#: json-glib/json-gvariant.c:630
+msgid "Unexpected extra elements in JSON array"
+msgstr "Neočekivani dodatni elementi u JSON polju"
+
+#: json-glib/json-gvariant.c:909
+msgid "Invalid string value converting to GVariant"
+msgstr "Neispravna vrijednost izraza pretvorbe u GVariantu"
+
+#: json-glib/json-gvariant.c:964
+msgid ""
+"A GVariant dictionary entry expects a JSON object with exactly one member"
+msgstr "GVariant unos rječnika očekuje JSON objekt s točno jednim članom"
+
+#: json-glib/json-gvariant.c:1242
+#, c-format
+msgid "GVariant class “%c” not supported"
+msgstr "GVariant klasa “%c” nije podržana"
+
+#: json-glib/json-gvariant.c:1290
+msgid "Invalid GVariant signature"
+msgstr "Neispravan potpis GVariante"
+
+#: json-glib/json-gvariant.c:1338
+msgid "JSON data is empty"
+msgstr "JSON podatak je prazan"
+
+#. 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: Greška obrade: %s"
+
+#: json-glib/json-parser.c:992
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON podatak mora biti UTF-8 kôdiran"
+
+#: json-glib/json-path.c:389
+msgid "Only one root node is allowed in a JSONPath expression"
+msgstr "Samo jedan korijenski čvor je dopušten u JSONPath izrazu"
+
+#. translators: the %c is the invalid character
+#: json-glib/json-path.c:398
+#, c-format
+msgid "Root node followed by invalid character “%c”"
+msgstr "Korijenski čvor je slijeđen neispravnim znakom “%c”"
+
+#: json-glib/json-path.c:438
+msgid "Missing member name or wildcard after . character"
+msgstr "Nedostaje naziv člana ili zamjenski znak nakon . character"
+
+#: json-glib/json-path.c:512
+#, c-format
+msgid "Malformed slice expression “%*s”"
+msgstr "Krivo oblikovan dio izraza “%*s”"
+
+#: json-glib/json-path.c:556
+#, c-format
+msgid "Invalid set definition “%*s”"
+msgstr "Neispravna postavka definicije “%*s”"
+
+#: json-glib/json-path.c:609
+#, c-format
+msgid "Invalid slice definition “%*s”"
+msgstr "Neispravan dio definicije “%*s”"
+
+#: json-glib/json-path.c:637
+#, c-format
+msgid "Invalid array index definition “%*s”"
+msgstr "Neispravno polje sadržaja definicije “%*s”"
+
+#: json-glib/json-path.c:656
+#, c-format
+msgid "Invalid first character “%c”"
+msgstr "Neispravan prvi znak “%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 "Trenutni čvor je “%s” vrste, ali polje ili objekt je očekivan."
+
+#: 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 "Sadržaj “%d” je veći od veličine polja na trenutnom položaju."
+
+#: 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 "Sadržaj “%d” je veći od veličine objekta na trenutnom položaju."
+
+#: 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 "Nema dostupnih čvorova na trenutnom položaju"
+
+#: json-glib/json-reader.c:592
+#, c-format
+msgid "The current position holds a “%s” and not an array"
+msgstr "Trenutni položaj zauzima “%s” a ne polje"
+
+#: json-glib/json-reader.c:668
+#, c-format
+msgid "The current node is of type “%s”, but an object was expected."
+msgstr "Trenutni čvor je “%s” vrste, ali objekt je očekivan."
+
+#: json-glib/json-reader.c:675
+#, c-format
+msgid "The member “%s” is not defined in the object at the current position."
+msgstr "Član “%s” nije definiran u objektu na trenutnom položaju."
+
+#: 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 "Trenutni položaj zauzima “%s” a ne objekt"
+
+#: 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 "Trenutni položaj zauzima “%s” a ne vrijednost"
+
+#: json-glib/json-reader.c:968
+msgid "The current position does not hold a string type"
+msgstr "Trenutni položaj ne zauzima vrsta izraza"
--- /dev/null
+# Dutch translation for json-glib.
+# Copyright (C) 2016 json-glib's COPYRIGHT HOLDER
+# This file is distributed under the same license as the json-glib package.
+# Justin van Steijn <jvs@fsfe.org>, 2016.
+# Nathan Follens <nthn@unseen.is>, 2017.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: json-glib master\n"
+"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=json-"
+"glib&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2017-09-09 15:59+0000\n"
+"PO-Revision-Date: 2017-09-09 20:12+0200\n"
+"Last-Translator: Nathan Follens <nthn@unseen.is>\n"
+"Language-Team: Dutch <gnome-nl-list@gnome.org>\n"
+"Language: nl\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: Poedit 2.0.3\n"
+
+#: json-glib/json-glib-format.c:50
+msgid "Prettify output"
+msgstr "Uitvoer mooi maken"
+
+#: json-glib/json-glib-format.c:51
+msgid "Indentation spaces"
+msgstr "Inspringingspaties"
+
+#. 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
+#, c-format
+msgid "%s: %s: error opening file: %s\n"
+msgstr "%s: %s: fout bij het openen van bestand: %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
+#, c-format
+msgid "%s: %s: error parsing file: %s\n"
+msgstr "%s: %s: fout bij het ontleden van bestand: %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
+#, c-format
+msgid "%s: %s: error writing to stdout"
+msgstr "%s: %s: fout bij het schrijven naar 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:129 json-glib/json-glib-validate.c:87
+#, c-format
+msgid "%s: %s: error closing: %s\n"
+msgstr "%s: %s: fout bij het sluiten: %s\n"
+
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
+msgid "FILE"
+msgstr "BESTAND"
+
+#. Translators: this message will appear after the usage string
+#. and before the list of options.
+#: json-glib/json-glib-format.c:161
+msgid "Format JSON files."
+msgstr "JSON-bestanden formatteren."
+
+#: json-glib/json-glib-format.c:162
+msgid "json-glib-format formats JSON resources."
+msgstr "json-glib-format formatteert JSON-hulpbronnen."
+
+#. 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:179 json-glib/json-glib-validate.c:136
+#, c-format
+msgid "Error parsing commandline options: %s\n"
+msgstr "Fout bij het ontleden van commandolijn-opties: %s\n"
+
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format
+msgid "Try “%s --help” for more information."
+msgstr "Probeer ‘%s --help’ voor meer informatie."
+
+#. 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:193 json-glib/json-glib-validate.c:150
+#, c-format
+msgid "%s: missing files"
+msgstr "%s: ontbrekende bestanden"
+
+#. 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-bestanden valideren."
+
+#: json-glib/json-glib-validate.c:119
+msgid "json-glib-validate validates JSON data at the given URI."
+msgstr "json-glib-validate valideert JSON-gegevens op de opgegeven URI."
+
+#. 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 "Verwacht een JSON-object, maar de root node is van het type ‘%s’"
+
+#. translators: the '%s' is the type name
+#: json-glib/json-gvariant.c:524
+#, c-format
+msgid "Unexpected type “%s” in JSON node"
+msgstr "Onverwacht type ‘%s’ in JSON-node"
+
+#: json-glib/json-gvariant.c:594
+msgid "Missing elements in JSON array to conform to a tuple"
+msgstr "Ontbrekende elementen in JSON-array om tupel te bevestigen"
+
+#: json-glib/json-gvariant.c:622
+msgid "Missing closing symbol “)” in the GVariant tuple type"
+msgstr "Ontbrekend sluitsymbool ‘)’ in het GVariant-tupel-type"
+
+#: json-glib/json-gvariant.c:630
+msgid "Unexpected extra elements in JSON array"
+msgstr "Onverwachte extra elementen in JSON-array"
+
+#: json-glib/json-gvariant.c:909
+msgid "Invalid string value converting to GVariant"
+msgstr "Ongeldige tekenreekswaarde omzetten naar GVariant"
+
+#: json-glib/json-gvariant.c:964
+msgid ""
+"A GVariant dictionary entry expects a JSON object with exactly one member"
+msgstr ""
+"Een GVariant-woordenboekelement verwacht een JSON-object met precies één lid"
+
+#: json-glib/json-gvariant.c:1242
+#, c-format
+msgid "GVariant class “%c” not supported"
+msgstr "GVariant-klasse ‘%c’ niet ondersteund"
+
+#: json-glib/json-gvariant.c:1290
+msgid "Invalid GVariant signature"
+msgstr "Ongeldige GVariant-handtekening"
+
+#: json-glib/json-gvariant.c:1338
+msgid "JSON data is empty"
+msgstr "JSON-gegevens is leeg"
+
+#. 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:907
+#, c-format
+msgid "%s:%d:%d: Parse error: %s"
+msgstr "%s:%d:%d: Ontleedfout: %s"
+
+#: json-glib/json-parser.c:990
+msgid "JSON data must be UTF-8 encoded"
+msgstr "JSON-gegevens moeten gecodeerd zijn als UTF-8"
+
+#: json-glib/json-path.c:389
+msgid "Only one root node is allowed in a JSONPath expression"
+msgstr "Er mag slechts één root node zijn in een JSONPath-uitdrukking"
+
+#. translators: the %c is the invalid character
+#: json-glib/json-path.c:398
+#, c-format
+msgid "Root node followed by invalid character “%c”"
+msgstr "Root node gevolgd door ongeldig teken ‘%c’"
+
+#: json-glib/json-path.c:438
+msgid "Missing member name or wildcard after . character"
+msgstr "Ontbrekende naam van lid of wildcard na .-teken"
+
+#: json-glib/json-path.c:512
+#, c-format
+msgid "Malformed slice expression “%*s”"
+msgstr "Misvormde slice-uitdrukking ‘%*s’"
+
+#: json-glib/json-path.c:556
+#, c-format
+msgid "Invalid set definition “%*s”"
+msgstr "Ongeldige set-definitie ‘%*s’"
+
+#: json-glib/json-path.c:609
+#, c-format
+msgid "Invalid slice definition “%*s”"
+msgstr "Ongeldige slice-definitie ‘%*s’"
+
+#: json-glib/json-path.c:637
+#, c-format
+msgid "Invalid array index definition “%*s”"
+msgstr "Ongeldige array-index-definitie ‘%*s’"
+
+#: json-glib/json-path.c:656
+#, c-format
+msgid "Invalid first character “%c”"
+msgstr "Ongeldig eerste teken ‘%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 ""
+"De huidige node is van het type ‘%s’, maar een array of een object was "
+"verwacht."
+
+#: 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 ""
+"De index ‘%d’ is hoger dan de grootte van de array op de huidige positie."
+
+#: 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 ""
+"De index ‘%d’ is hoger dan de grootte van het object op de huidige positie."
+
+#: 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 "Geen node beschikbaar op de huidige positie"
+
+#: json-glib/json-reader.c:592
+#, c-format
+msgid "The current position holds a “%s” and not an array"
+msgstr "De huidige positie bevat een ‘%s’ en is geen array"
+
+#: json-glib/json-reader.c:668
+#, c-format
+msgid "The current node is of type “%s”, but an object was expected."
+msgstr "De huidige node is van het type ‘%s’, maar een object was verwacht."
+
+#: json-glib/json-reader.c:675
+#, c-format
+msgid "The member “%s” is not defined in the object at the current position."
+msgstr "Het lid ‘%s’ is niet gedefinieerd in het object op de huidige positie."
+
+#: 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 "De huidige positie bevat een ‘%s’ en is geen object"
+
+#: 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 "De huidige positie bevat een ‘%s’ en is geen waarde"
+
+#: json-glib/json-reader.c:968
+msgid "The current position does not hold a string type"
+msgstr "De huidige positie bevat geen tekenreekstype"
# This file is distributed under the same license as the json-glib package.
# Cédric Valmary <cvalmary@yahoo.fr>, 2015.
# Cédric Valmary (Tot en òc) <cvalmary@yahoo.fr>, 2015.
-# Cédric Valmary (totenoc.eu) <cvalmary@yahoo.fr>, 2016.
+# Cédric Valmary (totenoc.eu) <cvalmary@yahoo.fr>, 2016, 2018.
msgid ""
msgstr ""
"Project-Id-Version: json-glib master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
-"glib&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2016-05-09 20:54+0000\n"
-"PO-Revision-Date: 2016-05-08 18:49+0200\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/json-glib/issues\n"
+"POT-Creation-Date: 2018-04-09 05:53+0000\n"
+"PO-Revision-Date: 2018-04-19 09:56+0200\n"
"Last-Translator: Cédric Valmary (totenoc.eu) <cvalmary@yahoo.fr>\n"
"Language-Team: Tot En Òc\n"
"Language: oc\n"
"X-Launchpad-Export-Date: 2015-05-20 16:56+0000\n"
"X-Project-Style: gnome\n"
-#: ../json-glib/json-glib-format.c:50
+#: json-glib/json-glib-format.c:50
msgid "Prettify output"
msgstr "Formatatge indentat"
-#: ../json-glib/json-glib-format.c:51
+#: json-glib/json-glib-format.c:51
msgid "Indentation spaces"
msgstr "Espacis d'indentacion"
#. 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:77 json-glib/json-glib-validate.c:63
#, c-format
msgid "%s: %s: error opening file: %s\n"
-msgstr "%s : %s : error de dobertura del fichièr : %s\n"
+msgstr "%s : %s : error de dobertura del fichièr : %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:89 json-glib/json-glib-validate.c:75
#, c-format
msgid "%s: %s: error parsing file: %s\n"
-msgstr "%s : %s : error d'analisi del fichièr : %s\n"
+msgstr "%s : %s : error d'analisi del fichièr : %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:108
#, c-format
msgid "%s: %s: error writing to stdout"
-msgstr "%s : %s : error d'escritura cap a stdout"
+msgstr "%s : %s : error d'escritura cap a 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:129 ../json-glib/json-glib-validate.c:87
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
#, c-format
msgid "%s: %s: error closing: %s\n"
-msgstr "%s : %s : error de tampadura : %s\n"
+msgstr "%s : %s : error de tampadura : %s\n"
-#: ../json-glib/json-glib-format.c:158 ../json-glib/json-glib-validate.c:115
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
msgid "FILE"
msgstr "FICHIÈR"
#. Translators: this message will appear after the usage string
#. and before the list of options.
-#: ../json-glib/json-glib-format.c:161
+#: json-glib/json-glib-format.c:161
msgid "Format JSON files."
msgstr "Mesa en forma de fichièrs JSON."
-#: ../json-glib/json-glib-format.c:162
+#: json-glib/json-glib-format.c:162
msgid "json-glib-format formats JSON resources."
msgstr "json-glib-format met en forma de ressorsas JSON."
#. * means the user is calling json-glib-validate without any
#. * argument.
#.
-#: ../json-glib/json-glib-format.c:179 ../json-glib/json-glib-validate.c:136
+#: json-glib/json-glib-format.c:179 json-glib/json-glib-validate.c:136
#, c-format
msgid "Error parsing commandline options: %s\n"
-msgstr "Error d'analisi de las opcions de la linha de comanda : %s\n"
+msgstr "Error d'analisi de las opcions de la linha de comanda : %s\n"
-#: ../json-glib/json-glib-format.c:181 ../json-glib/json-glib-format.c:195
-#: ../json-glib/json-glib-validate.c:138 ../json-glib/json-glib-validate.c:152
-#, c-format
-msgid "Try \"%s --help\" for more information."
-msgstr "Ensajatz « %s --help » per mai d'informacions."
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
+#, c-format, c-format
+#| msgid "Try \"%s --help\" for more information."
+msgid "Try “%s --help” for more information."
+msgstr "Ensajatz « %s --help » per mai d'informacions."
#. 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:193 ../json-glib/json-glib-validate.c:150
+#: json-glib/json-glib-format.c:193 json-glib/json-glib-validate.c:150
#, c-format
msgid "%s: missing files"
-msgstr "%s : fichièrs mancants"
+msgstr "%s : fichièrs mancants"
#. 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 "Validacion de fichièrs 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 de donadas JSON a l'URI indicada."
-#: ../json-glib/json-gobject.c:943
-#, c-format
-msgid "Expecting a JSON object, but the root node is of type `%s'"
-msgstr "Objècte de tipe JSON esperat mas lo nosèl raiç es de tipe « %s »"
-
-#: ../json-glib/json-gvariant.c:523
-#, c-format
-msgid "Unexpected type '%s' in JSON node"
-msgstr "Tipe « %s » inesperat dins lo nosèl JSON"
-
-#: ../json-glib/json-gvariant.c:593
+#. translators: the %s is the name of the data structure
+#: json-glib/json-gobject.c:940
+#, c-format, c-format
+#| 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 "Objècte de tipe JSON esperat mas lo nosèl raiç es de tipe « %s »"
+
+#. translators: the '%s' is the type name
+#: json-glib/json-gvariant.c:524
+#, c-format, c-format
+#| msgid "Unexpected type '%s' in JSON node"
+msgid "Unexpected type “%s” in JSON node"
+msgstr "Tipe « %s » inesperat dins lo nosèl JSON"
+
+#: json-glib/json-gvariant.c:594
msgid "Missing elements in JSON array to conform to a tuple"
msgstr "Elements mancants dins lo tablèu JSON per èsser confòrme a un tuple"
-#: ../json-glib/json-gvariant.c:621
-msgid "Missing closing symbol ')' in the GVariant tuple type"
-msgstr "Simbòl tampant « ) » mancant dins lo tuple 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 "Simbòl tampant « ) » mancant dins lo tuple GVariant"
-#: ../json-glib/json-gvariant.c:629
+#: json-glib/json-gvariant.c:630
msgid "Unexpected extra elements in JSON array"
msgstr "Elements suplementaris inesperats dins lo tablèu JSON"
-#: ../json-glib/json-gvariant.c:908
+#: json-glib/json-gvariant.c:909
msgid "Invalid string value converting to GVariant"
msgstr "Cadena de caractèrs invalida per la conversion en GVariant"
-#: ../json-glib/json-gvariant.c:964
+#: json-glib/json-gvariant.c:964
msgid ""
"A GVariant dictionary entry expects a JSON object with exactly one member"
msgstr ""
"Una entrada de diccionari GVariant requerís un objècte JSON que conten un "
"sol membre"
-#: ../json-glib/json-gvariant.c:1248
-#, c-format
-msgid "GVariant class '%c' not supported"
-msgstr "Classa GVariant « %c » pas presa en carga"
+#: json-glib/json-gvariant.c:1242
+#, c-format, c-format
+#| msgid "GVariant class '%c' not supported"
+msgid "GVariant class “%c” not supported"
+msgstr "Classa GVariant « %c » pas presa en carga"
-#: ../json-glib/json-gvariant.c:1296
+#: json-glib/json-gvariant.c:1290
msgid "Invalid GVariant signature"
msgstr "Signatura GVariant invalida"
-#: ../json-glib/json-gvariant.c:1344
+#: json-glib/json-gvariant.c:1338
msgid "JSON data is empty"
msgstr "Las donadas JSON son voidas"
-#: ../json-glib/json-parser.c:914
+#. 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: Error d'analisi : %s"
+msgstr "%s:%d:%d: Error d'analisi : %s"
-#: ../json-glib/json-parser.c:997
+#: json-glib/json-parser.c:992
msgid "JSON data must be UTF-8 encoded"
msgstr "Las donadas JSON devon èsser encodadas en 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 "Un sol nosèl raiç d'autorizat dins una expression JSONPath"
-#: ../json-glib/json-path.c:397
-#, c-format
-msgid "Root node followed by invalid character '%c'"
-msgstr "Nosèl raiç seguit d'un caractèr invalid « %c »"
+#. translators: the %c is the invalid character
+#: json-glib/json-path.c:398
+#, c-format, c-format
+#| msgid "Root node followed by invalid character '%c'"
+msgid "Root node followed by invalid character “%c”"
+msgstr "Nosèl raiç seguit d'un caractèr invalid « %c »"
-#: ../json-glib/json-path.c:437
+#: json-glib/json-path.c:438
msgid "Missing member name or wildcard after . character"
-msgstr "Nom de membre o caractèr joker mancant aprèp un caractèr « . »"
-
-#: ../json-glib/json-path.c:511
-#, c-format
-msgid "Malformed slice expression '%*s'"
-msgstr "Expression de talhon malformat « %*s »"
-
-#: ../json-glib/json-path.c:555
-#, c-format
-msgid "Invalid set definition '%*s'"
-msgstr "Definicion d'ensemble invalida « %*s »"
-
-#: ../json-glib/json-path.c:608
-#, c-format
-msgid "Invalid slice definition '%*s'"
-msgstr "Definicion de talha invalida « %*s »"
-
-#: ../json-glib/json-path.c:636
-#, c-format
-msgid "Invalid array index definition '%*s'"
-msgstr "Definicion d'indici de tablèu invalida « %*s »"
-
-#: ../json-glib/json-path.c:655
-#, c-format
-msgid "Invalid first character '%c'"
-msgstr "Primièr caractèr « %c » invalid"
-
-#: ../json-glib/json-reader.c:473
-#, c-format
+msgstr "Nom de membre o caractèr joker mancant aprèp un caractèr « . »"
+
+#: json-glib/json-path.c:512
+#, c-format, c-format
+#| msgid "Malformed slice expression '%*s'"
+msgid "Malformed slice expression “%*s”"
+msgstr "Expression de segmentacion malformada « %*s »"
+
+#: json-glib/json-path.c:556
+#, c-format, c-format
+#| msgid "Invalid set definition '%*s'"
+msgid "Invalid set definition “%*s”"
+msgstr "Definicion d'ensemble invalida « %*s »"
+
+#: json-glib/json-path.c:609
+#, c-format, c-format
+#| msgid "Invalid slice definition '%*s'"
+msgid "Invalid slice definition “%*s”"
+msgstr "Definicion de segmentacion invalida « %*s »"
+
+#: json-glib/json-path.c:637
+#, c-format, c-format
+#| msgid "Invalid array index definition '%*s'"
+msgid "Invalid array index definition “%*s”"
+msgstr "Definicion d'indici de tablèu invalida « %*s »"
+
+#: json-glib/json-path.c:656
+#, c-format, c-format
+#| msgid "Invalid first character '%c'"
+msgid "Invalid first character “%c”"
+msgstr "Primièr caractèr « %c » invalid"
+
+#: json-glib/json-reader.c:474
+#, c-format, 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."
+"The current node is of type “%s”, but an array or an object was expected."
msgstr ""
-"Lo nosèl corrent es de tipe « %s » mas un tablèu o un objècte èra esperat."
+"Lo nosèl corrent es de tipe « %s » mas un tablèu o un objècte èra esperat."
-#: ../json-glib/json-reader.c:485
-#, c-format
+#: json-glib/json-reader.c:486
+#, c-format, 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."
+"The index “%d” is greater than the size of the array at the current position."
msgstr ""
-"L'indici « %d » es mai grand que la talha del tablèu a la posicion actuala."
+"L'indici « %d » es mai grand que la talha del tablèu a la posicion "
+"actuala."
-#: ../json-glib/json-reader.c:502
-#, c-format
+#: json-glib/json-reader.c:503
+#, c-format, 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 ""
-"L'indici « %d » es mai grand que la talha de l'objècte indicat a la posicion "
-"actuala."
-
-#: ../json-glib/json-reader.c:586 ../json-glib/json-reader.c:750
-#: ../json-glib/json-reader.c:801 ../json-glib/json-reader.c:839
-#: ../json-glib/json-reader.c:877 ../json-glib/json-reader.c:915
-#: ../json-glib/json-reader.c:953 ../json-glib/json-reader.c:998
-#: ../json-glib/json-reader.c:1034 ../json-glib/json-reader.c:1060
+"L'indici « %d » es mai grand que la talha de l'objècte indicat a la "
+"posicion actuala."
+
+#: 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 "Cap de nosèl pas disponible a aquesta posicion."
-#: ../json-glib/json-reader.c:593
-#, c-format
-msgid "The current position holds a '%s' and not an array"
+#: json-glib/json-reader.c:592
+#, c-format, c-format
+#| msgid "The current position holds a '%s' and not an array"
+msgid "The current position holds a “%s” and not an array"
msgstr ""
-"La posicion actuala conten un element de tipe « %s » e non pas un tablèu"
-
-#: ../json-glib/json-reader.c:669
-#, c-format
-msgid "The current node is of type '%s', but an object was expected."
-msgstr "Lo nosèl actual es de tipe « %s » mas un objècte èra esperat."
-
-#: ../json-glib/json-reader.c:676
-#, c-format
-msgid "The member '%s' is not defined in the object at the current position."
-msgstr "Lo membre « %s » es pas definit dins l'objècte a la posicion actuala."
-
-#: ../json-glib/json-reader.c:757 ../json-glib/json-reader.c:808
-#, c-format
-msgid "The current position holds a '%s' and not an object"
-msgstr ""
-"La posicion actuala conten un element de tipe « %s » e non pas un objècte"
-
-#: ../json-glib/json-reader.c:848 ../json-glib/json-reader.c:886
-#: ../json-glib/json-reader.c:924 ../json-glib/json-reader.c:962
-#: ../json-glib/json-reader.c:1007
-#, c-format
-msgid "The current position holds a '%s' and not a value"
+"La posicion actuala conten un element de tipe « %s » e non pas un tablèu"
+
+#: json-glib/json-reader.c:668
+#, c-format, c-format
+#| 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 "Lo nosèl actual es de tipe « %s » mas un objècte èra esperat."
+
+#: json-glib/json-reader.c:675
+#, c-format, c-format
+#| 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 "Lo membre « %s » es pas definit dins l'objècte a la posicion actuala."
+
+#: json-glib/json-reader.c:758 json-glib/json-reader.c:806
+#, c-format, c-format
+#| msgid "The current position holds a '%s' and not an object"
+msgid "The current position holds a “%s” and not an object"
+msgstr "La posicion actuala conten un element de tipe « %s » e non pas un objècte"
+
+#: 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, c-format
+#| msgid "The current position holds a '%s' and not a value"
+msgid "The current position holds a “%s” and not a value"
msgstr ""
-"La posicion actuala conten un element de tipe « %s » e non pas una valor"
+"La posicion actuala conten un element de tipe « %s » e non pas una valor"
-#: ../json-glib/json-reader.c:970
+#: json-glib/json-reader.c:968
msgid "The current position does not hold a string type"
msgstr "La posicion actuala conten pas una cadena de caractèrs"
msgid ""
msgstr ""
"Project-Id-Version: json-glib master\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-08-18 13:12+0000\n"
-"PO-Revision-Date: 2015-06-19 19:17+0200\n"
-"Last-Translator: Daniel Șerbănescu <daniel [at] serbanescu [dot] dk>\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/json-glib/issues\n"
+"POT-Creation-Date: 2018-03-13 14:47+0000\n"
+"PO-Revision-Date: 2018-04-06 00:42+0300\n"
+"Last-Translator: Florentina Mușat <florentina.musat.28@gmail.com>\n"
"Language-Team: Gnome Romanian Translation Team\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2);;\n"
-"X-Generator: Virtaal 0.7.1\n"
+"X-Generator: Poedit 2.0.6\n"
"X-Project-Style: gnome\n"
-#: ../json-glib/json-glib-format.c:50
+#: json-glib/json-glib-format.c:50
msgid "Prettify output"
msgstr "Înfrumusețează rezultatul"
-#: ../json-glib/json-glib-format.c:51
+#: json-glib/json-glib-format.c:51
msgid "Indentation spaces"
msgstr "Spații de indentare"
#. 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:77 json-glib/json-glib-validate.c:63
#, c-format
msgid "%s: %s: error opening file: %s\n"
msgstr "%s: %s: eroare la deschiderea fișierului: %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:89 json-glib/json-glib-validate.c:75
#, c-format
msgid "%s: %s: error parsing file: %s\n"
msgstr "%s: %s: eroare la parsarea fișierului: %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:108
#, c-format
msgid "%s: %s: error writing to stdout"
msgstr "%s: %s: eroare la scrierea în 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:129 json-glib/json-glib-validate.c:87
#, c-format
msgid "%s: %s: error closing: %s\n"
msgstr "%s: %s: eroare la închidere: %s\n"
-#: ../json-glib/json-glib-format.c:157 ../json-glib/json-glib-validate.c:115
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
msgid "FILE"
msgstr "FIȘIER"
#. 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:161
msgid "Format JSON files."
msgstr "Formatează fișiere JSON."
-#: ../json-glib/json-glib-format.c:161
+#: json-glib/json-glib-format.c:162
msgid "json-glib-format formats JSON resources."
msgstr "json-glib-format formatează resurse 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:179 json-glib/json-glib-validate.c:136
#, c-format
msgid "Error parsing commandline options: %s\n"
msgstr "Eroare la parsarea opțiunilor din linia de comandă: %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:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
#, c-format
-msgid "Try \"%s --help\" for more information."
+msgid "Try “%s --help” for more information."
msgstr "Încercați „%s --help” pentru mai multe informații."
#. 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:193 json-glib/json-glib-validate.c:150
#, c-format
msgid "%s: missing files"
msgstr "%s: lipsesc fișiere"
#. 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 "Validează fișiere 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 validează date JSON la URI-ul dat."
-#: ../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 "Se așteaptă un obiect JSON, dar nodul rădăcină este de tip „%s”"
+msgid "Expecting a JSON object, but the root node is of type “%s”"
+msgstr "Se așteaptă un obiect JSON, dar nodul rădăcină este de tipul „%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"
+msgid "Unexpected type “%s” in JSON node"
msgstr "Tip neașteptat „%s” în nodul 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 "Lipsesc elemente în matricea JSON pentru a fi în acord cu un tuplu"
-#: ../json-glib/json-gvariant.c:621
-msgid "Missing closing symbol ')' in the GVariant tuple type"
+#: json-glib/json-gvariant.c:622
+msgid "Missing closing symbol “)” in the GVariant tuple type"
msgstr "Lipsește simbolul de închidere „)” în tipul de tuplu GVariant"
-#: ../json-glib/json-gvariant.c:629
+#: json-glib/json-gvariant.c:630
msgid "Unexpected extra elements in JSON array"
msgstr "Elemente adiționale neașteptate în matricea JSON"
-#: ../json-glib/json-gvariant.c:908
+#: json-glib/json-gvariant.c:909
msgid "Invalid string value converting to GVariant"
msgstr "Valoare de șir nevalidă în timpul convertirii la GVariant"
-#: ../json-glib/json-gvariant.c:964
+#: json-glib/json-gvariant.c:964
msgid ""
"A GVariant dictionary entry expects a JSON object with exactly one member"
msgstr ""
"O înregistrate de dicționar GVariant presupune un obiect JSON cu exact un "
"membru"
-#: ../json-glib/json-gvariant.c:1248
+#: json-glib/json-gvariant.c:1242
#, c-format
-msgid "GVariant class '%c' not supported"
-msgstr "Clasă GVariant „%c” nesuportată"
+msgid "GVariant class “%c” not supported"
+msgstr "Clasa GVariant „%c” nu este suportată"
-#: ../json-glib/json-gvariant.c:1296
+#: json-glib/json-gvariant.c:1290
msgid "Invalid GVariant signature"
msgstr "Semnătură GVariant nevalidă"
-#: ../json-glib/json-gvariant.c:1344
+#: json-glib/json-gvariant.c:1338
msgid "JSON data is empty"
msgstr "Datele JSON sunt goale"
-#: ../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: Eroare la parsare: %s"
-#: ../json-glib/json-parser.c:883
+#: json-glib/json-parser.c:992
msgid "JSON data must be UTF-8 encoded"
msgstr "Datele JSON trebuie să fie codate 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 "Doar un nod rădăcină este permis într-o expresie 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 "Nod rădăcină urmat de caracterul nevalid „%c”"
+msgid "Root node followed by invalid character “%c”"
+msgstr "Nodul rădăcină urmat de caracterul nevalid „%c”"
-#: ../json-glib/json-path.c:437
+#: json-glib/json-path.c:438
msgid "Missing member name or wildcard after . character"
msgstr "Lipsește un nume de membru sau metacaracter după caracterul „.”"
-#: ../json-glib/json-path.c:511
+#: json-glib/json-path.c:512
#, c-format
-msgid "Malformed slice expression '%*s'"
-msgstr "Expresie slice eronată „%*s”"
+msgid "Malformed slice expression “%*s”"
+msgstr "Expresie de slice eronată „%*s”"
-#: ../json-glib/json-path.c:555
+#: json-glib/json-path.c:556
#, c-format
-msgid "Invalid set definition '%*s'"
+msgid "Invalid set definition “%*s”"
msgstr "Definiție de set nevalidă „%*s”"
-#: ../json-glib/json-path.c:608
+#: json-glib/json-path.c:609
#, c-format
-msgid "Invalid slice definition '%*s'"
-msgstr "Definiție slice nevalidă „%*s”"
+msgid "Invalid slice definition “%*s”"
+msgstr "Definiție de slice nevalidă „%*s”"
-#: ../json-glib/json-path.c:636
+#: json-glib/json-path.c:637
#, c-format
-msgid "Invalid array index definition '%*s'"
-msgstr "Definiția indexului matricii nevalidă „%*s”"
+msgid "Invalid array index definition “%*s”"
+msgstr "Definiția indexului de matrice nevalidă „%*s”"
-#: ../json-glib/json-path.c:655
+#: json-glib/json-path.c:656
#, c-format
-msgid "Invalid first character '%c'"
+msgid "Invalid first character “%c”"
msgstr "Primul caracter nevalid „%c”"
-#: ../json-glib/json-reader.c:473
+#: json-glib/json-reader.c:474
#, c-format
msgid ""
-"The current node is of type '%s', but an array or an object was expected."
+"The current node is of type “%s”, but an array or an object was expected."
msgstr ""
-"Nodul curent deste de tipul „%s”, dar o matrice sau un obiect a fost "
-"așteptat."
+"Nodul curent este de tipul „%s”, dar o matrice sau un obiect a fost așteptat."
-#: ../json-glib/json-reader.c:485
+#: json-glib/json-reader.c:486
#, c-format
msgid ""
-"The index '%d' is greater than the size of the array at the current position."
+"The index “%d” is greater than the size of the array at the current position."
msgstr ""
-"Indexul „%d” este mai mare decât dimensiunea matricii la poziția curentă."
+"Indexul „%d” este mai mare decât dimensiunea matricei la poziția curentă."
-#: ../json-glib/json-reader.c:502
+#: json-glib/json-reader.c:503
#, c-format
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 ""
"Indexul „%d” este mai mare decât dimensiunea obiectului la poziția curentă."
-#: ../json-glib/json-reader.c:586 ../json-glib/json-reader.c:750
-#: ../json-glib/json-reader.c:801 ../json-glib/json-reader.c:839
-#: ../json-glib/json-reader.c:877 ../json-glib/json-reader.c:915
-#: ../json-glib/json-reader.c:953 ../json-glib/json-reader.c:998
-#: ../json-glib/json-reader.c:1034 ../json-glib/json-reader.c:1060
+#: 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 "Niciun nod disponibil la poziția curentă"
-#: ../json-glib/json-reader.c:593
+#: json-glib/json-reader.c:592
#, c-format
-msgid "The current position holds a '%s' and not an array"
-msgstr "Poziția curentă ține un „%s” ci nu o matrice"
+msgid "The current position holds a “%s” and not an array"
+msgstr "Poziția curentă ține un „%s” și nu o matrice"
-#: ../json-glib/json-reader.c:669
+#: json-glib/json-reader.c:668
#, c-format
-msgid "The current node is of type '%s', but an object was expected."
-msgstr "Nodul curent deste de tipul „%s”, dar un obiect a fost așteptat."
+msgid "The current node is of type “%s”, but an object was expected."
+msgstr "Nodul curent este de tipul „%s”, dar s-a așteptat un obiect."
-#: ../json-glib/json-reader.c:676
+#: json-glib/json-reader.c:675
#, c-format
-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 "Membrul „%s” nu este definit în obiectul de la poziția curentă."
-#: ../json-glib/json-reader.c:757 ../json-glib/json-reader.c:808
+#: 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 "Poziția curentă ține un „%s” ci nu un obiect"
+msgid "The current position holds a “%s” and not an object"
+msgstr "Poziția curentă ține un „%s” și nu un obiect"
-#: ../json-glib/json-reader.c:848 ../json-glib/json-reader.c:886
-#: ../json-glib/json-reader.c:924 ../json-glib/json-reader.c:962
-#: ../json-glib/json-reader.c:1007
+#: 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 "Poziția curentă ține un „%s” ci nu o valoare"
+msgid "The current position holds a “%s” and not a value"
+msgstr "Poziția curentă ține un „%s” și nu o valoare"
-#: ../json-glib/json-reader.c:970
+#: json-glib/json-reader.c:968
msgid "The current position does not hold a string type"
msgstr "Poziția curentă nu ține un șir"
# Copyright (C) 2011 json-glib's COPYRIGHT HOLDER
# This file is distributed under the same license as the json-glib package.
#
-# Matej Urbančič <mateju@svn.gnome.org>, 2011-2014.
+# Matej Urbančič <mateju@svn.gnome.org>, 2011–2017.
#
msgid ""
msgstr ""
"Project-Id-Version: json-glib master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
+"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=json-"
"glib&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2014-03-31 09:49+0000\n"
-"PO-Revision-Date: 2014-04-03 20:37+0100\n"
+"POT-Creation-Date: 2017-06-27 22:31+0000\n"
+"PO-Revision-Date: 2017-09-19 23:20+0200\n"
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
"Language: sl\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%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
+"%100==4 ? 3 : 0);\n"
"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: Poedit 1.5.4\n"
+"X-Generator: Poedit 2.0.1\n"
-#: ../json-glib/json-glib-format.c:50
+#: json-glib/json-glib-format.c:50
msgid "Prettify output"
msgstr "Olepšaj odvod"
-#: ../json-glib/json-glib-format.c:51
+#: json-glib/json-glib-format.c:51
msgid "Indentation spaces"
msgstr "Presledki zamika"
#. 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:77 json-glib/json-glib-validate.c:63
#, c-format
msgid "%s: %s: error opening file: %s\n"
msgstr "%s: %s: napaka odpiranja datoteke: %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:89 json-glib/json-glib-validate.c:75
#, c-format
msgid "%s: %s: error parsing file: %s\n"
msgstr "%s: %s: napaka razčlenjevanja datoteke: %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:108
#, c-format
msgid "%s: %s: error writing to stdout"
msgstr "%s: %s: napaka pisanja na standardni odvod"
#. 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:129 json-glib/json-glib-validate.c:87
#, c-format
msgid "%s: %s: error closing: %s\n"
msgstr "%s: %s: napaka zapiranja: %s\n"
-#: ../json-glib/json-glib-format.c:157 ../json-glib/json-glib-validate.c:115
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
msgid "FILE"
msgstr "DATOTEKA"
#. 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:161
msgid "Format JSON files."
msgstr "Oblikuj datoteke JSON."
-#: ../json-glib/json-glib-format.c:161
+#: json-glib/json-glib-format.c:162
msgid "json-glib-format formats JSON resources."
msgstr "Možnost json-glib-format oblikuje zapis virov 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:179 json-glib/json-glib-validate.c:136
#, c-format
msgid "Error parsing commandline options: %s\n"
msgstr "Napaka med razčlenjevanjem možnosti ukazne vrstice: %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:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
#, c-format
-msgid "Try \"%s --help\" for more information."
-msgstr "Poskusite \"%s --help\" za več podrobnosti."
+msgid "Try “%s --help” for more information."
+msgstr "Poskusite zagnati ukaz »%s --help« za več podrobnosti."
#. 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:193 json-glib/json-glib-validate.c:150
#, c-format
msgid "%s: missing files"
msgstr "%s: manjkajoče datoteke"
#. 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 "Overi datoteke 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 "Možnost json-glib-validate overi podatke JSON za podani naslov URI."
-#: ../json-glib/json-gobject.c:915
+#. translators: the %s is the name of the data structure
+#: json-glib/json-gobject.c:943
#, c-format
-msgid "Expecting a JSON object, but the root node is of type `%s'"
-msgstr "Pričakovan je predmet JSON, vendar pa je korensko vozlišče vrste `%s'"
+msgid "Expecting a JSON object, but the root node is of type “%s”"
+msgstr "Pričakovan je predmet JSON, vendar pa je korensko vozlišče vrste »%s«"
-#: ../json-glib/json-gvariant.c:523
+#. translators: the '%s' is the type name
+#: json-glib/json-gvariant.c:523
#, c-format
-msgid "Unexpected type '%s' in JSON node"
-msgstr "Nepričakovana vrsta '%s' v vozlišču JSON"
+msgid "Unexpected type “%s” in JSON node"
+msgstr "Nepričakovana vrsta »%s« v vozlišču JSON"
-#: ../json-glib/json-gvariant.c:593
+#: json-glib/json-gvariant.c:593
msgid "Missing elements in JSON array to conform to a tuple"
msgstr "Manjkajo predmeti v polju JSON za skladnost z n-terico."
-#: ../json-glib/json-gvariant.c:621
-msgid "Missing closing symbol ')' in the GVariant tuple type"
-msgstr "Manjka zaključni znak ')' v vrsti n-terice GVariant"
+#: json-glib/json-gvariant.c:621
+msgid "Missing closing symbol “)” in the GVariant tuple type"
+msgstr "Manjka zaključni znak » ) « v vrsti n-terice GVariant"
-#: ../json-glib/json-gvariant.c:629
+#: json-glib/json-gvariant.c:629
msgid "Unexpected extra elements in JSON array"
msgstr "Nepričakovan dodatni predmet polja JSON"
-#: ../json-glib/json-gvariant.c:908
+#: json-glib/json-gvariant.c:908
msgid "Invalid string value converting to GVariant"
msgstr "Neveljavna vrednost niza med pretvarjanjem v GVariant"
-#: ../json-glib/json-gvariant.c:964
+#: json-glib/json-gvariant.c:964
msgid ""
"A GVariant dictionary entry expects a JSON object with exactly one member"
msgstr "Slovar GVariant pričakuje predmet JSON z natanko enim določilom"
-#: ../json-glib/json-gvariant.c:1244
+#: json-glib/json-gvariant.c:1248
#, c-format
-msgid "GVariant class '%c' not supported"
-msgstr "Razred GVariant '%c' ni podprt."
+msgid "GVariant class “%c” not supported"
+msgstr "Razred GVariant »%c« ni podprt."
-#: ../json-glib/json-gvariant.c:1292
+#: json-glib/json-gvariant.c:1296
msgid "Invalid GVariant signature"
msgstr "Neveljaven podpis GVariant"
-#: ../json-glib/json-gvariant.c:1340
+#: json-glib/json-gvariant.c:1344
msgid "JSON data is empty"
msgstr "Podatki JSON so prazni"
-#: ../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:907
#, c-format
msgid "%s:%d:%d: Parse error: %s"
msgstr "%s:%d:%d: napaka razčlenjevanje: %s"
-#: ../json-glib/json-parser.c:883
+#: json-glib/json-parser.c:990
msgid "JSON data must be UTF-8 encoded"
msgstr "Podatki JSON morajo biti kodirani v naboru 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 "Le eno korensko vozlišče je dovoljeno v izrazu 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 "Korensko vozlišče se konča z neveljavnim znakom '%c'"
+msgid "Root node followed by invalid character “%c”"
+msgstr "Korensko vozlišče se konča z neveljavnim znakom »%c«"
-#: ../json-glib/json-path.c:437
+#: json-glib/json-path.c:438
msgid "Missing member name or wildcard after . character"
msgstr "Manjka ime člana ali pa nadomestni znak po znaku . (pika)"
-#: ../json-glib/json-path.c:511
+#: json-glib/json-path.c:512
#, c-format
-msgid "Malformed slice expression '%*s'"
-msgstr "Napačno oblikovan izraz rezine '%*s'"
+msgid "Malformed slice expression “%*s”"
+msgstr "Napačno oblikovan izraz rezine »%*s«"
-#: ../json-glib/json-path.c:555
+#: json-glib/json-path.c:556
#, c-format
-msgid "Invalid set definition '%*s'"
-msgstr "Neveljavno določilo '%*s'"
+msgid "Invalid set definition “%*s”"
+msgstr "Neveljavno določilo »%*s«"
-#: ../json-glib/json-path.c:608
+#: json-glib/json-path.c:609
#, c-format
-msgid "Invalid slice definition '%*s'"
-msgstr "Neveljavno določilo rezine '%*s'"
+msgid "Invalid slice definition “%*s”"
+msgstr "Neveljavno določilo rezine »%*s«"
-#: ../json-glib/json-path.c:636
+#: json-glib/json-path.c:637
#, c-format
-msgid "Invalid array index definition '%*s'"
-msgstr "Neveljavno določilo kazala polja '%*s'"
+msgid "Invalid array index definition “%*s”"
+msgstr "Neveljavno določilo kazala polja »%*s«"
-#: ../json-glib/json-path.c:655
+#: json-glib/json-path.c:656
#, c-format
-msgid "Invalid first character '%c'"
-msgstr "Neveljaven prvi znak '%c'"
+msgid "Invalid first character “%c”"
+msgstr "Neveljaven prvi znak »%c«"
-#: ../json-glib/json-reader.c:456
+#: 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 "Trenutno vozlišče je vrste '%s', pričakovano pa je polje ali predmet."
+"The current node is of type “%s”, but an array or an object was expected."
+msgstr "Trenutno vozlišče je vrste »%s«, pričakovano pa je polje ali predmet."
-#: ../json-glib/json-reader.c:468
+#: 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 "Kazalo '%d' je večje od velikosti polja na trenutnem položaju."
+"The index “%d” is greater than the size of the array at the current position."
+msgstr "Kazalo »%d« je večje od velikosti polja na trenutnem položaju."
-#: ../json-glib/json-reader.c:485
+#: json-glib/json-reader.c:503
#, c-format
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 "Kazalo '%d' je večje od velikosti predmeta na trenutnem položaju."
+msgstr "Kazalo »%d« je večje od velikosti predmeta na trenutnem položaju."
-#: ../json-glib/json-reader.c:570 ../json-glib/json-reader.c:724
-#: ../json-glib/json-reader.c:775 ../json-glib/json-reader.c:813
-#: ../json-glib/json-reader.c:851 ../json-glib/json-reader.c:889
-#: ../json-glib/json-reader.c:927 ../json-glib/json-reader.c:972
-#: ../json-glib/json-reader.c:1008 ../json-glib/json-reader.c:1034
+#: json-glib/json-reader.c:587 json-glib/json-reader.c:751
+#: json-glib/json-reader.c:802 json-glib/json-reader.c:840
+#: json-glib/json-reader.c:878 json-glib/json-reader.c:916
+#: json-glib/json-reader.c:954 json-glib/json-reader.c:999
+#: json-glib/json-reader.c:1035 json-glib/json-reader.c:1061
msgid "No node available at the current position"
msgstr "Na trenutnem položaju ni razpoložljivega vozlišča."
-#: ../json-glib/json-reader.c:577
+#: json-glib/json-reader.c:594
#, c-format
-msgid "The current position holds a '%s' and not an array"
-msgstr "Trenutni položaj vsebuje '%s' in ne polja"
+msgid "The current position holds a “%s” and not an array"
+msgstr "Trenutni položaj vsebuje »%s« in ne polja"
-#: ../json-glib/json-reader.c:640
+#: json-glib/json-reader.c:670
#, c-format
-msgid "The current node is of type '%s', but an object was expected."
-msgstr "Trenutno vozlišče je vrste '%s', pričakovan pa je predmet."
+msgid "The current node is of type “%s”, but an object was expected."
+msgstr "Trenutno vozlišče je vrste »%s«, pričakovan pa je predmet."
-#: ../json-glib/json-reader.c:647
+#: json-glib/json-reader.c:677
#, c-format
-msgid "The member '%s' is not defined in the object at the current position."
-msgstr "Določilo '%s' ni določan v predmetu na trenutnem položaju."
+msgid "The member “%s” is not defined in the object at the current position."
+msgstr "Določilo »%s« ni določan v predmetu na trenutnem položaju."
-#: ../json-glib/json-reader.c:731 ../json-glib/json-reader.c:782
+#: json-glib/json-reader.c:758 json-glib/json-reader.c:809
#, c-format
-msgid "The current position holds a '%s' and not an object"
-msgstr "Trenutni položaj vsebuje '%s' in ne predmeta"
+msgid "The current position holds a “%s” and not an object"
+msgstr "Trenutni položaj vsebuje »%s« in ne predmeta"
-#: ../json-glib/json-reader.c:822 ../json-glib/json-reader.c:860
-#: ../json-glib/json-reader.c:898 ../json-glib/json-reader.c:936
-#: ../json-glib/json-reader.c:981
+#: json-glib/json-reader.c:849 json-glib/json-reader.c:887
+#: json-glib/json-reader.c:925 json-glib/json-reader.c:963
+#: json-glib/json-reader.c:1008
#, c-format
-msgid "The current position holds a '%s' and not a value"
-msgstr "Trenutni položaj vsebuje '%s' in ne vrednosti"
+msgid "The current position holds a “%s” and not a value"
+msgstr "Trenutni položaj vsebuje »%s« in ne vrednosti"
-#: ../json-glib/json-reader.c:944
+#: json-glib/json-reader.c:971
msgid "The current position does not hold a string type"
msgstr "Trenutni položaj ne vsebuje niza"
# Cheng Lu <chenglu1990@gmail.com>, 2012.
# Wylmer Wang <wantinghard@gmail.com>, 2012.
# Sphinx Jiang <yishanj13@gmail.com>, 2014.
-
+# Mingcong Bai <jeffbai@aosc.xyz>, 2017.
+#
msgid ""
msgstr ""
"Project-Id-Version: json-glib master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
-"glib&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2014-02-20 10:20+0000\n"
-"PO-Revision-Date: 2014-02-22 09:27+0800\n"
-"Last-Translator: Sphinx Jiang <yishanj13@gmail.com>\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/json-glib/issues\n"
+"POT-Creation-Date: 2017-10-18 15:10+0000\n"
+"PO-Revision-Date: 2017-06-10 14:29+0800\n"
+"Last-Translator: Mingcong Bai <jeffbai@aosc.xyz>\n"
"Language-Team: Chinese Simplified <i18n-zh@googlegroups.com>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Lokalize 1.5\n"
+"X-Generator: Poedit 2.0.2\n"
-#: ../json-glib/json-glib-format.c:50
+#: json-glib/json-glib-format.c:50
msgid "Prettify output"
msgstr "美化输出"
-#: ../json-glib/json-glib-format.c:51
+#: json-glib/json-glib-format.c:51
msgid "Indentation spaces"
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:77 ../json-glib/json-glib-validate.c:63
+#: json-glib/json-glib-format.c:77 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:89 ../json-glib/json-glib-validate.c:75
+#: json-glib/json-glib-format.c:89 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:108
+#: json-glib/json-glib-format.c:108
#, c-format
msgid "%s: %s: error writing to stdout"
msgstr "%s: %s:写到标准输出出错"
#. 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:129 json-glib/json-glib-validate.c:87
#, c-format
msgid "%s: %s: error closing: %s\n"
msgstr "%s: %s:关闭出错: %s\n"
-#: ../json-glib/json-glib-format.c:157 ../json-glib/json-glib-validate.c:115
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
msgid "FILE"
msgstr "文件"
#. 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:161
msgid "Format JSON files."
msgstr "格式化 JSON 文件。"
-#: ../json-glib/json-glib-format.c:161
+#: json-glib/json-glib-format.c:162
msgid "json-glib-format formats JSON resources."
msgstr "json-glib-format 可以格式化 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:179 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: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:181 json-glib/json-glib-format.c:195
+#: 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”了解更多信息。"
+msgid "Try “%s --help” for more information."
+msgstr "请è¿\90è¡\8câ\80\9c%s --helpâ\80\9d以äº\86解æ\9b´å¤\9aä¿¡æ\81¯ã\80\82"
#. 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:193 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
+#: json-glib/json-glib-validate.c:118
msgid "Validate JSON files."
msgstr "验证 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 验证给定 URI 的 JSON 数据。"
-#: ../json-glib/json-gobject.c:917
+#. 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'"
+msgid "Expecting a JSON object, but the root node is of type “%s”"
msgstr "期望一个 JSON 对象,但根节点类型是“%s”"
-#: ../json-glib/json-gvariant.c:545
+#. translators: the '%s' is the type name
+#: json-glib/json-gvariant.c:524
#, c-format
-msgid "Unexpected type '%s' in JSON node"
+msgid "Unexpected type “%s” in JSON node"
msgstr "JSON 节点中存在异常的类型“%s”"
-#: ../json-glib/json-gvariant.c:615
+#: json-glib/json-gvariant.c:594
msgid "Missing elements in JSON array to conform to a tuple"
msgstr "在 JSON 数组中缺少用来构成 tuple(元组) 的元素"
-#: ../json-glib/json-gvariant.c:643
-msgid "Missing closing symbol ')' in the GVariant tuple type"
+#: json-glib/json-gvariant.c:622
+msgid "Missing closing symbol “)” in the GVariant tuple type"
msgstr "在 GVariant 元组类型中缺少闭合符号“)”"
-#: ../json-glib/json-gvariant.c:651
+#: json-glib/json-gvariant.c:630
msgid "Unexpected extra elements in JSON array"
msgstr "在 JSON 数组中存在意外的其他元素"
-#: ../json-glib/json-gvariant.c:930
+#: json-glib/json-gvariant.c:909
msgid "Invalid string value converting to GVariant"
msgstr "字符串值到 GVariant 的转换无效"
-#: ../json-glib/json-gvariant.c:986
+#: json-glib/json-gvariant.c:964
msgid ""
"A GVariant dictionary entry expects a JSON object with exactly one member"
msgstr "GVariant 字典记录期望仅有一个成员的 JSON 对象"
-#: ../json-glib/json-gvariant.c:1266
+#: json-glib/json-gvariant.c:1242
#, c-format
-msgid "GVariant class '%c' not supported"
+msgid "GVariant class “%c” not supported"
msgstr "不支持的 GVariant 类“%c”"
-#: ../json-glib/json-gvariant.c:1314
+#: json-glib/json-gvariant.c:1290
msgid "Invalid GVariant signature"
msgstr "无效的 GVariant 签名"
-#: ../json-glib/json-gvariant.c:1362
+#: json-glib/json-gvariant.c:1338
msgid "JSON data is empty"
msgstr "JSON 数据为空"
-#: ../json-glib/json-parser.c:817
+#. 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:907
#, c-format
msgid "%s:%d:%d: Parse error: %s"
msgstr "%s:%d:%d:解析错误:%s"
-#: ../json-glib/json-parser.c:885
+#: json-glib/json-parser.c:990
msgid "JSON data must be UTF-8 encoded"
msgstr "JSON 数据必须是 UTF-8 编码"
-#: ../json-glib/json-path.c:438
+#: json-glib/json-path.c:389
msgid "Only one root node is allowed in a JSONPath expression"
msgstr "JSONPath 表达式中只允许有一个根节点"
-#: ../json-glib/json-path.c:447
+#. translators: the %c is the invalid character
+#: json-glib/json-path.c:398
#, c-format
-msgid "Root node followed by invalid character '%c'"
+msgid "Root node followed by invalid character “%c”"
msgstr "根节点之后跟随了无效的字符“%c”"
-#: ../json-glib/json-path.c:487
+#: json-glib/json-path.c:438
msgid "Missing member name or wildcard after . character"
msgstr "在字符 . 后面缺少成员名或通配符"
-#: ../json-glib/json-path.c:561
+#: json-glib/json-path.c:512
#, c-format
-msgid "Malformed slice expression '%*s'"
+msgid "Malformed slice expression “%*s”"
msgstr "有错误的 slice 表达式“%*s”"
-#: ../json-glib/json-path.c:605
+#: json-glib/json-path.c:556
#, c-format
-msgid "Invalid set definition '%*s'"
+msgid "Invalid set definition “%*s”"
msgstr "无效的 set 定义“%*s”"
-#: ../json-glib/json-path.c:658
+#: json-glib/json-path.c:609
#, c-format
-msgid "Invalid slice definition '%*s'"
+msgid "Invalid slice definition “%*s”"
msgstr "无效的 slice 定义“%*s”"
-#: ../json-glib/json-path.c:686
+#: json-glib/json-path.c:637
#, c-format
-msgid "Invalid array index definition '%*s'"
+msgid "Invalid array index definition “%*s”"
msgstr "无效的数组索引定义“%*s”"
-#: ../json-glib/json-path.c:705
+#: json-glib/json-path.c:656
#, c-format
-msgid "Invalid first character '%c'"
+msgid "Invalid first character “%c”"
msgstr "无效的首字符“%c”"
-#: ../json-glib/json-reader.c:463
+#: json-glib/json-reader.c:474
#, c-format
msgid ""
-"The current node is of type '%s', but an array or an object was expected."
+"The current node is of type “%s”, but an array or an object was expected."
msgstr "当前节点的类型是“%s”,应为数组或对象。"
-#: ../json-glib/json-reader.c:475
+#: json-glib/json-reader.c:486
#, c-format
msgid ""
-"The index '%d' is greater than the size of the array at the current position."
+"The index “%d” is greater than the size of the array at the current position."
msgstr "索引“%d”大于当前位置数组的大小。"
-#: ../json-glib/json-reader.c:492
+#: json-glib/json-reader.c:503
#, c-format
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 "索引“%d”大于当前位置对象的大小。"
-#: ../json-glib/json-reader.c:577 ../json-glib/json-reader.c:731
-#: ../json-glib/json-reader.c:782 ../json-glib/json-reader.c:820
-#: ../json-glib/json-reader.c:858 ../json-glib/json-reader.c:896
-#: ../json-glib/json-reader.c:934 ../json-glib/json-reader.c:979
-#: ../json-glib/json-reader.c:1015 ../json-glib/json-reader.c:1041
+#: 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:584
+#: json-glib/json-reader.c:592
#, c-format
-msgid "The current position holds a '%s' and not an array"
+msgid "The current position holds a “%s” and not an array"
msgstr "当前位置是一个“%s”,而不是一个数组"
-#: ../json-glib/json-reader.c:647
+#: json-glib/json-reader.c:668
#, c-format
-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 "当前节点的类型是“%s”,但应为对象。"
-#: ../json-glib/json-reader.c:654
+#: json-glib/json-reader.c:675
#, c-format
-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 "成员“%s”没有在当前位置的对象中定义。"
-#: ../json-glib/json-reader.c:738 ../json-glib/json-reader.c:789
+#: 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"
+msgid "The current position holds a “%s” and not an object"
msgstr "当前位置是一个“%s”,而不是一个对象"
-#: ../json-glib/json-reader.c:829 ../json-glib/json-reader.c:867
-#: ../json-glib/json-reader.c:905 ../json-glib/json-reader.c:943
-#: ../json-glib/json-reader.c:988
+#: 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"
+msgid "The current position holds a “%s” and not a value"
msgstr "当前位置是一个“%s”,不是一个值"
-#: ../json-glib/json-reader.c:951
+#: json-glib/json-reader.c:968
msgid "The current position does not hold a string type"
msgstr "当前位置不是一个字符串类型"
msgid ""
msgstr ""
"Project-Id-Version: json-glib master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=json-"
-"glib&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2013-12-19 14:30+0000\n"
-"PO-Revision-Date: 2014-02-01 19:05+0800\n"
+"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/json-glib/issues\n"
+"POT-Creation-Date: 2018-02-21 01:40+0000\n"
+"PO-Revision-Date: 2018-02-28 20:13+0800\n"
"Last-Translator: Chao-Hsiung Liao <j_h_liau@yahoo.com.tw>\n"
"Language-Team: Chinese (Taiwan) <chinese-l10n@googlegroups.com>\n"
"Language: zh_TW\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.6.3\n"
+"X-Generator: Poedit 2.0.6\n"
-#: ../json-glib/json-glib-format.c:41
+#: json-glib/json-glib-format.c:50
msgid "Prettify output"
msgstr "Prettify 輸出"
-#: ../json-glib/json-glib-format.c:42
+#: json-glib/json-glib-format.c:51
msgid "Indentation spaces"
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:68 ../json-glib/json-glib-validate.c:61
+#: json-glib/json-glib-format.c:77 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:80 ../json-glib/json-glib-validate.c:73
+#: json-glib/json-glib-format.c:89 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:99
+#: json-glib/json-glib-format.c:108
#, c-format
msgid "%s: %s: error writing to stdout"
msgstr "%s:%s:寫入標準輸出時發生錯誤"
#. 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:119 ../json-glib/json-glib-validate.c:85
+#: json-glib/json-glib-format.c:129 json-glib/json-glib-validate.c:87
#, c-format
msgid "%s: %s: error closing: %s\n"
msgstr "%s:%s:關閉時發生錯誤:%s\n"
-#: ../json-glib/json-glib-format.c:148 ../json-glib/json-glib-validate.c:113
+#: json-glib/json-glib-format.c:158 json-glib/json-glib-validate.c:115
msgid "FILE"
msgstr "檔案"
#. Translators: this message will appear after the usage string
#. and before the list of options.
-#: ../json-glib/json-glib-format.c:151
+#: json-glib/json-glib-format.c:161
msgid "Format JSON files."
msgstr "格式化 JSON 檔案。"
-#: ../json-glib/json-glib-format.c:152
+#: json-glib/json-glib-format.c:162
msgid "json-glib-format formats JSON resources."
msgstr "json-glib-format 格式化 JSON 資源。"
#. * means the user is calling json-glib-validate without any
#. * argument.
#.
-#: ../json-glib/json-glib-format.c:169 ../json-glib/json-glib-validate.c:134
+#: json-glib/json-glib-format.c:179 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:171 ../json-glib/json-glib-format.c:185
-#: ../json-glib/json-glib-validate.c:136 ../json-glib/json-glib-validate.c:150
+#: json-glib/json-glib-format.c:181 json-glib/json-glib-format.c:195
+#: json-glib/json-glib-validate.c:138 json-glib/json-glib-validate.c:152
#, c-format
-msgid "Try \"%s --help\" for more information."
+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:183 ../json-glib/json-glib-validate.c:148
+#: json-glib/json-glib-format.c:193 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:116
+#: json-glib/json-glib-validate.c:118
msgid "Validate JSON files."
msgstr "驗證 JSON 檔案。"
-#: ../json-glib/json-glib-validate.c:117
+#: json-glib/json-glib-validate.c:119
msgid "json-glib-validate validates JSON data at the given URI."
msgstr "json-glib-validate 驗證指定 URI 的 JSON 資料。"
-#: ../json-glib/json-gobject.c:917
+#. 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'"
+msgid "Expecting a JSON object, but the root node is of type “%s”"
msgstr "預期是 JSON 物件,但根節點卻是類型「%s」"
-#: ../json-glib/json-gvariant.c:545
+#. translators: the '%s' is the type name
+#: json-glib/json-gvariant.c:524
#, c-format
-msgid "Unexpected type '%s' in JSON node"
+msgid "Unexpected type “%s” in JSON node"
msgstr "JSON 節點中未預期的類型「%s」"
-#: ../json-glib/json-gvariant.c:615
+#: json-glib/json-gvariant.c:594
msgid "Missing elements in JSON array to conform to a tuple"
msgstr "在 JSON 陣列中缺少確認變數值組"
-#: ../json-glib/json-gvariant.c:643
-msgid "Missing closing symbol ')' in the GVariant tuple type"
+#: json-glib/json-gvariant.c:622
+msgid "Missing closing symbol “)” in the GVariant tuple type"
msgstr "在 GVariant 變數值組類型中缺少關閉符號 ')'"
-#: ../json-glib/json-gvariant.c:651
+#: json-glib/json-gvariant.c:630
msgid "Unexpected extra elements in JSON array"
msgstr "JSON 陣列中有未預期的額外元素"
-#: ../json-glib/json-gvariant.c:930
+#: json-glib/json-gvariant.c:909
msgid "Invalid string value converting to GVariant"
msgstr "無效的字串數值轉換到 GVariant"
-#: ../json-glib/json-gvariant.c:986
+#: json-glib/json-gvariant.c:964
msgid ""
"A GVariant dictionary entry expects a JSON object with exactly one member"
msgstr "GVariant 字典項目預期 JSON 物件只能有一個成員"
-#: ../json-glib/json-gvariant.c:1266
+#: json-glib/json-gvariant.c:1242
#, c-format
-msgid "GVariant class '%c' not supported"
+msgid "GVariant class “%c” not supported"
msgstr "GVariant 類別「%c」不支援"
-#: ../json-glib/json-gvariant.c:1314
+#: json-glib/json-gvariant.c:1290
msgid "Invalid GVariant signature"
msgstr "無效的 GVariant 簽章"
-#: ../json-glib/json-gvariant.c:1362
+#: json-glib/json-gvariant.c:1338
msgid "JSON data is empty"
msgstr "JSON 資料是空的"
-#: ../json-glib/json-parser.c:817
+#. 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:解析錯誤:%s"
-#: ../json-glib/json-parser.c:885
+#: json-glib/json-parser.c:992
msgid "JSON data must be UTF-8 encoded"
msgstr "JSON 資料必須以 UTF-8 編碼"
-#: ../json-glib/json-path.c:438
+#: json-glib/json-path.c:389
msgid "Only one root node is allowed in a JSONPath expression"
msgstr "在 JSONPath 表示式中不允許一個根節點"
-#: ../json-glib/json-path.c:447
+#. translators: the %c is the invalid character
+#: json-glib/json-path.c:398
#, c-format
-msgid "Root node followed by invalid character '%c'"
+msgid "Root node followed by invalid character “%c”"
msgstr "根節點跟隨在無效的字元「%c」後"
-#: ../json-glib/json-path.c:487
+#: json-glib/json-path.c:438
msgid "Missing member name or wildcard after . character"
msgstr "在 . 字元後缺少成員名稱或萬用字元"
-#: ../json-glib/json-path.c:561
+#: json-glib/json-path.c:512
#, c-format
-msgid "Malformed slice expression '%*s'"
+msgid "Malformed slice expression “%*s”"
msgstr "格式不良的片段表示式「%*s」"
-#: ../json-glib/json-path.c:605
+#: json-glib/json-path.c:556
#, c-format
-msgid "Invalid set definition '%*s'"
+msgid "Invalid set definition “%*s”"
msgstr "無效的組定義「%*s」"
-#: ../json-glib/json-path.c:658
+#: json-glib/json-path.c:609
#, c-format
-msgid "Invalid slice definition '%*s'"
+msgid "Invalid slice definition “%*s”"
msgstr "無效的片段定義「%*s」"
-#: ../json-glib/json-path.c:686
+#: json-glib/json-path.c:637
#, c-format
-msgid "Invalid array index definition '%*s'"
+msgid "Invalid array index definition “%*s”"
msgstr "無效的陣列索引定義「%*s」"
-#: ../json-glib/json-path.c:705
+#: json-glib/json-path.c:656
#, c-format
-msgid "Invalid first character '%c'"
+msgid "Invalid first character “%c”"
msgstr "無效的第一個字元「%c」"
-#: ../json-glib/json-reader.c:457
+#: json-glib/json-reader.c:474
#, c-format
msgid ""
-"The current node is of type '%s', but an array or an object was expected."
+"The current node is of type “%s”, but an array or an object was expected."
msgstr "目前的節點類型是「%s」,但預期應為陣列或物件。"
-#: ../json-glib/json-reader.c:469
+#: json-glib/json-reader.c:486
#, c-format
msgid ""
-"The index '%d' is greater than the size of the array at the current position."
+"The index “%d” is greater than the size of the array at the current position."
msgstr "索引「%d」大於目前位置的陣列大小。"
-#: ../json-glib/json-reader.c:486
+#: json-glib/json-reader.c:503
#, c-format
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 "索引「%d」大於目前位置的物件大小。"
-#: ../json-glib/json-reader.c:570 ../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 "目前的位置沒有可用的節點"
-#: ../json-glib/json-reader.c:577
+#: json-glib/json-reader.c:592
#, c-format
-msgid "The current position holds a '%s' and not an array"
+msgid "The current position holds a “%s” and not an array"
msgstr "目前的位置持有一個「%s」,並非陣列"
-#: ../json-glib/json-reader.c:640
+#: json-glib/json-reader.c:668
#, c-format
-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 "目前的節點類型是「%s」,但預期應為物件。"
-#: ../json-glib/json-reader.c:647
+#: json-glib/json-reader.c:675
#, c-format
-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 "成員「%s」並未在目前的位置的物件中定義。"
-#: ../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"
+msgid "The current position holds a “%s” and not an object"
msgstr "目前的位置持有一個「%s」,並非物件"
-#: ../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"
+msgid "The current position holds a “%s” and not a value"
msgstr "目前的位置持有一個「%s」,並非數值"
-#: ../json-glib/json-reader.c:943
+#: json-glib/json-reader.c:968
msgid "The current position does not hold a string type"
msgstr "目前的位置並未持有字串類型"