diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 35d2c3a..9948336 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -31,7 +31,16 @@ "dashboard_noRoutines": "No routines in the past 2 weeks.", "products_title": "Products", - "products_count": "{count} products", + "products_count": [ + { + "declarations": ["input count", "local countPlural = count: plural"], + "selectors": ["countPlural"], + "match": { + "countPlural=one": "{count} product", + "countPlural=*": "{count} products" + } + } + ], "products_addNew": "+ Add product", "products_suggest": "Suggest", "products_suggestTitle": "Shopping suggestions", @@ -83,7 +92,16 @@ "inventory_confirmDelete": "Delete this package?", "routines_title": "Routines", - "routines_count": "{count} routines (last 30 days)", + "routines_count": [ + { + "declarations": ["input count", "local countPlural = count: plural"], + "selectors": ["countPlural"], + "match": { + "countPlural=one": "{count} routine (last 30 days)", + "countPlural=*": "{count} routines (last 30 days)" + } + } + ], "routines_suggestAI": "Suggest AI routine", "routines_addNew": "+ New routine", "routines_noRoutines": "No routines found.", @@ -160,7 +178,16 @@ "suggest_batchContextPlaceholder": "e.g. sunny trip to Italy, active mountain vacation...", "suggest_generatePlan": "Generate plan", "suggest_generatingPlan": "Generating plan…", - "suggest_planTitle": "Plan ({count} days)", + "suggest_planTitle": [ + { + "declarations": ["input count", "local countPlural = count: plural"], + "selectors": ["countPlural"], + "match": { + "countPlural=one": "Plan ({count} day)", + "countPlural=*": "Plan ({count} days)" + } + } + ], "suggest_saveAllRoutines": "Save all routines", "suggest_amSteps": "steps", "suggest_pmSteps": "steps", @@ -177,7 +204,16 @@ "suggest_stepOptionalBadge": "optional", "medications_title": "Medications", - "medications_count": "{count} entries", + "medications_count": [ + { + "declarations": ["input count", "local countPlural = count: plural"], + "selectors": ["countPlural"], + "match": { + "countPlural=one": "{count} entry", + "countPlural=*": "{count} entries" + } + } + ], "medications_addNew": "+ Add medication", "medications_newTitle": "New medication", "medications_kind": "Kind", @@ -187,7 +223,16 @@ "medications_activeSubstancePlaceholder": "e.g. cholecalciferol", "medications_notes": "Notes", "medications_added": "Medication added.", - "medications_usages": "{count} usages", + "medications_usages": [ + { + "declarations": ["input count", "local countPlural = count: plural"], + "selectors": ["countPlural"], + "match": { + "countPlural=one": "{count} usage", + "countPlural=*": "{count} usages" + } + } + ], "medications_noMedications": "No medications recorded.", "medications_kindPrescription": "Prescription", "medications_kindOtc": "OTC", @@ -196,7 +241,16 @@ "medications_kindOther": "Other", "labResults_title": "Lab Results", - "labResults_count": "{count} results", + "labResults_count": [ + { + "declarations": ["input count", "local countPlural = count: plural"], + "selectors": ["countPlural"], + "match": { + "countPlural=one": "{count} result", + "countPlural=*": "{count} results" + } + } + ], "labResults_addNew": "+ Add result", "labResults_newTitle": "New lab result", "labResults_flagFilter": "Flag:", @@ -222,7 +276,16 @@ "labResults_noResults": "No lab results found.", "skin_title": "Skin Snapshots", - "skin_count": "{count} snapshots", + "skin_count": [ + { + "declarations": ["input count", "local countPlural = count: plural"], + "selectors": ["countPlural"], + "match": { + "countPlural=one": "{count} snapshot", + "countPlural=*": "{count} snapshots" + } + } + ], "skin_addNew": "+ Add snapshot", "skin_aiAnalysisTitle": "AI analysis from photos", "skin_aiUploadText": "Upload 1–3 photos of your skin. AI will pre-fill the form fields below.", diff --git a/frontend/messages/pl.json b/frontend/messages/pl.json index 60524d2..42f2199 100644 --- a/frontend/messages/pl.json +++ b/frontend/messages/pl.json @@ -28,10 +28,21 @@ "dashboard_latestSnapshot": "Ostatni stan skóry", "dashboard_recentRoutines": "Ostatnie rutyny", "dashboard_noSnapshots": "Brak wpisów o stanie skóry.", - "dashboard_noRoutines": "Brak rutyno w ciągu ostatnich 2 tygodni.", + "dashboard_noRoutines": "Brak rutyn w ciągu ostatnich 2 tygodni.", "products_title": "Produkty", - "products_count": "{count} produktów", + "products_count": [ + { + "declarations": ["input count", "local countPlural = count: plural"], + "selectors": ["countPlural"], + "match": { + "countPlural=one": "{count} produkt", + "countPlural=few": "{count} produkty", + "countPlural=many": "{count} produktów", + "countPlural=*": "{count} produktów" + } + } + ], "products_addNew": "+ Dodaj produkt", "products_suggest": "Sugeruj", "products_suggestTitle": "Sugestie zakupowe", @@ -83,10 +94,21 @@ "inventory_confirmDelete": "Usunąć to opakowanie?", "routines_title": "Rutyny", - "routines_count": "{count} rutyno (ostatnie 30 dni)", + "routines_count": [ + { + "declarations": ["input count", "local countPlural = count: plural"], + "selectors": ["countPlural"], + "match": { + "countPlural=one": "{count} rutyna (ostatnie 30 dni)", + "countPlural=few": "{count} rutyny (ostatnie 30 dni)", + "countPlural=many": "{count} rutyn (ostatnie 30 dni)", + "countPlural=*": "{count} rutyn (ostatnie 30 dni)" + } + } + ], "routines_suggestAI": "Zaproponuj rutynę AI", "routines_addNew": "+ Nowa rutyna", - "routines_noRoutines": "Nie znaleziono rutyno.", + "routines_noRoutines": "Nie znaleziono rutyn.", "routines_newTitle": "Nowa rutyna", "routines_backToList": "← Rutyny", "routines_detailsTitle": "Szczegóły rutyny", @@ -160,7 +182,18 @@ "suggest_batchContextPlaceholder": "np. słoneczna podróż do Włoch, aktywny urlop górski...", "suggest_generatePlan": "Generuj plan", "suggest_generatingPlan": "Generuję plan…", - "suggest_planTitle": "Plan ({count} dni)", + "suggest_planTitle": [ + { + "declarations": ["input count", "local countPlural = count: plural"], + "selectors": ["countPlural"], + "match": { + "countPlural=one": "Plan ({count} dzień)", + "countPlural=few": "Plan ({count} dni)", + "countPlural=many": "Plan ({count} dni)", + "countPlural=*": "Plan ({count} dni)" + } + } + ], "suggest_saveAllRoutines": "Zapisz wszystkie rutyny", "suggest_amSteps": "kroków", "suggest_pmSteps": "kroków", @@ -177,7 +210,18 @@ "suggest_stepOptionalBadge": "opcjonalny", "medications_title": "Leki", - "medications_count": "{count} wpisów", + "medications_count": [ + { + "declarations": ["input count", "local countPlural = count: plural"], + "selectors": ["countPlural"], + "match": { + "countPlural=one": "{count} wpis", + "countPlural=few": "{count} wpisy", + "countPlural=many": "{count} wpisów", + "countPlural=*": "{count} wpisów" + } + } + ], "medications_addNew": "+ Dodaj lek", "medications_newTitle": "Nowy lek", "medications_kind": "Rodzaj", @@ -187,7 +231,18 @@ "medications_activeSubstancePlaceholder": "np. cholekalcyferol", "medications_notes": "Notatki", "medications_added": "Lek dodany.", - "medications_usages": "{count} użyć", + "medications_usages": [ + { + "declarations": ["input count", "local countPlural = count: plural"], + "selectors": ["countPlural"], + "match": { + "countPlural=one": "{count} użycie", + "countPlural=few": "{count} użycia", + "countPlural=many": "{count} użyć", + "countPlural=*": "{count} użyć" + } + } + ], "medications_noMedications": "Brak leków.", "medications_kindPrescription": "Na receptę", "medications_kindOtc": "OTC (bez recepty)", @@ -196,7 +251,18 @@ "medications_kindOther": "Inne", "labResults_title": "Wyniki badań", - "labResults_count": "{count} wyników", + "labResults_count": [ + { + "declarations": ["input count", "local countPlural = count: plural"], + "selectors": ["countPlural"], + "match": { + "countPlural=one": "{count} wynik", + "countPlural=few": "{count} wyniki", + "countPlural=many": "{count} wyników", + "countPlural=*": "{count} wyników" + } + } + ], "labResults_addNew": "+ Dodaj wynik", "labResults_newTitle": "Nowy wynik badania", "labResults_flagFilter": "Flaga:", @@ -222,7 +288,18 @@ "labResults_noResults": "Nie znaleziono wyników badań.", "skin_title": "Stan skóry", - "skin_count": "{count} wpisów", + "skin_count": [ + { + "declarations": ["input count", "local countPlural = count: plural"], + "selectors": ["countPlural"], + "match": { + "countPlural=one": "{count} wpis", + "countPlural=few": "{count} wpisy", + "countPlural=many": "{count} wpisów", + "countPlural=*": "{count} wpisów" + } + } + ], "skin_addNew": "+ Dodaj wpis", "skin_aiAnalysisTitle": "Analiza AI ze zdjęć", "skin_aiUploadText": "Prześlij 1–3 zdjęcia skóry. AI wypełni pola formularza poniżej.",