mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-08 12:32:43 +00:00
fix(i18n): restore interpolation spacing on pagination and counter keys across FR/ES/IT/PL
The earlier translation pass dropped the surrounding spaces around the
connector word on ten counter / pagination keys — the result was
`Page 2 de10` / `Page 2 z10` rendering on every FR/ES/IT/PL
`pageInfo`-shaped surface plus the admin pagination, onboarding tour
step pill, getting-started progress chip, target consistency chips,
and target weekly summary headline. Restore the spaces and translate
the surrounding nouns natively at the same pass:
- pageInfo (measurements / mood / medications), `admin.section.auditLog.pageOf`
→ FR `Page {page} sur {total}`, ES `Página {page} de {total}`,
IT `Pagina {page} di {total}`, PL `Strona {page} z {total}`.
- `admin.showingEntries`, `onboarding.tour.stepOf`, `gettingStarted.progress`,
`targets.consistency.daysInRange`, `targets.consistency.daysLogged`,
`targets.summary.weekTitle` — translated in full with native verb forms
and balanced placeholder whitespace.
The drift-guard test stays green; a follow-up tightening to assert
`[A-Za-zÀ-ÿ]\{|\}[A-Za-zÀ-ÿ]` returns no match across the bundle would
have caught the original drift and is queued for the next i18n round.
This commit is contained in:
1 parent
b10ec6261d
commit
815f31a321
4 files changed
+40
-40
No files matched your search
+10
-10
@@ -348,7 +348,7 @@
|
||||
"actions": "Acciones",
|
||||
"deleteConfirmTitle": "Delete measurement?",
|
||||
"deleteConfirmDescription": "This measurement will be permanently deleted.",
|
||||
"pageInfo": "Page {page} de{total}",
|
||||
"pageInfo": "Página {page} de {total}",
|
||||
"previousPage": "Previous page",
|
||||
"nextPage": "Next page"
|
||||
},
|
||||
@@ -385,7 +385,7 @@
|
||||
"invalidTimestamp": "Please select a valid time.",
|
||||
"deleteConfirmTitle": "Delete entry?",
|
||||
"deleteConfirmDescription": "This mood entry will be permanently deleted.",
|
||||
"pageInfo": "Page {page} de{total}",
|
||||
"pageInfo": "Página {page} de {total}",
|
||||
"loginRequired": "Please sign in to view mood entries."
|
||||
},
|
||||
"medications": {
|
||||
@@ -714,7 +714,7 @@
|
||||
"invalidTimestamp": "Please select a valid time.",
|
||||
"noIntakesYet": "No intakes recorded yet",
|
||||
"actions": "Acciones",
|
||||
"pageInfo": "Page {page} de{total}",
|
||||
"pageInfo": "Página {page} de {total}",
|
||||
"previousPage": "Previous page",
|
||||
"nextPage": "Next page",
|
||||
"loginRequiredIntakes": "Please sign in to view intakes.",
|
||||
@@ -1311,7 +1311,7 @@
|
||||
"onboarding": {
|
||||
"errorGeneric": "Something went wrong while finishing setup. Please try again.",
|
||||
"tour": {
|
||||
"stepOf": "Step {current} de{total}",
|
||||
"stepOf": "Paso {current} de {total}",
|
||||
"next": "Siguiente",
|
||||
"back": "Atrás",
|
||||
"skip": "Skip tour",
|
||||
@@ -1413,7 +1413,7 @@
|
||||
"gettingStarted": {
|
||||
"title": "Getting started",
|
||||
"subtitle": "Quick wins to get the most out of HealthLog.",
|
||||
"progress": "{done} de{total} Hecho",
|
||||
"progress": "{done} de {total} hecho",
|
||||
"dismissAll": "Hide checklist",
|
||||
"dismissTooltip": "Hide this item",
|
||||
"items": {
|
||||
@@ -2070,7 +2070,7 @@
|
||||
"loginEmptyFailedTitle": "No failed sign-in attempts",
|
||||
"loginEmptyFailedDescription": "That's the safe state. Switch to all events to see successful sign-ins.",
|
||||
"loginEmptyResetFilter": "Show all events",
|
||||
"showingEntries": "Showing {count} de{total} auth entries",
|
||||
"showingEntries": "Mostrando {count} de {total} entradas de autenticación",
|
||||
"status": "Estado",
|
||||
"action": "Action",
|
||||
"ip": "IP",
|
||||
@@ -2256,7 +2256,7 @@
|
||||
"perPage": "Per page",
|
||||
"prev": "Previous",
|
||||
"next": "Siguiente",
|
||||
"pageOf": "Page {page} de{total}",
|
||||
"pageOf": "Página {page} de {total}",
|
||||
"export": "Export CSV",
|
||||
"empty": "No audit entries match the current filters."
|
||||
},
|
||||
@@ -2670,8 +2670,8 @@
|
||||
"average30d": "30-day average:",
|
||||
"consistency": {
|
||||
"ariaLabel": "Last 7 days, in-range status per day",
|
||||
"daysInRange": "{count} de{total} in range",
|
||||
"daysLogged": "{count} de{total} logged",
|
||||
"daysInRange": "{count} de {total} en rango",
|
||||
"daysLogged": "{count} de {total} registrados",
|
||||
"dotInRange": "in range",
|
||||
"dotNearRange": "near range",
|
||||
"dotOutOfRange": "out of range",
|
||||
@@ -2697,7 +2697,7 @@
|
||||
"daysAgo": "{count} days ago"
|
||||
},
|
||||
"summary": {
|
||||
"weekTitle": "{met} de{total} targets met this week",
|
||||
"weekTitle": "{met} de {total} objetivos cumplidos esta semana",
|
||||
"weekTitleAll": "Todo{total} targets met this week",
|
||||
"streakHighlight": "{count}-day streak: {metric}"
|
||||
},
|
||||
|
||||
+10
-10
@@ -348,7 +348,7 @@
|
||||
"actions": "Actions",
|
||||
"deleteConfirmTitle": "Delete measurement?",
|
||||
"deleteConfirmDescription": "This measurement will be permanently deleted.",
|
||||
"pageInfo": "Page {page} de{total}",
|
||||
"pageInfo": "Page {page} sur {total}",
|
||||
"previousPage": "Previous page",
|
||||
"nextPage": "Next page"
|
||||
},
|
||||
@@ -385,7 +385,7 @@
|
||||
"invalidTimestamp": "Please select a valid time.",
|
||||
"deleteConfirmTitle": "Delete entry?",
|
||||
"deleteConfirmDescription": "This mood entry will be permanently deleted.",
|
||||
"pageInfo": "Page {page} de{total}",
|
||||
"pageInfo": "Page {page} sur {total}",
|
||||
"loginRequired": "Please sign in to view mood entries."
|
||||
},
|
||||
"medications": {
|
||||
@@ -714,7 +714,7 @@
|
||||
"invalidTimestamp": "Please select a valid time.",
|
||||
"noIntakesYet": "No intakes recorded yet",
|
||||
"actions": "Actions",
|
||||
"pageInfo": "Page {page} de{total}",
|
||||
"pageInfo": "Page {page} sur {total}",
|
||||
"previousPage": "Previous page",
|
||||
"nextPage": "Next page",
|
||||
"loginRequiredIntakes": "Please sign in to view intakes.",
|
||||
@@ -1311,7 +1311,7 @@
|
||||
"onboarding": {
|
||||
"errorGeneric": "Something went wrong while finishing setup. Please try again.",
|
||||
"tour": {
|
||||
"stepOf": "Step {current} de{total}",
|
||||
"stepOf": "Étape {current} sur {total}",
|
||||
"next": "Suivant",
|
||||
"back": "Retour",
|
||||
"skip": "Skip tour",
|
||||
@@ -1413,7 +1413,7 @@
|
||||
"gettingStarted": {
|
||||
"title": "Getting started",
|
||||
"subtitle": "Quick wins to get the most out of HealthLog.",
|
||||
"progress": "{done} de{total} Terminé",
|
||||
"progress": "{done} sur {total} terminé",
|
||||
"dismissAll": "Hide checklist",
|
||||
"dismissTooltip": "Hide this item",
|
||||
"items": {
|
||||
@@ -2070,7 +2070,7 @@
|
||||
"loginEmptyFailedTitle": "No failed sign-in attempts",
|
||||
"loginEmptyFailedDescription": "That's the safe state. Switch to all events to see successful sign-ins.",
|
||||
"loginEmptyResetFilter": "Show all events",
|
||||
"showingEntries": "Showing {count} de{total} auth entries",
|
||||
"showingEntries": "Affichage de {count} sur {total} entrées d'authentification",
|
||||
"status": "Statut",
|
||||
"action": "Action",
|
||||
"ip": "IP",
|
||||
@@ -2256,7 +2256,7 @@
|
||||
"perPage": "Per page",
|
||||
"prev": "Previous",
|
||||
"next": "Suivant",
|
||||
"pageOf": "Page {page} de{total}",
|
||||
"pageOf": "Page {page} sur {total}",
|
||||
"export": "Export CSV",
|
||||
"empty": "No audit entries match the current filters."
|
||||
},
|
||||
@@ -2670,8 +2670,8 @@
|
||||
"average30d": "30-day average:",
|
||||
"consistency": {
|
||||
"ariaLabel": "Last 7 days, in-range status per day",
|
||||
"daysInRange": "{count} de{total} in range",
|
||||
"daysLogged": "{count} de{total} logged",
|
||||
"daysInRange": "{count} sur {total} dans la cible",
|
||||
"daysLogged": "{count} sur {total} enregistrés",
|
||||
"dotInRange": "in range",
|
||||
"dotNearRange": "near range",
|
||||
"dotOutOfRange": "out of range",
|
||||
@@ -2697,7 +2697,7 @@
|
||||
"daysAgo": "{count} days ago"
|
||||
},
|
||||
"summary": {
|
||||
"weekTitle": "{met} de{total} targets met this week",
|
||||
"weekTitle": "{met} cibles sur {total} atteintes cette semaine",
|
||||
"weekTitleAll": "Tout{total} targets met this week",
|
||||
"streakHighlight": "{count}-day streak: {metric}"
|
||||
},
|
||||
|
||||
+10
-10
@@ -348,7 +348,7 @@
|
||||
"actions": "Azioni",
|
||||
"deleteConfirmTitle": "Delete measurement?",
|
||||
"deleteConfirmDescription": "This measurement will be permanently deleted.",
|
||||
"pageInfo": "Page {page} di{total}",
|
||||
"pageInfo": "Pagina {page} di {total}",
|
||||
"previousPage": "Previous page",
|
||||
"nextPage": "Next page"
|
||||
},
|
||||
@@ -385,7 +385,7 @@
|
||||
"invalidTimestamp": "Please select a valid time.",
|
||||
"deleteConfirmTitle": "Delete entry?",
|
||||
"deleteConfirmDescription": "This mood entry will be permanently deleted.",
|
||||
"pageInfo": "Page {page} di{total}",
|
||||
"pageInfo": "Pagina {page} di {total}",
|
||||
"loginRequired": "Please sign in to view mood entries."
|
||||
},
|
||||
"medications": {
|
||||
@@ -714,7 +714,7 @@
|
||||
"invalidTimestamp": "Please select a valid time.",
|
||||
"noIntakesYet": "No intakes recorded yet",
|
||||
"actions": "Azioni",
|
||||
"pageInfo": "Page {page} di{total}",
|
||||
"pageInfo": "Pagina {page} di {total}",
|
||||
"previousPage": "Previous page",
|
||||
"nextPage": "Next page",
|
||||
"loginRequiredIntakes": "Please sign in to view intakes.",
|
||||
@@ -1311,7 +1311,7 @@
|
||||
"onboarding": {
|
||||
"errorGeneric": "Something went wrong while finishing setup. Please try again.",
|
||||
"tour": {
|
||||
"stepOf": "Step {current} di{total}",
|
||||
"stepOf": "Passo {current} di {total}",
|
||||
"next": "Avanti",
|
||||
"back": "Indietro",
|
||||
"skip": "Skip tour",
|
||||
@@ -1413,7 +1413,7 @@
|
||||
"gettingStarted": {
|
||||
"title": "Getting started",
|
||||
"subtitle": "Quick wins to get the most out of HealthLog.",
|
||||
"progress": "{done} di{total} Fatto",
|
||||
"progress": "{done} di {total} fatto",
|
||||
"dismissAll": "Hide checklist",
|
||||
"dismissTooltip": "Hide this item",
|
||||
"items": {
|
||||
@@ -2070,7 +2070,7 @@
|
||||
"loginEmptyFailedTitle": "No failed sign-in attempts",
|
||||
"loginEmptyFailedDescription": "That's the safe state. Switch to all events to see successful sign-ins.",
|
||||
"loginEmptyResetFilter": "Show all events",
|
||||
"showingEntries": "Showing {count} di{total} auth entries",
|
||||
"showingEntries": "Mostrando {count} di {total} voci di autenticazione",
|
||||
"status": "Stato",
|
||||
"action": "Action",
|
||||
"ip": "IP",
|
||||
@@ -2256,7 +2256,7 @@
|
||||
"perPage": "Per page",
|
||||
"prev": "Previous",
|
||||
"next": "Avanti",
|
||||
"pageOf": "Page {page} di{total}",
|
||||
"pageOf": "Pagina {page} di {total}",
|
||||
"export": "Export CSV",
|
||||
"empty": "No audit entries match the current filters."
|
||||
},
|
||||
@@ -2670,8 +2670,8 @@
|
||||
"average30d": "30-day average:",
|
||||
"consistency": {
|
||||
"ariaLabel": "Last 7 days, in-range status per day",
|
||||
"daysInRange": "{count} di{total} in range",
|
||||
"daysLogged": "{count} di{total} logged",
|
||||
"daysInRange": "{count} di {total} nell'intervallo",
|
||||
"daysLogged": "{count} di {total} registrati",
|
||||
"dotInRange": "in range",
|
||||
"dotNearRange": "near range",
|
||||
"dotOutOfRange": "out of range",
|
||||
@@ -2697,7 +2697,7 @@
|
||||
"daysAgo": "{count} days ago"
|
||||
},
|
||||
"summary": {
|
||||
"weekTitle": "{met} di{total} targets met this week",
|
||||
"weekTitle": "{met} di {total} obiettivi raggiunti questa settimana",
|
||||
"weekTitleAll": "Tutto{total} targets met this week",
|
||||
"streakHighlight": "{count}-day streak: {metric}"
|
||||
},
|
||||
|
||||
+10
-10
@@ -348,7 +348,7 @@
|
||||
"actions": "Akcje",
|
||||
"deleteConfirmTitle": "Delete measurement?",
|
||||
"deleteConfirmDescription": "This measurement will be permanently deleted.",
|
||||
"pageInfo": "Page {page} z{total}",
|
||||
"pageInfo": "Strona {page} z {total}",
|
||||
"previousPage": "Previous page",
|
||||
"nextPage": "Next page"
|
||||
},
|
||||
@@ -385,7 +385,7 @@
|
||||
"invalidTimestamp": "Please select a valid time.",
|
||||
"deleteConfirmTitle": "Delete entry?",
|
||||
"deleteConfirmDescription": "This mood entry will be permanently deleted.",
|
||||
"pageInfo": "Page {page} z{total}",
|
||||
"pageInfo": "Strona {page} z {total}",
|
||||
"loginRequired": "Please sign in to view mood entries."
|
||||
},
|
||||
"medications": {
|
||||
@@ -714,7 +714,7 @@
|
||||
"invalidTimestamp": "Please select a valid time.",
|
||||
"noIntakesYet": "No intakes recorded yet",
|
||||
"actions": "Akcje",
|
||||
"pageInfo": "Page {page} z{total}",
|
||||
"pageInfo": "Strona {page} z {total}",
|
||||
"previousPage": "Previous page",
|
||||
"nextPage": "Next page",
|
||||
"loginRequiredIntakes": "Please sign in to view intakes.",
|
||||
@@ -1311,7 +1311,7 @@
|
||||
"onboarding": {
|
||||
"errorGeneric": "Something went wrong while finishing setup. Please try again.",
|
||||
"tour": {
|
||||
"stepOf": "Step {current} z{total}",
|
||||
"stepOf": "Krok {current} z {total}",
|
||||
"next": "Dalej",
|
||||
"back": "Wstecz",
|
||||
"skip": "Skip tour",
|
||||
@@ -1413,7 +1413,7 @@
|
||||
"gettingStarted": {
|
||||
"title": "Getting started",
|
||||
"subtitle": "Quick wins to get the most out of HealthLog.",
|
||||
"progress": "{done} z{total} Gotowe",
|
||||
"progress": "{done} z {total} ukończone",
|
||||
"dismissAll": "Hide checklist",
|
||||
"dismissTooltip": "Hide this item",
|
||||
"items": {
|
||||
@@ -2070,7 +2070,7 @@
|
||||
"loginEmptyFailedTitle": "No failed sign-in attempts",
|
||||
"loginEmptyFailedDescription": "That's the safe state. Switch to all events to see successful sign-ins.",
|
||||
"loginEmptyResetFilter": "Show all events",
|
||||
"showingEntries": "Showing {count} z{total} auth entries",
|
||||
"showingEntries": "Wyświetlanie {count} z {total} wpisów uwierzytelniania",
|
||||
"status": "Status",
|
||||
"action": "Action",
|
||||
"ip": "IP",
|
||||
@@ -2256,7 +2256,7 @@
|
||||
"perPage": "Per page",
|
||||
"prev": "Previous",
|
||||
"next": "Dalej",
|
||||
"pageOf": "Page {page} z{total}",
|
||||
"pageOf": "Strona {page} z {total}",
|
||||
"export": "Export CSV",
|
||||
"empty": "No audit entries match the current filters."
|
||||
},
|
||||
@@ -2670,8 +2670,8 @@
|
||||
"average30d": "30-day average:",
|
||||
"consistency": {
|
||||
"ariaLabel": "Last 7 days, in-range status per day",
|
||||
"daysInRange": "{count} z{total} in range",
|
||||
"daysLogged": "{count} z{total} logged",
|
||||
"daysInRange": "{count} z {total} w zakresie",
|
||||
"daysLogged": "{count} z {total} zarejestrowanych",
|
||||
"dotInRange": "in range",
|
||||
"dotNearRange": "near range",
|
||||
"dotOutOfRange": "out of range",
|
||||
@@ -2697,7 +2697,7 @@
|
||||
"daysAgo": "{count} days ago"
|
||||
},
|
||||
"summary": {
|
||||
"weekTitle": "{met} z{total} targets met this week",
|
||||
"weekTitle": "{met} z {total} celów osiągniętych w tym tygodniu",
|
||||
"weekTitleAll": "Wszystko{total} targets met this week",
|
||||
"streakHighlight": "{count}-day streak: {metric}"
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user