JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 51
  • Score
    100M100P100Q125843F
  • License MIT

Geenius I18n — Internationalization for Convex apps (React + SolidJS)

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/i18n

Subpath 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