@rajeev02/locale
v0.2.2
Published
Indian-first localization engine — translation, Lakh/Crore number formatting, INR currency, phone formatting, Indic script transliteration
Maintainers
Readme
@rajeev02/locale
Indian-first localization engine — translation system, Lakh/Crore number formatting, INR currency, phone formatting, and Indic script transliteration across 10 scripts.
Powered by a Rust core (rajeev-locale-core) compiled to native (iOS/Android via UniFFI) and WASM (Web).
Platform Support
| Platform | Engine | Binding |
| -------------------- | ------------ | --------------- |
| iOS 16+ | Rust → UniFFI | Swift |
| Android 7+ (API 24) | Rust → UniFFI | Kotlin |
| Web | Rust → WASM | wasm-bindgen |
| watchOS 9+ / Wear OS | Rust → UniFFI | Native |
| Android Auto | Rust → UniFFI | Kotlin |
Installation
npm install @rajeev02/localeQuick Start
import {
TranslationEngine,
formatINR,
formatIndianNumber,
transliterateToDevanagari,
detectScript,
} from '@rajeev02/locale';
// Translation
const engine = new TranslationEngine('hi', 'en');
engine.loadLanguage({
code: 'hi', name: 'Hindi', nativeName: 'हिन्दी', rtl: false,
translations: { greeting: 'नमस्ते {{name}}!' },
});
engine.translate('greeting', { name: 'Rajeev' }); // → 'नमस्ते Rajeev!'
// Currency
formatINR(1500000); // → '₹15,00,000.00'
formatINRShort(1500000); // → '₹15 Lakh'
// Number formatting
formatIndianNumber(12345678); // → '1,23,45,678'
// Transliteration
transliterateToDevanagari('namaste'); // → 'नमस्ते'
// Script detection
detectScript('தமிழ் மொழி'); // → 'Tamil'API Reference
| Function | Description |
|----------|-------------|
| TranslationEngine | Multi-language translation with interpolation & pluralization |
| formatIndianNumber(num) | Indian numbering system (Lakh/Crore grouping) |
| formatINR(amount) | Format as ₹ with Indian grouping |
| formatINRShort(amount) | Lakh/Crore shorthand (₹15 Lakh, ₹2.5 Crore) |
| formatPhoneIndian(number) | Format Indian phone with +91 prefix |
| formatDateIndian(y, m, d) | DD/MM/YYYY format |
| formatTime12h(h, m) | 12-hour time format |
| transliterateToDevanagari(input) | Latin → Devanagari conversion |
| detectScript(text) | Detect Indic script from Unicode ranges |
| supportedScripts() | List all 10 supported scripts |
License
MIT © Rajeev Kumar Joshi
