- npm@localheroai/cli
- githublocalheroai/cli
- licensMIT
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
$ 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.
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:nDä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
Se vad som inte fungerar i ditt repo
Kör det från rotmappen i valfritt repo med språkfiler.
npx @localheroai/cli check