@geenius/i18n
v0.16.0
Published
Geenius I18n — Internationalization for Convex apps (React + SolidJS)
Maintainers
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
Local Storybook review apps are available for both framework variants and render the Tailwind and vanilla-CSS implementations side by side from the same shared story surface.
pnpm --filter ./apps/storybook-react dev
pnpm --filter ./apps/storybook-solidjs dev- React Storybook app: http://localhost:3068
- SolidJS Storybook app: http://localhost:3069
License
@geenius/i18n is distributed under the Functional Source License 1.1 with a
future Apache 2.0 grant. Commercial use follows the proprietary Geenius
licensing terms described in LICENSE.
