feat(i18n): register Brazilian Portuguese as a locale

Add pt-BR to the locale list and everything that hangs off it: the
client loader, Intl and date-fns mapping, the reply-language footers of
the Coach and insights prompts (English body, pt-BR footer, the same
path Korean and Dutch take), the citation-coverage normative words, the
no-key fallback copy, the AUDIT-C standard-drink line, country labels,
period search, CSV yes/no cells and the Telegram bare-word aliases.

The locale enums in the extract, managed-profile and record-settings
schemas now derive from the locale list instead of repeating it, and
the five notification and login-alert routes share one isLocale guard
instead of hand-rolled chains, so a later locale is one edit there.
A language tag is matched exactly and case-insensitively before its
primary subtag, so pt-BR and pt-PT browsers land on the Portuguese
bundle rather than English, and AUDIT-C no longer cuts a region tag to
two letters.

PHQ-9, GAD-7 and WHO-5 are not marked validated for pt-BR: the wording
has not been read against the published Brazilian forms, so readers get
the English items plus the existing note.
This commit is contained in:
Marc-André Bombeck committed 2026-10-22 14:50:00 +02:00
1 parent 1619b2406a
commit 764794496c
72 files changed
+425 -159

No files matched your search

+14 -6
View File
@@ -27541,6 +27541,7 @@ components:
- pl
- ko
- nl
- pt-BR
practiceName:
type: string
maxLength: 120
@@ -30039,14 +30040,15 @@ components:
description: Optional UI locale hint for the model.
type: string
enum:
- en
- de
- es
- en
- fr
- es
- it
- pl
- ko
- nl
- pt-BR
today:
description: "Optional override of the reference date used to resolve relative phrases (\"tomorrow\", \"next Monday\").
Format: `YYYY-MM-DD`. Defaults to the account's own day in its time zone."
@@ -31015,6 +31017,7 @@ components:
- pl
- ko
- nl
- pt-BR
description: One of the interface locales this build ships.
required:
- locale
@@ -36349,12 +36352,13 @@ components:
enum:
- de
- en
- es
- fr
- es
- it
- pl
- ko
- nl
- pt-BR
timezone:
type: string
minLength: 1
@@ -36404,12 +36408,13 @@ components:
enum:
- de
- en
- es
- fr
- es
- it
- pl
- ko
- nl
- pt-BR
timezone:
type: string
minLength: 1
@@ -36622,12 +36627,13 @@ components:
enum:
- de
- en
- es
- fr
- es
- it
- pl
- ko
- nl
- pt-BR
- type: "null"
timezone:
type: string
@@ -59173,6 +59179,7 @@ components:
- pl
- ko
- nl
- pt-BR
required:
- locale
additionalProperties: false
@@ -87488,12 +87495,13 @@ components:
enum:
- de
- en
- es
- fr
- es
- it
- pl
- ko
- nl
- pt-BR
- type: "null"
timezone:
type: string