GitHub Marketplace · v1.0

Automated i18n coverage for every PR

The polsia-inc/lokali/.github/actions/i18n-coverage action scans your messages.json, locales/*.json, and i18n/** on every pull request — then posts a per-language coverage comment and opens a first-run Coverage delta PR. Install on a single repo or across an entire org.

Install on GitHub →

A coverage check that lives in your PR

Every push that touches a locale file gets a coverage table in the PR thread. No manual commands, no extra CI to wire up — install the GitHub App and the action runs on the next PR.

lokali[bot] commented on your pull request · 2 minutes ago

🟡 i18n Coverage: 73%

LanguageCoverageMissing keys
es🟢 85%12
fr🔴 61%31
de🟡 78%19
ja🔴 54%40

43 keys missing across all locales. View full audit on Lokali →


Install in 30 seconds

Two surfaces — user-level for trying it on one repo, org-level for enforcing it across every public repo you ship.

Step 01
Install the GitHub App
The same URL covers both surfaces. Sign in, pick a repo or an org, approve access — that's it.
Step 02
Add the workflow
Drop the i18n.yml snippet into .github/workflows/ on the repo — or your org's .github repo for org-wide coverage.
Step 03
Open your next PR
Touch a locale file and Lokali's bot posts the comment on the PR. Schedule or push events open the Coverage delta PR automatically.

Drop-in workflow snippet

One i18n.yml file. Globs match the same paths Lokali's translation App already knows — so the bot works the moment you install.

.github/workflows/i18n.yml
name: i18n Coverage

on:
  pull_request:
    paths:
      - '**/locales/**'
      - '**/i18n/**'
      - '**/translations/**'
      - '**/messages/**'

jobs:
  coverage:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: polsia-inc/lokali/.github/actions/i18n-coverage@main
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}

What comes with the install

Coverage is one part of Lokali. Once the App is on the repo, the full translation pipeline is available too.

PR coverage comment
Posted within seconds of the workflow run. Updates in place on subsequent pushes — no comment spam.
Coverage delta PR
First-run trigger, scheduled runs, and manual workflow_dispatch all open a Coverage delta PR with the same table.
Auto-detects your globs
Recognises messages/*.json, public/locales/*/*.json, src/locales/**, and any custom directory you configure.
Org-wide install
Add the workflow to your org's .github repo and every public repo gets coverage on every PR — no per-repo wiring.
Translation PR bridge
Coverage shows what's missing; one click on the audit page opens a translation PR with the missing keys already filled in.
Zero infrastructure
Runs on the GitHub Actions runner. No API keys for you to manage, no hosted service to provision.

Install the i18n Coverage GitHub Action

One URL works for user-level and org-level installs. Coverage arrives on your next PR.

Install on GitHub →