- retry-failed-translations.ts: kör om de receptöversättningar som föll på
verifieringen (skriver ut vilka + varför, köar TRANSLATE_RECIPE på nytt).
Idempotent; kör tills listan är tom, publicera sedan.
- Kok-läget (cooking/[id].tsx) visade svensk titel + svenska ingrediensnamn fast
detalj-API:t redan levererar översatta fält. Nu title/displayName med svensk
fallback (stegen var redan översatta).
- "(valfritt)" var hårdkodat i kok-läget + recept-detaljen -> ny nyckel
recipe.optional i alla 12 språk. Vakt + typecheck gröna.
Co-Authored-By: Claude <noreply@anthropic.com>
- verify-translations.ts: läser DB och rapporterar täckning per språk, hur många
som föll på verifieringen, titel=svenska-heuristik och stickprov (titel + steg 1).
Kör efter svepet för att kvalitetskolla utan att ögna alla recept i appen.
- set-test-locale.ts: sätter språk/region/valuta för ett testkonto utan psql, för
att simulera olika marknader (t.ex. EUR så SEK-receptpriset döljs).
Co-Authored-By: Claude <noreply@anthropic.com>
- Litet diagnostikscript: skriver ut recipe_translations per språk × status
(draft_ai vs published), antal publicerade recept, och varje kontos
language_tag. Så man slipper psql för att se hur långt svepet kommit och
vilket innehållsspråk ett testkonto faktiskt har.
Co-Authored-By: Claude <noreply@anthropic.com>
- translate-recipes.ts får en valfri --limit=N som bara köar de N första
(alfabetiskt) publicerade recepten × målspråk. Syfte: kvalitetskolla en
handfull recept på ALLA språk innan hela svepet (~496 × 11) körs och betalas.
- Skriver ut vilka recept som valts i pilot-läge så man vet vad man ska granska.
- Oförändrat i övrigt: idempotent, resumbar, draft_ai -> verifiering ->
publish-translations.ts publicerar bara det som klarat verifieringen.
Co-Authored-By: Claude <noreply@anthropic.com>
De fristandiga skripten laste bara process.env och kunde inte hitta DATABASE_URL
(till skillnad fran worker/seed som laddar .env). Lade till samma dotenv-sokning
(.env / ../.env / ../../.env) sa de funkar med utan att man
exporterar variabler manuellt. Verifierat: bada kor nu utan export och laser .env.
Ingredienser: fyllde luckan från 101 till 362 för da/de/es/fi/fr/it/nb/nl/pl/pt
(engelska hade redan alla 362). Nu 3982 översättningar, 11 språk kompletta – en
spansk/tysk/fransk användare ser ingrediensnamn på sitt språk, inte svenska.
Författat av språkexperter per språk, verifierat mot 362-listan + kvalitetskoll.
Recept: 407 recept har 0 översättningar (svensk källa visas). Lade till två
körbara skript för AI-pipelinen (kräver din Gemini-nyckel i workern):
- scripts/translate-recipes.ts [språk|all] – köar TRANSLATE_RECIPE för alla
publicerade recept × språk, idempotent (hoppar redan gjorda).
- scripts/publish-translations.ts [språk|all] – publicerar de utkast som klarat
den inbyggda verifieringen (numbersPreserved/stegantal/confidence); övriga
stannar som utkast för granskning.
Verifierat mot testdatabas: ingredient_translations 3982 rader/11 språk kompletta;
enqueue köar 405 jobb; processor skapar draft_ai+ok; publish publicerar; steg-
översättningar följer med och serveras.