import type { InterpolationParams, TranslationKeys } from 'i18n'; import { useCallback } from 'react'; import { useTranslation as useTranslationBase } from 'i18n'; import type en from './en-GB.json'; type UiTranslationKey = TranslationKeys; // The `ui.` prefix is namespace wiring for the merged catalog (D6) — callers never spell it, they // pass the same bare key the JSON file uses. `ui.*` may not name a feature (see the naming convention). export const useTranslation = () => { const { t: baseT, locale } = useTranslationBase(); // Memoized: an unstable `t` is unusable in a dependency array. See platform/CLAUDE.md on the // `useClient()` trap that silently disabled the Jellyfin player's playback reports. const t = useCallback((key: UiTranslationKey, params?: InterpolationParams) => baseT(`ui.${key}`, params), [baseT]); return { t, locale }; };