Skip to content

feat: add Spanish (es) UI translation - #791

Draft
jdvr wants to merge 3 commits into
simonoppowa:developfrom
jdvr:feat/spanish-locale
Draft

feat: add Spanish (es) UI translation#791
jdvr wants to merge 3 commits into
simonoppowa:developfrom
jdvr:feat/spanish-locale

Conversation

@jdvr

@jdvr jdvr commented Aug 23, 2026

Copy link
Copy Markdown

Summary

  • Adds a complete Spanish (es) UI translation: lib/l10n/intl_es.arb with all 921 messages (placeholders and ICU plural syntax validated against intl_en.arb).
  • Adds 'es': 'Español' to the language picker in Settings.

Translated via Weblate + manual review. Generated l10n files are gitignored, so no generated output is included — CI runs flutter gen-l10n.

Type

  • Feature

Test plan

  • just ci (gen-l10n + analyze + tests) — local machine has no Flutter toolchain installed; relying on CI
  • Key parity with intl_en.arb: 921/921 messages, placeholder names/types match
  • Manual review of terminology welcome (e.g. lunchLabel = "Almuerzo" vs "Comida" for Spain)

Checklist

  • No new interactive widgets (translation-only change)
  • l10n: all keys added to the new ARB; other locales untouched
  • No codegen output committed (gitignored)
  • No secrets

- Add lib/l10n/intl_es.arb with all 921 messages translated
- Add 'Español' to the settings language picker

Generated l10n files are gitignored; CI runs gen-l10n.
@jdvr
jdvr marked this pull request as draft August 23, 2026 09:25
@simonoppowa
simonoppowa changed the base branch from main to develop August 25, 2026 16:16
@simonoppowa

Copy link
Copy Markdown
Owner

Thanks for this — a tenth locale is very welcome. One heads-up so a red build doesn't come as a surprise, since it will be caused by things that landed after you opened this rather than by anything you did.

develop has moved since 23 August, and intl_es.arb here is 20 keys behind intl_en.arb. Right now flutter gen-l10n exits 0 on a missing key and falls back to English at runtime, so nothing flags it — but #909 is open specifically to make that fail the build, so whichever of the two merges second will go red.

The 20 keys to add

Health sync — 12 keys, from #651 (workout import from Health Connect / Apple Health):

healthSyncAutoImportLabel          healthSyncKcalMultiplierValueLabel
healthSyncImportNowLabel           healthSyncLastImportLabel
healthSyncImportedCountLabel       healthSyncNeverImportedLabel
healthSyncKcalMultiplierLabel      healthSyncPermissionDeniedLabel
healthSyncKcalMultiplierSubtitle   healthSyncSuggestedLabel
healthSyncUnavailableLabel         settingsHealthSyncSubtitle

Policy change notice — 4 keys, from #921:

policyChangeNoticeTitle    policyChangeNoticeReadAction
policyChangeNoticeBody     policyChangeNoticeDismissAction

Energy-compensation sources — 2 keys:

sourcesEnergyCompensationTitle    sourcesEnergyCompensationDescription

And two singles: sendCrashReports, suggestedLabel.

One key to remove

sendAnonymousUserData is in intl_es.arb here but no longer exists in any locale on develop. It was renamed to sendCrashReports in #902, and the rename was the point rather than cosmetic: #900 found the reports carry a stable per-install identifier and a city, so calling them anonymous was not accurate. Worth knowing when you write the Spanish string — it should say "send crash reports", not "send anonymous data".

Also worth a look

The file list on this PR currently shows 100+ files including workflow files, fonts and site assets, and GitHub reports the merge state as unknown. That usually means the branch is based on an older commit rather than that you meant to touch all of those. A rebase onto current develop would shrink the diff to just the Spanish work and pick up the new keys at the same time.

intl_en.arb is the source of truth for the key set — anything in there and not in intl_es.arb is what #909 will complain about.

@jdvr

jdvr commented Sep 1, 2026

Copy link
Copy Markdown
Author

Thanks for the feedback, I'll get everything sorted out and promote this for review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants