---
title: "Reviews"
description: "Approve a translation in x18n to verify its diglot record."
canonical_url: "https://diglot.sh/review-ui/reviews"
---
# Reviews

> Approve a translation in x18n to verify its diglot record.

Approving a translation in x18n verifies its record:

```bash
x18n review approve <hash> --locale fr
```

The UI's approve button does the same. The record becomes `review: 'verified'` and the approval is added to `.x18n/reviews.yml`, in one edit plan, so `--dry-run` shows both files. Commit them together.

## What it changes

An approval carries the text the reviewer saw, and the record is verified only while it still holds that text. An approval of a translation that is edited in the same plan leaves the record as edited.

The verification goes through `verifyRecord` from [`@diglot/core`](https://diglot.sh/core/review), so the same rules apply as anywhere else. A rejected record isn't verified, because only an edit replaces a rejection. A record whose text fails validation isn't verified. A record that is already verified keeps its first reviewer. A verified record gets `verifiedBy` with the reviewer and the time of the approval, and its `updatedAt` is set to that time. Fields that the record schema doesn't know are kept.

Applying a suggestion sets the record's text, as any edit through x18n does, so the record becomes `edited`. Comments, change requests and resolving a thread only change `.x18n/reviews.yml`.

## Who the reviewer is

x18n records the author of an approval as a name and an email, from `review.author`, `--author` or git. `verifiedBy.by` is taken from, in order:

1. The login in the author's GitHub noreply email (`12345+login@users.noreply.github.com`).
2. When the author has no name or email, or is the project's git identity (`user.name` and `user.email`), the `GITHUB_ACTOR` environment variable, then the result of `gh api user --jq .login`. `git` and `gh` run at most once per process.
3. The author's name, then their email.


## Sitemap

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