ntw-conventer
v2.2.0
Published
Convert numbers to words in multiple languages, with support for Azerbaijani, English, Spanish, Russian, German, French, Italian, Dutch, Portuguese, Turkish, Polish, Swedish, and Finnish
Downloads
441
Maintainers
Readme
Number to Word conventer
Convert numbers to words in multiple languages, with extensive multilingual support for 16 languages.
Features
- ✅ Extensive multilingual support (16 languages)
- ✅ Converts numbers to words in the specified language
- ✅ Handles integers and decimal numbers
- ✅ Supports large numbers (up to 999 trillion)
- ✅ Negative number support
- ✅ Full TypeScript support
- ✅ Zero dependencies
- ✅ Pure ES Module
Installation
npm install ntw-conventer
# or
yarn add ntw-conventer
# or
pnpm add ntw-conventer
Usage
ES Modules / TypeScript
import { convertToWord } from 'ntw-conventer';
// Default language is English
console.log(convertToWord(42)); // => "forty-two"
// Specify language with options
console.log(convertToWord(42, { language: 'ar' })); // => "اثنان و أربعون"
console.log(convertToWord(42, { language: 'az' })); // => "qırx iki"
console.log(convertToWord(42, { language: 'de' })); // => "zweiundvierzig"
console.log(convertToWord(42, { language: 'en' })); // => "forty-two"
console.log(convertToWord(42, { language: 'es' })); // => "cuarenta y dos"
console.log(convertToWord(42, { language: 'fi' })); // => "neljäkymmentä kaksi"
console.log(convertToWord(42, { language: 'fr' })); // => "quarante-deux"
console.log(convertToWord(42, { language: 'hi' })); // => "बयालीस"
console.log(convertToWord(42, { language: 'it' })); // => "quarantadue"
console.log(convertToWord(42, { language: 'ja' })); // => "四十二"
console.log(convertToWord(42, { language: 'nl' })); // => "tweeënveertig"
console.log(convertToWord(42, { language: 'pl' })); // => "czterdzieści dwa"
console.log(convertToWord(42, { language: 'pt' })); // => "quarenta e dois"
console.log(convertToWord(42, { language: 'ru' })); // => "сорок два"
console.log(convertToWord(42, { language: 'sv' })); // => "fyrtiotvå"
console.log(convertToWord(42, { language: 'tr' })); // => "kırk iki"
// Large numbers
console.log(convertToWord(1234, { language: 'az' })); // => "bir min iki yüz otuz dörd"
console.log(convertToWord(1234, { language: 'en' })); // => "one thousand two hundred thirty-four"
console.log(convertToWord(1234, { language: 'hi' })); // => "एक हज़ार दो सौ चौंतीस"
console.log(convertToWord(1234, { language: 'ja' })); // => "千二百三十四"
// Decimal numbers
console.log(convertToWord(3.14, { language: 'ar' })); // => "ثلاثة فاصلة واحد أربعة"
console.log(convertToWord(3.14, { language: 'az' })); // => "üç tam bir dörd"
console.log(convertToWord(3.14, { language: 'en' })); // => "three point one four"
console.log(convertToWord(3.14, { language: 'fi' })); // => "kolme pilkku yksi neljä"
console.log(convertToWord(3.14, { language: 'fr' })); // => "trois virgule un quatre"
console.log(convertToWord(3.14, { language: 'hi' })); // => "तीन दशमलव एक चार"
console.log(convertToWord(3.14, { language: 'ja' })); // => "三点一四"
console.log(convertToWord(3.14, { language: 'pl' })); // => "trzy przecinek jeden cztery"
console.log(convertToWord(3.14, { language: 'sv' })); // => "tre komma ett fyra"
console.log(convertToWord(3.14, { language: 'tr' })); // => "üç virgül bir dört"
// Negative numbers
console.log(convertToWord(-10, { language: 'ar' })); // => "سالب عشرة"
console.log(convertToWord(-10, { language: 'az' })); // => "mənfi on"
console.log(convertToWord(-10, { language: 'en' })); // => "negative ten"
console.log(convertToWord(-10, { language: 'hi' })); // => "ऋण दस"
console.log(convertToWord(-10, { language: 'ja' })); // => "マイナス十"
console.log(convertToWord(-10, { language: 'pl' })); // => "minus dziesięć"
console.log(convertToWord(-10, { language: 'ru' })); // => "минус десять"
console.log(convertToWord(-10, { language: 'sv' })); // => "minus tio"
console.log(convertToWord(-10, { language: 'tr' })); // => "eksi on"
Integrate into Your Code
import { convertToWord } from 'ntw-conventer';
// Create a formatter function
function formatAmount(amount, language = 'en') {
return convertToWord(amount, {
language,
capitalize: true
});
}
// Use in your application
const price = 1250.99;
console.log(`Amount: ${price}`);
console.log(`In words: ${formatAmount(price)}`);
// => "One thousand two hundred fifty point nine nine"
Integrate with React + Vite
When using this package with Vite and React, you may need to add the package to the optimizeDeps in your vite.config.js file:
// vite.config.js
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
export default defineConfig({
plugins: [react()],
optimizeDeps: {
include: ['ntw-conventer']
},
build: {
commonjsOptions: {
include: [/ntw-conventer/]
}
}
});
Example React component:
import React, { useState } from 'react';
import { convertToWord } from 'ntw-conventer';
const NumberToWordConverter = () => {
const [number, setNumber] = useState('42');
const [language, setLanguage] = useState('en');
const [result, setResult] = useState(convertToWord(42, { language: 'en' }));
const handleConvert = () => {
try {
const converted = convertToWord(number, { language });
setResult(converted);
} catch (error) {
setResult(`Error: ${error.message}`);
}
};
return (
<div>
<input
type="text"
value={number}
onChange={(e) => setNumber(e.target.value)}
/>
<select
value={language}
onChange={(e) => setLanguage(e.target.value)}
>
<option value="ar">Arabic</option>
<option value="az">Azerbaijani</option>
<option value="en">English</option>
<option value="es">Spanish</option>
<option value="fi">Finnish</option>
<option value="hi">Hindi</option>
<option value="ja">Japanese</option>
<option value="pl">Polish</option>
<option value="sv">Swedish</option>
{/* Add more languages */}
</select>
<button onClick={handleConvert}>Convert</button>
<div>Result: {result}</div>
</div>
);
};
export default NumberToWordConverter;
API
convertToWord(number, options?)
Converts a number to its word representation in the specified language.
Parameters
number
(number | string): The number to convertoptions
(object, optional): Configuration optionslanguage
(string, default: 'en'): The ISO 639-1 language code ('ar', 'az', 'de', 'en', 'es', 'fi', 'fr', 'hi', 'it', 'ja', 'nl', 'pl', 'pt', 'ru', 'sv', 'tr')includeDecimalText
(boolean, default: true): Whether to include decimal text (point, tam, virgül, etc.)capitalize
(boolean, default: false): Whether to capitalize the first letter of the result
Returns
- (string): The word representation of the number in the specified language
isSupportedLanguage(code)
Checks if a language is supported.
Parameters
code
(string): The ISO 639-1 language code to check
Returns
- (boolean): True if the language is supported
getSupportedLanguageCodes()
Gets a list of all supported language codes.
Returns
- (string[]): Array of supported language codes
Supported Languages
| Code | Language | Number Example | Word Example | |------|------------|--------------------------|------------------------------------| | ar | Arabic | 123.45 | مائة و ثلاثة و عشرون فاصلة أربعة خمسة | | az | Azerbaijani| 123.45 | bir yüz iyirmi üç tam dörd beş | | de | German | 123.45 | einhundertdreiundzwanzig Komma vier fünf | | en | English | 123.45 | one hundred twenty-three point four five | | es | Spanish | 123.45 | ciento veintitrés coma cuatro cinco | | fi | Finnish | 123.45 | sata kaksikymmentä kolme pilkku neljä viisi | | fr | French | 123.45 | cent vingt-trois virgule quatre cinq | | hi | Hindi | 123.45 | एक सौ तेईस दशमलव चार पांच | | it | Italian | 123.45 | cento ventitré virgola quattro cinque | | ja | Japanese | 123.45 | 百二十三点四五 | | nl | Dutch | 123.45 | honderddrieëntwintig komma vier vijf | | pl | Polish | 123.45 | sto dwadzieścia trzy przecinek cztery pięć | | pt | Portuguese | 123.45 | cento e vinte e três vírgula quatro cinco | | ru | Russian | 123.45 | сто двадцать три целых четыре пять | | sv | Swedish | 123.45 | etthundratjugotre komma fyra fem | | tr | Turkish | 123.45 | yüz yirmi üç virgül dört beş |
Supported Range
This package supports converting numbers in the range from -999,999,999,999,999 to 999,999,999,999,999.
Adding a New Language
If you want to add a new language support, you can contribute by implementing a new language module. Each language module should follow the structure defined in the existing modules.
License
MIT © Farda Karimov