Phase 4: Translate Shared Components - common, navigation, status labels

- Translate LoadingState and EmptyState components (common namespace)
- Translate Header navigation labels (navigation namespace)
- Translate StatusBadge trade status labels (exchange namespace)
- Create navigation.json translation files for es, en, ca
- Create exchange.json translation files for status/direction/transfer labels
- Update IntlProvider to load navigation and exchange namespaces
- Update frontend tests to expect Spanish translations (default language)
- Configure Playwright to use English language for e2e tests via storageState
- Fix test expectations to match translated strings

All frontend and e2e tests passing.
This commit is contained in:
counterweight 2025-12-25 22:06:39 +01:00
parent f86ec8b62d
commit a5a1a2c1ad
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
14 changed files with 173 additions and 27 deletions

View file

@ -1,9 +1,10 @@
"use client";
import { layoutStyles } from "../styles/shared";
import { useTranslation } from "../hooks/useTranslation";
interface LoadingStateProps {
/** Custom loading message (default: "Loading...") */
/** Custom loading message (default: uses translation) */
message?: string;
}
@ -11,10 +12,13 @@ interface LoadingStateProps {
* Standard loading state component.
* Displays a centered loading message with consistent styling.
*/
export function LoadingState({ message = "Loading..." }: LoadingStateProps) {
export function LoadingState({ message }: LoadingStateProps) {
const t = useTranslation("common");
const displayMessage = message || t("loading");
return (
<main style={layoutStyles.main}>
<div style={layoutStyles.loader}>{message}</div>
<div style={layoutStyles.loader}>{displayMessage}</div>
</main>
);
}