From cf-saas-stack
Enforces i18n patterns using remix-i18next and react-i18next: translation key conventions, namespace exports, server/client t() usage, interpolation, pluralization, and adding new languages.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cf-saas-stack:i18nThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This project uses **remix-i18next** with **i18next** and **react-i18next** for internationalization. Translations are bundled (not loaded from filesystem) for Cloudflare Workers compatibility.
This project uses remix-i18next with i18next and react-i18next for internationalization. Translations are bundled (not loaded from filesystem) for Cloudflare Workers compatibility.
t() from useTranslation()t("dashboard.total_users") not t("totalUsers")common, auth, admin, home, validationhandle with i18n namespaces on route filesexport const handle = { i18n: ["admin"] };
app/locales/{lng}/{namespace}.jsonimport { useTranslation } from "react-i18next";
function MyComponent() {
const { t } = useTranslation("namespace");
return <h1>{t("section.key")}</h1>;
}
import { i18nServer } from "@/i18n/i18n.server";
export async function loader({ request }: Route.LoaderArgs) {
const t = await i18nServer.getFixedT(request, "namespace");
return { title: t("page.title") };
}
{ "greeting": "Hello, {{name}}!" }
t("greeting", { name: user.name })
{ "items": "{{count}} item", "items_other": "{{count}} items" }
app/lib/zod-i18n.tsapp/locales/en/validation.jsonapp/locales/{lng}/common.json, auth.json, etc.supportedLngs in app/i18n/i18n.tslanguageLabels in app/components/language-switcher.tsxapp/lib/date-utils.tsbun run dev and navigate to /{lng}/ prefix routesapp/i18n/i18n.ts — Shared config (supported languages, namespaces)app/i18n/i18n.server.ts — Server-side RemixI18Next instanceapp/i18n/i18n.client.ts — Client-side i18next initializationapp/i18n/i18n.d.ts — TypeScript type augmentation for translation keysapp/locales/en/*.json — English translation filesapp/components/language-switcher.tsx — Language switcher componentapp/lib/zod-i18n.ts — Zod error map for translated validationapp/lib/date-utils.ts — date-fns locale helpernpx claudepluginhub casper-studios/casper-marketplace --plugin cf-saas-stackConfigures internationalization for React Router framework mode using remix-i18next. Covers middleware, locale detection, language switching, and resource routes.
Sets up, audits, and enforces i18n/l10n in UI codebases: configures framework, replaces hard-coded strings, validates locale parity, pluralization, and formatting.
Implements internationalization and localization including message extraction, translation catalogs, pluralization rules, date/time/number formatting, and RTL support using i18next, gettext, and React-Intl.