@phillipinsurance-kh/i18n
v0.1.0-beta.11
Published
Shared internationalization package for Phillip General Insurance monorepo.
Readme
@pgi/i18n
Shared internationalization package for Phillip General Insurance monorepo.
Installation
pnpm add @pgi/i18nUsage
With i18next (React apps)
import i18n from 'i18next';
import { initI18n } from '@pgi/i18n';
initI18n(i18n);Direct translation lookup
import { t, getTranslations } from '@pgi/i18n';
// Get translation by key
const label = t('en', 'common.submit'); // "Submit"
// Get all translations for a locale
const translations = getTranslations('km');URL localization
import { getLocalizedUrl, getLocaleFromUrl, getAlternateLocale } from '@pgi/i18n';
// Get localized URL
const url = getLocalizedUrl('/about', 'km'); // "/km/about"
// Get locale from URL
const locale = getLocaleFromUrl(new URL('https://example.com/km/products')); // "km"
// Get alternate locale for language switcher
const altLocale = getAlternateLocale('en'); // "km"Structure
packages/i18n/
├── locales/
│ ├── en.json # English translations
│ └── km.json # Khmer translations
├── src/
│ ├── index.ts # Main exports and utilities
│ └── types.ts # TypeScript types
└── package.jsonAdding App-Specific Translations
Each app can extend the shared translations:
import { translations } from '@pgi/i18n';
import appSpecificEn from './locales/en.json';
import appSpecificKm from './locales/km.json';
const mergedTranslations = {
en: { ...translations.en, ...appSpecificEn },
km: { ...translations.km, ...appSpecificKm },
};Supported Locales
en- English (default)km- Khmer (ខ្មែរ)
