Mongolian Latin ↔ Cyrillic transcription (MNS 5217:2012) with number-to-text conversion.
npm install mn-translitMinimum Requirements: Node.js ≥14.0.0, npm ≥6.0.0
Tested & Supported Versions:
- ✅ Node.js 14.x (LTS Fermium) - Minimum supported
- ✅ Node.js 16.x (LTS Gallium)
- ✅ Node.js 18.x (LTS Hydrogen)
- ✅ Node.js 20.x (LTS Iron)
- ✅ Node.js 22.x (Current)
Platform Support:
- ✅ Ubuntu / Linux
- ✅ Windows
- ✅ macOS (Intel & Apple Silicon)
All versions are automatically tested in CI across all platforms. The package uses ES2015 (ES6) as the compilation target for maximum compatibility with older Node.js versions while maintaining modern JavaScript features.
const { latinToCyrillic, cyrillicToLatin, numberToMongolian } = require('mn-translit');
latinToCyrillic('sain baina uu'); // сайн байна уу
cyrillicToLatin('монгол'); // mongol
numberToMongolian(1000); // мянга
// Optional: preserve capitalization
latinToCyrillic('Sain baina uu', { preserveCase: true }); // Сайн байна ууTypeScript:
import { latinToCyrillic, cyrillicToLatin, numberToMongolian, TransliterationOptions } from 'mn-translit';
const opts: TransliterationOptions = { preserveCase: true };
latinToCyrillic('Mongol', opts); // МонголES Modules:
import { latinToCyrillic, cyrillicToLatin, numberToMongolian } from 'mn-translit';// Special vowel cases
latinToCyrillic('ai'); // ай
latinToCyrillic('ei'); // эй
// Numbers
numberToMongolian(21); // хорин нэг
numberToMongolian(111); // зуун арван нэг
numberToMongolian(1000000); // саяThe package includes utilities to check Node.js version compatibility at runtime:
const { validateEnvironment, getNodeVersion, checkMinimumNodeVersion } = require('mn-translit');
// Check if running in a supported environment
const { supported, warnings } = validateEnvironment();
if (!supported) {
console.warn('Unsupported Node.js version:', warnings);
}
// Get current Node.js version
const version = getNodeVersion();
console.log(`Running on Node.js ${version.major}.${version.minor}.${version.patch}`);
// Check for specific version requirements
if (checkMinimumNodeVersion(16)) {
// Use Node 16+ features
}latinToCyrillic(text: string, options?: { preserveCase?: boolean }): string- Convert Latin text to CyrilliccyrillicToLatin(text: string, options?: { preserveCase?: boolean }): string- Convert Cyrillic text to Latin
numberToMongolian(num: number): string- Convert number to Mongolian text
latinToCyrillicMap- Mapping of Latin to Cyrillic characterscyrillicToLatinMap- Mapping of Cyrillic to Latin characters
getNodeVersion()- Get current Node.js versioncheckMinimumNodeVersion(major, minor?)- Check if Node version meets requirementsvalidateEnvironment()- Validate runtime environmentreplaceAll(str, search, replace)- Polyfill for String.replaceAll (Node 15+)hasOwn(obj, prop)- Polyfill for Object.hasOwn (Node 16.9+)
# Install dependencies
npm install
# Build the project
npm run build
# Run tests
npm test
# Clean build artifacts
npm run cleanContributions are welcome! Please ensure:
- Code works on Node.js 14+
- Tests pass on all supported versions
- TypeScript compiles without errors
- Follow existing code style
MIT