---
title: "What it adds"
description: "See the formats, states, checks and prompts the plugin registers in x18n."
canonical_url: "https://diglot.sh/review-ui/what-it-adds"
---
# What it adds

> See the formats, states, checks and prompts the plugin registers in x18n.

## Formats

The plugin registers two formats. `diglot-manifest` reads `.diglot/manifest/<source>.json` and is read-only. `diglot-record` reads `<locale>/segments/<hh>/<hash>.json`.

Editing a translation through x18n rewrites its record: the text changes, `review` becomes `edited`, a verification or rejection is dropped and `updatedAt` is set. Fields that the record schema doesn't know are kept. Translating a hash that has no record in a locale creates its record file, as a human edit. Edits made through x18n have no author, so `by` isn't set.

## Translation state

Each record has a state in x18n, derived from diglot's `recordStatus`:

<table>
<thead>
  <tr>
    <th>
      diglot status
    </th>
    
    <th>
      x18n state
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        machine
      </code>
      
      , <code>
        pending-review
      </code>
      
      , <code>
        rejected
      </code>
      
       (including translations that fail validation)
    </td>
    
    <td>
      <code>
        needs-review
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        edited
      </code>
    </td>
    
    <td>
      <code>
        translated
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        verified
      </code>
    </td>
    
    <td>
      <code>
        reviewed
      </code>
    </td>
  </tr>
</tbody>
</table>

`x18n status` and the UI count them.

## Labels and usages

Each hash gets a label: the file of the segment and the last heading above it, such as `guide.md > Introduction`. The keys grid shows and sorts by it, and `x18n get` and `x18n keys` print it. A `diglot-markdown` scanner reads the markdown and `.navigation.yml` files of each source, so find references and the UI's usage list point at the paragraph of each segment.

## Placeholder syntax

A `diglot` placeholder syntax for skeletons (`{n}` and `{n}...{/n}`) is used by the `placeholder-mismatch` and `invalid-syntax` checks and by the UI.

## Checks

<table>
<thead>
  <tr>
    <th>
      Check
    </th>
    
    <th>
      Reports
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        diglot-validate
      </code>
    </td>
    
    <td>
      A translation that fails diglot's <code>
        validate
      </code>
      
       for any kind of unit the hash is used as
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        diglot-review
      </code>
    </td>
    
    <td>
      An unreviewed machine translation. A machine update of an earlier translation is a warning
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        diglot-unused
      </code>
    </td>
    
    <td>
      A record whose hash no manifest uses
    </td>
  </tr>
</tbody>
</table>

`missing-translation` and `unused-key` are off by default, because `x18n status` and the UI already show coverage and `diglot-unused` reports unused records. With more than one source, `key-conflict` is off too, since a hash shared by two sources is defined in two manifests.

## History

A `diglot` history provider reads record metadata, and x18n's git history is turned off. A record that was carried or updated from a predecessor and not yet reviewed is a stale translation, and its previous source and text are available to the UI and to `x18n prompt translate --stale`.

## Prompts and glossary

Translate prompts include the rules of the skeleton grammar, the rules from `<locale>/style.yml` and the style rules from the glossary. Each locale's glossary, the shared `glossary` of `diglot.config.ts` merged with `<locale>/glossary.yml`, becomes x18n glossary entries.


## Sitemap

See the full [sitemap](https://diglot.sh/sitemap.md) for all pages.
