Finn ødelagte oversettelser før brukerne dine gjør det

Én kommando sjekker oversettelsesfilene i repoet ditt. Ingen registrering, ingen API-nøkkel. Ingenting forlater maskinen din.

npx @localheroai/cli check

En gratis kommando i CLI-en til Localhero.ai. Kjøres lokalt eller som en sjekk i GitHub Actions.

Rails YAML · i18next og annen JSON · gettext .po

~/code/shopeksempel på output
$ 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

Dette fanger den opp

Disse feilene slipper gjennom kodegjennomgang, siden ingen leser hver eneste språkfil. De slipper også gjennom tester: ingenting feiler. Kjør check på hver Pull Request for å holde dem ute av main.

Manglende oversettelser

Tekster som finnes i kildespråket ditt, men ikke på tysk, svensk eller polsk.

de.yml
checkout:
  gift_card:
    title:  # i en.yml, mangler her

Ødelagte plassholdere

%{name} ble til {name}, som brukerne dine ser som rå kode. Eller en %s som går tapt i oversettelsen, slik at verdien forsvinner fra setningen.

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}

Manglende flertallsformer

Polsk og russisk trenger mer enn «one» og «other». Uten dem ser brukerne feil grammatikk. Ingen feil blir utløst.

pl.yml
files:
  count:
    one:   "%{count} plik"
    other: "%{count} pliku"
    few:   # trengs for 2–4 filer    many:  # trengs for 5–21 filer

Konfliktende duplikater

Den samme nøkkelen med ulik tekst i to filer for samme språk. Rails slår sammen begge filene. Den som lastes inn sist, vinner, og det kan være den utdaterte kopien.

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

Bruk det i CI

Stopper bygget ved manglende oversettelser, legger til GitHub-merknader i pull requesten og eksporterer JSON til egne verktøy.

.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
Flagg Hva den gjør
--fail-on <rule> Når den skal avslutte med feil: missing (standard, manglende eller tomme oversettelser), placeholders, any eller none
--format github Feil og advarsler som merknader i pull requesten, på filnivå
--json Hele rapporten til stdout, med stabile nøkler
--locales sv,de Sjekk bare disse målspråkene
--path <dir> Språkmappen som skal skannes. Uten den ser check i vanlige mapper som config/locales, public/locales og src/locales
--source en Angi kildespråket i stedet for å oppdage det automatisk

Nøkler som bare finnes i en oversettelse, rapporteres som advarsler. De stopper aldri bygget.

Les guiden om kontroll av språkfiler Alle regler og alternativer i CLI README-en

Åpen kildekode

Koden ligger på GitHub under MIT-lisensen. Les reglene, kjør det offline, send en Pull Request.

En falsk positiv er en feil. Hvis check flagger noe som ikke er feil, opprett en sak med strengen, så fikser vi regelen.

localheroai/cli

CLI-en til Localhero.ai. check er en av kommandoene. Den samme pakken kjører oversettelser for kunder av Localhero.ai.

Alle regler og alternativer i CLI README-en

Hvorfor det er gratis

Vi bygger Localhero.ai, som oversetter produkttekst i hver pull request. Første gang vi kjørte check på vår egen app, fant den en ødelagt plassholder på fire språk. Alle repoer med språkfiler kan ha slike feil. Vi gjorde check gratis, så alle kan se.

check

gratis, alltid
  • Finner manglende oversettelser, ødelagte plassholdere, manglende flertallsformer og duplikater i konflikt
  • Kjører offline, ingen konto, ingen begrensninger
  • MIT-lisensiert

translate

med en Localhero.ai-konto
  • Fyller inn manglende oversettelser i hver pull request
  • Følger ordlisten og tone of voice-en din
  • En gjennomgangsside for teamet ditt, uten behov for git
Prøv Localhero.ai gratis i 30 dager

Se hva som er ødelagt i repoet ditt

Kjør den fra roten av et hvilket som helst repo med språkfiler.

npx @localheroai/cli check