{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/chrome-extension-locales-messages-json/latest.json",
  "x-lintel": {
    "source": "https://www.schemastore.org/chrome-extension-locales-messages.json",
    "sourceSha256": "381bc9a43f9058e60dfc2fa451b93682158547633fd4ec98cd457b418ce7e172",
    "fileMatch": [
      "**/_locales/*/messages.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "additionalProperties": false,
  "patternProperties": {
    "^(?!@@)[\\w@]+$": {
      "properties": {
        "message": {
          "description": "The translated message, in the form of a string that can contain placeholders. Use `$_placeholder_name_$` (case insensitive) to refer to a particular placeholder. For example, you can refer to a placeholder named \"our_site\" as `$our_site$`, `$OUR_SITE$`, or `$oUR_sITe$`.\nTo put a dollar sign (`$`) into the string, use `$$`.\nAlthough placeholders such as `$USER$` are the preferred way of referring to substitution strings (strings specified using the substitutions parameter of i18n.getMessage) you can also refer to substitution strings directly within the message.",
          "examples": [
            "What's your name?",
            "Hello, $USER$",
            "Goodbye, $USER$. Come back to $OUR_SITE$ soon!",
            "Amount (in $$)",
            "Params: $1, $2, $3"
          ],
          "type": "string",
          "title": "message"
        },
        "description": {
          "description": "Optional. A description of the message, intended to give context or details to help the translator make the best possible translation.",
          "examples": [
            "Ask for the user's name",
            "Greet the user",
            "Say goodbye to the user"
          ],
          "type": "string",
          "title": "description"
        },
        "placeholders": {
          "description": "Optional. Defines one or more substrings to be used within the message.\nEach placeholder has a name, a \"content\" item, and an optional \"example\" item. A placeholder's name is case-insensitive and can contain the same characters as a message name.\n",
          "title": "placeholders",
          "type": "object",
          "patternProperties": {
            "^[\\w@]+$": {
              "properties": {
                "content": {
                  "description": "The \"content\" item's value is a string that can refer to substitution strings, which are specified using the i18n.getMessage method's substitutions parameter. The value of a \"content\" item is typically something like \"Example.com\" or \"$1\". If you refer to a substitution string that doesn't exist, you get an empty string. The following table shows how `$_n_` strings correspond to strings specified by the substitutions parameter.",
                  "type": "string",
                  "title": "content"
                },
                "example": {
                  "description": "The \"example\" item (optional, but highly recommended) helps translators by showing how the content appears to the end user. For example, a placeholder for a dollar amount should have an example like `\"$23.45\"`.",
                  "type": "string",
                  "title": "example"
                }
              },
              "required": [
                "content"
              ],
              "type": "object"
            }
          }
        }
      },
      "required": [
        "message"
      ],
      "type": "object"
    }
  },
  "$comment": "https://developer.chrome.com/docs/extensions/mv3/i18n-messages/"
}
