Skip to content

v1.3.6-beta — localization and labelling fixes#34

Merged
juancobo merged 6 commits into
mainfrom
v1.3.6-beta
Jun 11, 2026
Merged

v1.3.6-beta — localization and labelling fixes#34
juancobo merged 6 commits into
mainfrom
v1.3.6-beta

Conversation

@juancobo

Copy link
Copy Markdown
Member

Patch release fixing user-facing localization and labelling issues:

  • The Start-tab activity feed now translates its action words and item types, and shows a setting's friendly name or an item's title instead of a raw identifier.
  • Object "used in N steps" counts are scoped to the active project, instead of summing references across every project that shares an object identifier.
  • Untitled objects, stories, pages, and terms show an "Untitled" label rather than their internal slug or id.
  • The sync review dialogs, accessibility labels, and a range of buttons, field labels, and placeholders that were English-only are now fully translated.

No schema changes — fully backwards-compatible and worker-rollback-safe. See the v1.3.6-beta entry in CHANGELOG.md for details.

Note: the locale JSON files were normalized to literal UTF-8 (existing escaped characters like — became their literal form); this is a content-preserving formatting change — English/Spanish key parity is unchanged.

Copilot AI review requested due to automatic review settings June 11, 2026 20:53
@juancobo juancobo merged commit 433a5d6 into main Jun 11, 2026
2 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR prepares the v1.3.6-beta patch release focused on user-facing localization/labeling fixes and correctness of object “used in N steps” counts by scoping them to the active project. It also adds regression tests to pin the new i18n behavior and the per-project counting logic.

Changes:

  • Scope object step-reference counts to the active project via a steps → stories join, and add server helpers + tests for the query/mapping.
  • Fully localize activity feed labels (verbs/entity types + entity label resolution) and replace several raw identifiers with translated “Untitled”.
  • Expand EN/ES locale coverage for onboarding, sync dialogs, accessibility labels, and assorted UI strings; bump visible version strings/docs.

Reviewed changes

Copilot reviewed 60 out of 60 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/objects-step-counts.test.ts Adds regression tests for per-project object step counts query + mapping.
tests/object-picker-dialog.test.tsx Ensures untitled objects display translated “untitled” and not raw IDs.
tests/i18n-activity.test.ts Guards i18n parity for activity verb/entity enums in EN/ES.
tests/activity-display.test.ts Pins activity entity label resolution (no raw ids/keys).
README.md Bumps displayed version to 1.3.6-beta (EN + ES sections).
CHANGELOG.md Adds v1.3.6-beta release notes.
app/routes/_app.upgrade.tsx Localizes upgrade UI strings (“waiting build”, “view on GitHub”) and bumps version annotation.
app/routes/_app.start.tsx Loads config namespace for Start tab + localizes a11y label for the rail.
app/routes/_app.objects.tsx Replaces global object usage count with project-scoped helper call.
app/routes/_app.objects.$objectId.tsx Localizes “Object ID” label + “used in step” display with translated untitled fallback.
app/routes/_app.dashboard.tsx Loads config namespace to support config-field label resolution in sync UI.
app/routes/_app.config.tsx Localizes empty-state copy for “no project connected”.
app/lib/objects.server.ts New server helper for project-scoped object step counts (query + mapping).
app/lib/activity-display.ts New client-safe helpers for activity feed entity label + config-field label mapping.
app/i18n/locales/es/upgrade.json Adds ES strings for “view on GitHub” and build-wait message.
app/i18n/locales/es/start.json Adds ES activity verb/entity translations + “someone/untitled”.
app/i18n/locales/es/onboarding.json Adds ES strings for private repo label + inline URL help.
app/i18n/locales/es/objects.json Adds/normalizes many ES strings (sync diff labels, used_in_step, computing diff, etc.).
app/i18n/locales/es/homepage.json Adds ES homepage editor labels/placeholders + “no image”.
app/i18n/locales/es/glossary.json Adds ES “used in …” label templates.
app/i18n/locales/es/editor.json Adds ES “preview clip”.
app/i18n/locales/es/dashboard.json Adds ES sync modal labels/strings for new/changed/removed items.
app/i18n/locales/es/config.json Adds ES “no themes”, empty-state strings, CTA copy.
app/i18n/locales/es/common.json Adds ES common “untitled”, a11y labels, cancel/sign out/no image.
app/i18n/locales/en/upgrade.json Adds EN strings for “view on GitHub” and build-wait message.
app/i18n/locales/en/start.json Adds EN activity verb/entity translations + “someone/untitled”.
app/i18n/locales/en/onboarding.json Adds EN strings for private repo label + inline URL help.
app/i18n/locales/en/objects.json Adds/normalizes many EN strings (sync diff labels, used_in_step, computing diff, etc.).
app/i18n/locales/en/homepage.json Adds EN homepage editor labels/placeholders + “no image”.
app/i18n/locales/en/glossary.json Adds EN “used in …” label templates.
app/i18n/locales/en/editor.json Adds EN “preview clip”.
app/i18n/locales/en/dashboard.json Adds EN sync modal labels/strings for new/changed/removed items.
app/i18n/locales/en/config.json Adds EN “no themes”, empty-state strings, CTA copy.
app/i18n/locales/en/common.json Adds EN common “untitled”, a11y labels, cancel/sign out/no image.
app/components/ui/Toast.tsx Localizes notification region/close button a11y labels.
app/components/ui/SlugField.tsx Localizes “Edit URL slug” a11y label.
app/components/ui/markdown-editor/ImageInsertDialog.tsx Prevents raw object IDs showing for untitled objects; uses translated “untitled”.
app/components/ui/markdown-editor/GlossaryLinkButton.tsx Uses translated “untitled” for missing term titles + localizes Cancel button.
app/components/layout/TabNav.tsx Localizes main nav a11y label.
app/components/layout/Header.tsx Localizes “Sign out”.
app/components/layout/Footer.tsx Bumps displayed version constant.
app/components/features/stories/StoryRow.tsx Uses translated “untitled” instead of raw story_id.
app/components/features/start/ActivityFeed.tsx Localizes activity verb/entity types + uses safe entity label resolver.
app/components/features/pages/PagesEmptyState.tsx Uses translated “untitled” instead of page slug.
app/components/features/pages/HomepageEditor.tsx Localizes homepage editor labels/placeholders + no-image/untitled handling.
app/components/features/onboarding/StepSync.tsx Localizes import progress a11y label.
app/components/features/onboarding/StepConnect.tsx Localizes “Private” repo badge.
app/components/features/onboarding/ProgressBar.tsx Localizes onboarding progress a11y label.
app/components/features/onboarding/InlineConfig.tsx Localizes inline URL help text.
app/components/features/objects/SyncDiffDialog.tsx Localizes sync diff UI strings + field labels + untitled handling.
app/components/features/objects/ObjectRow.tsx Uses translated “untitled” for object labels/alt text.
app/components/features/objects/AddObjectDialog.tsx Localizes “Object ID” label.
app/components/features/objects/AddIiifDialog.tsx Localizes “Object ID” label.
app/components/features/glossary/UsedInPanel.tsx Localizes “used in” row labels via interpolation templates + untitled fallback.
app/components/features/editor/ViewerColumn.tsx Localizes “Preview clip”.
app/components/features/editor/ObjectPickerDialog.tsx Uses translated “untitled” for missing object titles.
app/components/features/dashboard/SyncConfirmModal.tsx Localizes section/item labels and resolves config field keys to friendly labels.
app/components/features/dashboard/StoryCard.tsx Localizes “No image” + uses translated “untitled” for titles/alt text.
app/components/features/dashboard/OrphanStoryBanner.tsx Localizes orphan banner a11y label.
app/components/features/config/ThemeSwatches.tsx Localizes “no themes” message + uses translated “untitled” for unnamed themes.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread app/lib/objects.server.ts
Comment on lines +20 to +24
import { eq, count } from "drizzle-orm";
import { steps, stories } from "~/db/schema";
import type { getDb } from "~/lib/db.server";

type DbInstance = ReturnType<typeof getDb>;
@juancobo juancobo deleted the v1.3.6-beta branch June 12, 2026 04:21
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