tanisa
Version:
An utility to convert Malagasy 🇲🇬 numbers, including decimals, into their word representations.
79 lines (50 loc) • 3.11 kB
Markdown
# tanisa
[](https://www.npmjs.com/package/tanisa)

**Tanisa** is here to give those digits a voice, transforming them into elegant Malagasy words 🇲🇬.
**In simpler terms** : An utility to convert malagasy numbers into their word representations.
## Features
- ✅ **Handles whole numbers** : From a humble "aotra" (zero) to numbers that make your calculator sweat.
- ✅ **Decimal support** : Gracefully converts those pesky fractions into spoken form.
- ✅ **Large number linguistics**: Tackles big numbers with the appropriate Malagasy terminology.
- ✅ **User-friendly API** : So intuitive, you'll feel like you've been speaking number-words your whole life.
- ✅ **Configurable options** : Customize the conversion behavior, like controlling how decimal places are handled and more...
- 🛡️ **Error Handling** : Throws helpful errors when you try to feed it something it can't digest.
## Installation
```js
yarn add tanisa
```
## Usage
1. Import the Magic:
```ts
import { Tanisa } from 'tanisa'
```
2. Simply use it:
```ts
const tanisa = new Tanisa()
tanisa.toWords(233)
```
3. Examples:
```js
tanisa.toWords(233) // Telo amby telopolo sy roanjato
tanisa.toWords(18.3) // Valo amby folo faingo telo
tanisa.toWords(0.008) // Aotra faingo aotra aotra valo
tanisa.toWords(12_345_678_901) // iraika amby sivinjato sy valo arivo sy fito alina sy enina hetsy sy dimy tapitrisa sy efatra safatsiroa sy telo tsitamboisa sy roa lavitrisa sy iray alinkisa
```
## Options
| Option Name | Type | Default | Description |
| :-------------- | :-------- | :------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------- |
| `ignoreDecimal` | `boolean` | `false` | If set to `true`, the converter completely disregards any digits after the decimal point. Only the integer part of the number is considered. |
| `decimalPlaces` | `number` | `undefined` (converts all) | Specifies the maximum number of digits to convert in the decimal part. Extra digits are truncated (not rounded). Set to `0` to ignore decimals. |
**Note:** If both `ignoreDecimal` is `true` and `decimalPlaces` is set, `ignoreDecimal: true` takes precedence, and the decimal part will be entirely ignored.
Examples:
```js
tanisa.toWords("456.789", { ignoreDecimal: true }) // Enina amby dimampolo sy efajato
tanisa.toWords("3.14567", { decimalPlaces: 2 }); // Telo faingo efatra amby folo
tanisa.toWords("3.14567", { decimalPlaces: 2, ignoreDecimal: true }); ==> // Telo
```
## Contribution
**Contributions are welcome!**
Feel free to check out the [CONTRIBUTING](CONTRIBUTING) file.
## License
This project is proudly released under the [MIT License](https://github.com/nifaliana/tanisa/blob/main/LICENSE)