Files
HealthLog/.github/ISSUE_TEMPLATE/translation.yml
T
Marc-André Bombeck 764794496c 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.
2026-10-22 14:50:00 +02:00

85 lines
3.3 KiB
YAML

name: Translation feedback
description: Report a wording, grammar, or register problem in HealthLog's community-maintained locales (FR / ES / IT / PL / KO / NL / PT-BR).
title: "[Translation] "
labels: ["i18n", "translation-feedback"]
body:
- type: markdown
attributes:
value: |
HealthLog ships German and English as maintainer-curated translations. French, Spanish, Italian, Polish, Korean, Dutch, and Brazilian Portuguese ship as **AI-initial, community-maintained translations** — the prose passes the locale-integrity test (full key parity, no empty values) but has not been hand-reviewed for register or regional vocabulary.
This template captures concrete fixes you would like to see. Phrasing nuance, regional vocabulary (e.g. "Tú" vs "Usted"), gendered forms, and domain-specific health terms are all in scope. The maintainer applies fixes during the regular release cycle.
For wholly new locale requests (e.g. "please add Swedish"), open a [Discussion](https://github.com/MBombeck/HealthLog/discussions) instead.
- type: dropdown
id: locale
attributes:
label: Locale
options:
- French (fr)
- Spanish (es)
- Italian (it)
- Polish (pl)
- Korean (ko)
- Dutch (nl)
- Brazilian Portuguese (pt-BR)
- Other (specify under "Surface")
validations:
required: true
- type: textarea
id: surface
attributes:
label: Where you saw it
description: |
Page / component / dialog name. Include the route (e.g. `/insights`, `/settings/notifications`) and, if possible, the i18n key from the rendered DOM (open DevTools, look for the visible string).
placeholder: |
Route: /insights/blood-pressure
Component: blood-pressure trend card header
Key (if known): insights.bp.trendCard.title
validations:
required: true
- type: textarea
id: current
attributes:
label: Current wording
description: Paste the exact phrase as it appears in the app today.
validations:
required: true
- type: textarea
id: suggested
attributes:
label: Suggested wording
description: |
How should it read instead? Include reasoning if the change is more than a typo — register (formal vs. informal), regional vocabulary, medical terminology, or grammar.
validations:
required: true
- type: dropdown
id: kind
attributes:
label: Kind of issue
options:
- Grammar / spelling
- Wrong word (translation error)
- Awkward / unnatural phrasing
- Wrong register (too formal / too casual)
- Medical terminology
- Regional vocabulary
- Untranslated string (English fall-through)
- Other
validations:
required: true
- type: textarea
id: context
attributes:
label: Additional context
description: Screenshots, links to related issues, related strings on the same page, etc.
- type: checkboxes
id: terms
attributes:
label: Pre-flight checks
options:
- label: I confirmed this is not a duplicate of an existing translation issue.
required: true
- label: My suggestion respects the maintainer's editorial voice (professional, neutral, plain prose — no marketing-speak).
required: true