Package Exports
- @geenius/i18n
- @geenius/i18n/convex
- @geenius/i18n/react
- @geenius/i18n/react-css
- @geenius/i18n/shared
- @geenius/i18n/solidjs
- @geenius/i18n/solidjs-css
Readme
@geenius/i18n
Production-ready internationalization for the Geenius ecosystem, with shared locale utilities plus React, SolidJS, vanilla-CSS, and Convex subpath exports.
Installation
pnpm add @geenius/i18nSubpath Imports
import { LOCALE_INFO, createTypedTranslator, detectLocale } from "@geenius/i18n";
import {
DEFAULT_NAMESPACE,
createI18nConfig,
createTranslationLoader,
} from "@geenius/i18n/shared";
import { I18nProvider, LocaleSwitcher, useI18n } from "@geenius/i18n/react";
import { I18nAdminPage, LocalePreviewPage } from "@geenius/i18n/react-css";
import {
I18nProvider as SolidI18nProvider,
createI18n,
createTranslations,
} from "@geenius/i18n/solidjs";
import { LocaleSwitcher as SolidCssLocaleSwitcher } from "@geenius/i18n/solidjs-css";
import {
i18nTables,
listTranslations,
schema,
upsertTranslation,
} from "@geenius/i18n/convex";Basic Usage
import {
ALL_LOCALES,
} from "@geenius/i18n";
import { I18nProvider, LocaleSwitcher, useI18n } from "@geenius/i18n/react";
const config = {
defaultLocale: "en",
supportedLocales: ALL_LOCALES,
detectBrowser: true,
persistLocale: true,
} as const;
function Toolbar(): React.JSX.Element {
const { locale, setLocale } = useI18n();
return (
<LocaleSwitcher
locales={ALL_LOCALES}
current={locale}
onChange={setLocale}
/>
);
}
export function App(): React.JSX.Element {
return (
<I18nProvider config={config}>
<Toolbar />
</I18nProvider>
);
}Package Layout
@geenius/i18n: shared locale metadata, formatting helpers, translation utilities, and error contracts@geenius/i18n/shared: shared builders and loaders for runtime configuration and namespace fetching@geenius/i18n/react: React provider, hooks, components, and reference pages@geenius/i18n/react-css: React bindings and pages styled with static CSS@geenius/i18n/solidjs: SolidJS primitives, components, and reference pages@geenius/i18n/solidjs-css: SolidJS bindings and pages styled with static CSS@geenius/i18n/convex: Convex schema, named tables, validators, queries, and mutations
Storybook
Story coverage for the React and SolidJS variants is maintained in the
geenius-i18n repository. Both
review apps render the Tailwind-oriented and vanilla-CSS variants side by side
from the same shared story surface.
License
MIT