Hitta trasiga översättningar innan dina användare gör det

Ett kommando kontrollerar översättningsfilerna i ditt repo. Ingen registrering, ingen API-nyckel. Ingenting lämnar din dator.

npx @localheroai/cli check

Ett gratis kommando i Localhero.ai CLI. Körs lokalt eller som en GitHub Actions-kontroll.

Rails YAML · i18next och annan JSON · gettext .po

~/code/shopexempelutdata
$ npx @localheroai/cli check

Locale        Keys   Missing  Placeholders  Orphans  Complete
de            6      1        0             0        83%
pl            6      1        0             0        83%
sv            6      1        1             0        83%

3 locale(s), 6 keys, 83% complete, 1 placeholder mismatches, 0 orphans

…

== sv ==

Missing keys (1):
  home.title

Placeholder mismatches (1):
  billing.renews_on: "Renews on %{date}" -> "Förnyas {date}" [missing: rails:date] [unexpected: icu:date]

Conflicting values (defined differently in several files) (1):
  checkout.cta: config/locales/pages/sv.yml, config/locales/app/sv.yml

$ echo $?
1

Vad den fångar upp

De här buggarna slinker förbi kodgranskningen eftersom ingen läser varje språkfil. De slinker förbi tester också: inget kraschar. Kör check på varje Pull Request för att hålla dem borta från main.

Saknade översättningar

Texter som finns i ditt källspråk men inte på tyska, svenska eller polska.

de.yml
checkout:
  gift_card:
    title:  # finns i en.yml, saknas här

Trasiga platshållare

%{name} blev {name}, vilket gör att användarna ser rå kod. Eller så försvann en %s i översättningen, vilket tar bort värdet från meningen.

en.yml  renews_on: "Renews on %{date}"
sv.yml  renews_on: "Förnyas {date}"UI      Förnyas {date}
en.json "renews": "Renews on {{date}}"
de.json "renews": "Verlängert am {date}"UI      Verlängert am {date}

Saknade pluralformer

Polska och ryska behöver fler former än “one” och “other”. Utan dem ser användarna fel grammatik. Inget fel rapporteras.

pl.yml
files:
  count:
    one:   "%{count} plik"
    other: "%{count} pliku"
    few:   # behövs för 2–4 filer    many:  # behövs för 5–21 filer

Dubbletter med konflikter

Samma nyckel med olika text i två filer för ett språk. Rails slår ihop båda filerna. Den som läses in sist vinner, och det kan vara den gamla kopian.

config/locales/app/sv.yml
checkout:
  cta: "Gå till kassan"config/locales/pages/sv.yml
checkout:
  cta: "Till kassan"  # laddas sist, vinner

Använd det i CI

Gör att bygget misslyckas vid saknade översättningar, lägger till GitHub-annoteringar i pull requesten och exporterar JSON för dina egna verktyg.

.github/workflows/i18n-check.yml
on: pull_request
jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - run: npx @localheroai/cli check --source en --format github
Flagga Vad den gör
--fail-on <rule> När kommandot ska avslutas med ett fel: missing (standard, saknade eller tomma översättningar), placeholders, any eller none
--format github Fel och varningar som annoteringar i pull requesten, på filnivå
--json Hela rapporten på stdout, med stabila nycklar
--locales sv,de Kontrollera bara dessa målspråk
--path <dir> Mappen med språkfiler som ska genomsökas. Utan den letar check i vanliga mappar som config/locales, public/locales och src/locales
--source en Ange källspråket i stället för att upptäcka det automatiskt

Nycklar som bara finns i en översättning rapporteras som varningar. De gör aldrig att bygget misslyckas.

Läs guiden om att kontrollera språkfiler Alla regler och alternativ i CLI-README:n

Öppen källkod

Koden finns på GitHub under MIT-licensen. Läs reglerna, kör det offline, skicka en pull request.

En falsk träff är en bugg. Om check flaggar något som inte är fel, öppna ett ärende med strängen så fixar vi regeln.

localheroai/cli

Localhero.ai CLI. check är ett av dess kommandon. Samma paket kör översättningar för Localhero.ai-kunder.

Alla regler och alternativ i CLI-README:n

Därför är det gratis

Vi bygger Localhero.ai, som översätter produkttexter i varje pull request. Första gången vi körde check på vår egen app hittade det en trasig platshållare på fyra språk. Alla repo med språkfiler kan ha sådana buggar. Vi gjorde check gratis så att vem som helst kan kolla.

check

gratis, alltid
  • Hittar saknade översättningar, trasiga platshållare, saknade pluralformer och dubbletter med konflikter
  • Körs offline, inget konto, inga begränsningar
  • MIT-licensierad

translate

med ett Localhero.ai-konto
  • Fyller i saknade översättningar i varje pull request
  • Följer din ordlista och tonalitet
  • En granskningssida för teamet, inget git behövs
Prova Localhero.ai gratis i 30 dagar

Se vad som inte fungerar i ditt repo

Kör det från rotmappen i valfritt repo med språkfiler.

npx @localheroai/cli check