feat(i18n): översätt kvarvarande vyer + härda vakten (audit-backlog)
- API: översatt title/displayName/toName läggs nu bredvid Sv-fälten i favoriter,
receptvarianter, /scaled, skapar-profiler, topplistor, memory-impact,
substitutions — samt de denormaliserade titlarna (min dag, historik, matlådor,
matlåde-förslag, veckoplan) via nullable recipeId med svensk fallback.
10 endpoints, batchade resolvers (ett anrop per endpoint).
- Mobil: konsumerar de nya fälten med ?? Sv-fallback (swap-meal, sparade recept,
varianter, min dag, logg, matlådor, veckoplan, inköpslista). Hårdkodade
strängar -> t() (kitchen, scan-review, register, recept protein/Skapat av);
decimalkomma -> Intl.NumberFormat. Allergen-etiketter -> t() (+5 nya nycklar).
11 nya nycklar i alla 12 språk.
- i18n-vakt härdad: fångar nu hårdkodad svenska i prop={`...`}-mallliteraler
(blind fläck förr). Verifierat att den fäller men inte ger falska positiv.
- whySv var redan lokaliserad (buildWhy med språktagg) - orörd.
- typecheck grönt (alla paket), vakt grön (603 nycklar).
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,7 @@ const MEAL_TYPES = ["breakfast", "lunch", "dinner", "snack"] as const;
|
||||
interface RecentMeal {
|
||||
id: string;
|
||||
titleSv: string;
|
||||
title?: string;
|
||||
mealType: string;
|
||||
nutrition: {
|
||||
kcal: number;
|
||||
@@ -108,7 +109,7 @@ export default function LogMealScreen() {
|
||||
{(recent.data?.meals ?? []).slice(0, 5).map((meal) => (
|
||||
<Card key={meal.id} onPress={() => logPrevious(meal)}>
|
||||
<Row style={{ justifyContent: "space-between" }}>
|
||||
<Body>{meal.titleSv}</Body>
|
||||
<Body>{meal.title ?? meal.titleSv}</Body>
|
||||
<Small>{Math.round(meal.nutrition.kcal)} kcal</Small>
|
||||
</Row>
|
||||
</Card>
|
||||
|
||||
Reference in New Issue
Block a user