fix(frontend): correct plural forms for count labels

This commit is contained in:
Piotr Oleszczyk 2026-03-04 01:30:56 +01:00
parent 820d58ea37
commit a7ad956a62
2 changed files with 156 additions and 16 deletions

View file

@ -31,7 +31,16 @@
"dashboard_noRoutines": "No routines in the past 2 weeks.", "dashboard_noRoutines": "No routines in the past 2 weeks.",
"products_title": "Products", "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_addNew": "+ Add product",
"products_suggest": "Suggest", "products_suggest": "Suggest",
"products_suggestTitle": "Shopping suggestions", "products_suggestTitle": "Shopping suggestions",
@ -83,7 +92,16 @@
"inventory_confirmDelete": "Delete this package?", "inventory_confirmDelete": "Delete this package?",
"routines_title": "Routines", "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_suggestAI": "Suggest AI routine",
"routines_addNew": "+ New routine", "routines_addNew": "+ New routine",
"routines_noRoutines": "No routines found.", "routines_noRoutines": "No routines found.",
@ -160,7 +178,16 @@
"suggest_batchContextPlaceholder": "e.g. sunny trip to Italy, active mountain vacation...", "suggest_batchContextPlaceholder": "e.g. sunny trip to Italy, active mountain vacation...",
"suggest_generatePlan": "Generate plan", "suggest_generatePlan": "Generate plan",
"suggest_generatingPlan": "Generating 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_saveAllRoutines": "Save all routines",
"suggest_amSteps": "steps", "suggest_amSteps": "steps",
"suggest_pmSteps": "steps", "suggest_pmSteps": "steps",
@ -177,7 +204,16 @@
"suggest_stepOptionalBadge": "optional", "suggest_stepOptionalBadge": "optional",
"medications_title": "Medications", "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_addNew": "+ Add medication",
"medications_newTitle": "New medication", "medications_newTitle": "New medication",
"medications_kind": "Kind", "medications_kind": "Kind",
@ -187,7 +223,16 @@
"medications_activeSubstancePlaceholder": "e.g. cholecalciferol", "medications_activeSubstancePlaceholder": "e.g. cholecalciferol",
"medications_notes": "Notes", "medications_notes": "Notes",
"medications_added": "Medication added.", "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_noMedications": "No medications recorded.",
"medications_kindPrescription": "Prescription", "medications_kindPrescription": "Prescription",
"medications_kindOtc": "OTC", "medications_kindOtc": "OTC",
@ -196,7 +241,16 @@
"medications_kindOther": "Other", "medications_kindOther": "Other",
"labResults_title": "Lab Results", "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_addNew": "+ Add result",
"labResults_newTitle": "New lab result", "labResults_newTitle": "New lab result",
"labResults_flagFilter": "Flag:", "labResults_flagFilter": "Flag:",
@ -222,7 +276,16 @@
"labResults_noResults": "No lab results found.", "labResults_noResults": "No lab results found.",
"skin_title": "Skin Snapshots", "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_addNew": "+ Add snapshot",
"skin_aiAnalysisTitle": "AI analysis from photos", "skin_aiAnalysisTitle": "AI analysis from photos",
"skin_aiUploadText": "Upload 13 photos of your skin. AI will pre-fill the form fields below.", "skin_aiUploadText": "Upload 13 photos of your skin. AI will pre-fill the form fields below.",

View file

@ -28,10 +28,21 @@
"dashboard_latestSnapshot": "Ostatni stan skóry", "dashboard_latestSnapshot": "Ostatni stan skóry",
"dashboard_recentRoutines": "Ostatnie rutyny", "dashboard_recentRoutines": "Ostatnie rutyny",
"dashboard_noSnapshots": "Brak wpisów o stanie skóry.", "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_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_addNew": "+ Dodaj produkt",
"products_suggest": "Sugeruj", "products_suggest": "Sugeruj",
"products_suggestTitle": "Sugestie zakupowe", "products_suggestTitle": "Sugestie zakupowe",
@ -83,10 +94,21 @@
"inventory_confirmDelete": "Usunąć to opakowanie?", "inventory_confirmDelete": "Usunąć to opakowanie?",
"routines_title": "Rutyny", "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_suggestAI": "Zaproponuj rutynę AI",
"routines_addNew": "+ Nowa rutyna", "routines_addNew": "+ Nowa rutyna",
"routines_noRoutines": "Nie znaleziono rutyno.", "routines_noRoutines": "Nie znaleziono rutyn.",
"routines_newTitle": "Nowa rutyna", "routines_newTitle": "Nowa rutyna",
"routines_backToList": "← Rutyny", "routines_backToList": "← Rutyny",
"routines_detailsTitle": "Szczegóły rutyny", "routines_detailsTitle": "Szczegóły rutyny",
@ -160,7 +182,18 @@
"suggest_batchContextPlaceholder": "np. słoneczna podróż do Włoch, aktywny urlop górski...", "suggest_batchContextPlaceholder": "np. słoneczna podróż do Włoch, aktywny urlop górski...",
"suggest_generatePlan": "Generuj plan", "suggest_generatePlan": "Generuj plan",
"suggest_generatingPlan": "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_saveAllRoutines": "Zapisz wszystkie rutyny",
"suggest_amSteps": "kroków", "suggest_amSteps": "kroków",
"suggest_pmSteps": "kroków", "suggest_pmSteps": "kroków",
@ -177,7 +210,18 @@
"suggest_stepOptionalBadge": "opcjonalny", "suggest_stepOptionalBadge": "opcjonalny",
"medications_title": "Leki", "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_addNew": "+ Dodaj lek",
"medications_newTitle": "Nowy lek", "medications_newTitle": "Nowy lek",
"medications_kind": "Rodzaj", "medications_kind": "Rodzaj",
@ -187,7 +231,18 @@
"medications_activeSubstancePlaceholder": "np. cholekalcyferol", "medications_activeSubstancePlaceholder": "np. cholekalcyferol",
"medications_notes": "Notatki", "medications_notes": "Notatki",
"medications_added": "Lek dodany.", "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_noMedications": "Brak leków.",
"medications_kindPrescription": "Na receptę", "medications_kindPrescription": "Na receptę",
"medications_kindOtc": "OTC (bez recepty)", "medications_kindOtc": "OTC (bez recepty)",
@ -196,7 +251,18 @@
"medications_kindOther": "Inne", "medications_kindOther": "Inne",
"labResults_title": "Wyniki badań", "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_addNew": "+ Dodaj wynik",
"labResults_newTitle": "Nowy wynik badania", "labResults_newTitle": "Nowy wynik badania",
"labResults_flagFilter": "Flaga:", "labResults_flagFilter": "Flaga:",
@ -222,7 +288,18 @@
"labResults_noResults": "Nie znaleziono wyników badań.", "labResults_noResults": "Nie znaleziono wyników badań.",
"skin_title": "Stan skóry", "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_addNew": "+ Dodaj wpis",
"skin_aiAnalysisTitle": "Analiza AI ze zdjęć", "skin_aiAnalysisTitle": "Analiza AI ze zdjęć",
"skin_aiUploadText": "Prześlij 13 zdjęcia skóry. AI wypełni pola formularza poniżej.", "skin_aiUploadText": "Prześlij 13 zdjęcia skóry. AI wypełni pola formularza poniżej.",