Skip to content

Wrap /admin/modules page strings in gettext + ru/et translations#530

Merged
ddon merged 1 commit into
BeamLabEU:devfrom
timujinne:feature/core-modules-page-wrap
May 10, 2026
Merged

Wrap /admin/modules page strings in gettext + ru/et translations#530
ddon merged 1 commit into
BeamLabEU:devfrom
timujinne:feature/core-modules-page-wrap

Conversation

@timujinne
Copy link
Copy Markdown
Contributor

Summary

  • Wrap all user-facing strings in modules.html.heex (~80 call sites, 51 unique msgids) with gettext() calls
  • Run mix gettext.extract --merge to populate default.pot and all locale .po files
  • Fill Russian (ru) and Estonian (et) msgstrs for all new msgids
  • Also fill 5 shared msgids that were empty and used by the modules page: Configure, Settings, Connections, Maintenance Mode, Published
  • Other locales (de/es/fr/it/pl) receive empty msgstr "" and fall back to English

Related: #522, #527, #529

Strings wrapped

Headings, subtitles, button labels, badge text, stat labels, empty-state hints, help text — covering all 10 built-in module cards (Storage, Referral Codes, Languages, Comments, Customer Support, Connections, SEO, Sitemap, Maintenance Mode, Jobs) plus the external modules loop and Available Packages section.

Verification

Verified live on decor_3d_print (port 4001) via Tidewave MCP project_eval:

ru: Modules → Модули, Configure → Настроить, Maintenance Mode → Режим обслуживания, Sitemap → Карта сайта
et: Modules → Moodulid, Configure → Seadista, Maintenance Mode → Hoolduseolekurežiim, Sitemap → Saidikava

Test plan

  • mix compile clean
  • mix format --check-formatted passes
  • mix credo --strict — no issues
  • mix dialyzer passes
  • Translations verified live in decor_3d_print app via MCP eval
  • No @version bump, no CHANGELOG.md edit

Wrap all user-facing strings in modules.html.heex with gettext() calls
(~80 wrapping sites across 51 unique msgids). Extract msgids via
mix gettext.extract --merge and fill Russian and Estonian msgstrs.
Other locales (de/es/fr/it/pl) receive empty msgstrs and fall back
to English msgid.

Shared msgids also filled: Configure, Settings, Connections,
Maintenance Mode, Published (were empty, used by modules page too).
@ddon ddon merged commit 520b25d into BeamLabEU:dev May 10, 2026
timujinne added a commit to timujinne/phoenix_kit that referenced this pull request May 11, 2026
Resolved conflicts in priv/gettext/{et,ru}/LC_MESSAGES/default.po by taking
upstream/dev side. Rationale:

et:
- Sessions: Sessioonid (consistent with "Aktiivsed sessioonid")
- Settings: Seaded (consistent with rest of file)
- Health:   Seisund (more semantic)
- Big block: upstream's gettext.extract already covered all admin_tabs.ex
  msgids from PRs BeamLabEU#530/BeamLabEU#531 with matching translations; the orphan "Home"
  entry added in this branch had no source reference (admin_dashboard
  label is "Dashboard", not "Home") and was dropped.

ru:
- Permissions: Права (consistent with "Права для", "Права обновлены")
- Big block: same reasoning as et.

PR's gettext_backend wiring in admin_tabs.ex (8 tabs), registry.ex (2
tabs), and jobs.ex (1 tab) preserved by the merge.
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