diff --git a/packages/dashboard/app/components/DashboardLoader.tsx b/packages/dashboard/app/components/DashboardLoader.tsx
index 6f2f90f6ef..4b4134c82f 100644
--- a/packages/dashboard/app/components/DashboardLoader.tsx
+++ b/packages/dashboard/app/components/DashboardLoader.tsx
@@ -75,12 +75,20 @@ export function DashboardLoader({ stage }: DashboardLoaderProps) {
return versionUpdated;
});
+ /**
+ * FNXC:DashboardI18n 2026-06-20-23:20:
+ * FN-6822 requires the loader status region accessible name to carry inline English defaults so backend-less test i18next and pre-catalog first paint render the localized label instead of the raw key.
+ */
+ const statusLabel = isVersionUpdate
+ ? t("dashboard.updatingMessage", "Updating Fusion dashboard")
+ : t("dashboard.loadingMessage", "Loading Fusion dashboard");
+
return (
diff --git a/packages/dashboard/app/components/StashConflictModal.tsx b/packages/dashboard/app/components/StashConflictModal.tsx
index 2cb9a3c949..6e1f7dafc4 100644
--- a/packages/dashboard/app/components/StashConflictModal.tsx
+++ b/packages/dashboard/app/components/StashConflictModal.tsx
@@ -85,6 +85,12 @@ export default function StashConflictModal({
const [error, setError] = useState
(null);
const [copyState, setCopyState] = useState<"idle" | "copied" | "failed">("idle");
+ /**
+ * FNXC:StashConflictModalI18n 2026-06-20-23:22:
+ * FN-6822 requires the copy-reference accessible name to use the same inline English default for both the rendered button and the initial-focus selector so backend-less i18next does not expose raw keys or break focus targeting.
+ */
+ const copyReferenceLabel = t("stash.copyReference", "Copy stash reference");
+
useEffect(() => {
if (open) {
setRemainingConflicts(autostashOutcome === "failed" ? [] : conflictedFiles);
@@ -103,7 +109,7 @@ export default function StashConflictModal({
const modalElement = modalRef.current;
if (modalElement) {
const focusable = getFocusableElements(modalElement);
- const preferred = focusable.find((element) => element.getAttribute("aria-label") === t("stash.copyReference")) ?? focusable[0];
+ const preferred = focusable.find((element) => element.getAttribute("aria-label") === copyReferenceLabel) ?? focusable[0];
if (preferred) {
preferred.focus();
} else {
@@ -156,7 +162,7 @@ export default function StashConflictModal({
}
previousFocusRef.current = null;
};
- }, [open, onClose]);
+ }, [copyReferenceLabel, open, onClose]);
const stashDescriptor = useMemo(() => `Stash ref: ${shortSha(stashSha)} (${stashLabel})`, [stashLabel, stashSha]);
@@ -241,7 +247,7 @@ export default function StashConflictModal({
) : null}
{stashDescriptor}
-