to-bengali
Version:
A lightweight npm package to translate numbers and dates to Bengali language.
293 lines (266 loc) • 6.88 kB
Markdown
# To Bengali
[](https://www.npmjs.com/package/to-bengali)
[](https://github.com/Tanbinhimel/to-bengali/blob/main/LICENSE)
To Bengali is a lightweight npm package for translating numbers and dates to Bengali language. It's perfect for
developers who need to localize their applications for Bengali speakers.
## Installation
To install this package, use npm:
```shell
npm i to-bengali
```
## Usage
**To Bengali** exports two Class: **Bengali Date** and **Bengali Number**.
### Bengali Date
To import Bengali Date class:
```shell
import {BengaliDate} from 'to-bengali';
```
To use this class:
```shell
const date = new Date('29 november, 1998');
const bngDateTime = new BengaliDate(date); // BengaliDate() will return current date-time
console.log(bngDateTime.bngDate); // output: ২৯
```
Properties:
<table>
<tr>
<th>Name</th>
<th>Return Types</th>
<th>Description</th>
</tr>
<tr>
<td>bngDate</td>
<td>string</td>
<td>Returns date in bengali</td>
</tr>
<tr>
<td>bngMonthInNumber</td>
<td>string</td>
<td>Returns month in number in bengali</td>
</tr>
<tr>
<td>bngMonth</td>
<td>string</td>
<td>Returns month in words in bengali</td>
</tr>
<tr>
<td>bngFullYear</td>
<td>string</td>
<td>Returns full years (4 digits) in bengali</td>
</tr>
<tr>
<td>bngYear</td>
<td>string</td>
<td>Returns years (last 2 digits) in bengali</td>
</tr>
<tr>
<td>bngHours</td>
<td>string</td>
<td>Returns hours (24-hours format) in bengali</td>
</tr>
<tr>
<td>bngHoursInTwelveHourFormat</td>
<td>string</td>
<td>Returns hours (12-hours format) in bengali</td>
</tr>
<tr>
<td>bngMinutes</td>
<td>string</td>
<td>Returns minutes in bengali</td>
</tr>
<tr>
<td>bngSeconds</td>
<td>string</td>
<td>Returns seconds in bengali</td>
</tr>
<tr>
<td>bngTimeName</td>
<td>"ভোর" | "সকাল" | "দুপুর" | "বিকাল" | "সন্ধ্যা" | "রাত"</td>
<td>Returns time name in bengali</td>
</tr>
<tr>
<td>bngDay</td>
<td>string</td>
<td>Returns day name in bengali (first 2 characters)</td>
</tr>
<tr>
<td>bngFullDay</td>
<td>string</td>
<td>Returns full day name in bengali (all characters)</td>
</tr>
<tr>
<td>engTimeName</td>
<td>"PM" | "AM"</td>
<td>Returns time name in english</td>
</tr>
</table>
Methods:
<div><b><i>format(pattern?: string): string</i></b></div>
<div>To use this method:</div>
```shell
const date = new Date('29 november, 1998');
const bngDateTime = new BengaliDate(date).format('DD MMMM, YYYY dddd AAAA hh:mm:ss')
console.log(bngDateTime); // output: ২৯ নভেম্বর, ১৯৯৮ রবিবার রাত ১২:০০:০০
```
Others supported patterns:
<table>
<tr>
<th>Patters</th>
<th>Description</th>
<th>Example</th>
</tr>
<tr>
<td>date</td>
<td>Returns date</td>
<td>'২৯ নভেম্বর, ১৯৯৮'</td>
</tr>
<tr>
<td>time</td>
<td>Returns time</td>
<td>'রাত ১২:০০'</td>
</tr>
<tr>
<td>date-time</td>
<td>Default value. Returns date & time</td>
<td>'২৯ নভেম্বর, ১৯৯৮ রাত ১২:০০'</td>
</tr>
<tr>
<td>date-day-time</td>
<td>Returns date & time</td>
<td>'২৯ নভেম্বর, ১৯৯৮ রবিবার রাত ১২:০০'</td>
</tr>
<tr>
<td>D</td>
<td>Returns date</td>
<td>2 as '২'</td>
</tr>
<tr>
<td>DD</td>
<td>Returns double digits date (Prefix date with '০' if it's a single digit, otherwise return original date)</td>
<td>2 as '০২'</td>
</tr>
<tr>
<td>M</td>
<td>Returns month in numbers</td>
<td>January as '১'</td>
</tr>
<tr>
<td>MM</td>
<td>Returns double digits month in numbers (Prefix month number with '০' if it's a single digit, otherwise return original month)</td>
<td>January as '০১'</td>
</tr>
<tr>
<td>MMMM</td>
<td>Returns month in words</td>
<td>November as 'নভেম্বর'</td>
</tr>
<tr>
<td>YY</td>
<td>Returns last two digits of the year</td>
<td>1998 as '৯৮'</td>
</tr>
<tr>
<td>YYYY</td>
<td>Returns full year</td>
<td>1998 as '১৯৯৮'</td>
</tr>
<tr>
<td>dd</td>
<td>Returns day in short form</td>
<td>Sunday as 'রবি'</td>
</tr>
<tr>
<td>dddd</td>
<td>Returns day in full form</td>
<td>Sunday as 'রবিবার'</td>
</tr>
<tr>
<td>AAAA</td>
<td>Returns time name in bengali</td>
<td>"ভোর" | "সকাল" | "দুপুর" | "বিকাল" | "সন্ধ্যা" | "রাত"</td>
</tr>
<tr>
<td>AA</td>
<td>Returns time name in english (uppercase)</td>
<td>"PM" | "AM"</td>
</tr>
<tr>
<td>aa</td>
<td>Returns time name in english (lowercase)</td>
<td>"pm" | "am"</td>
</tr>
<tr>
<td>h</td>
<td>Returns hours in 12 hour format</td>
<td>2 as '২'</td>
</tr>
<tr>
<td>hh</td>
<td>Returns double digit hours in 12 hour format</td>
<td>2 as '০২'</td>
</tr>
<tr>
<td>H</td>
<td>Returns hours in 24 hour format</td>
<td>2 as '২'</td>
</tr>
<tr>
<td>HH</td>
<td>Returns double digit hours in 24 hour format</td>
<td>2 as '০২'</td>
</tr>
<tr>
<td>m</td>
<td>Returns minutes</td>
<td>2 as '২'</td>
</tr>
<tr>
<td>mm</td>
<td>Returns double digit minutes</td>
<td>2 as '০২'</td>
</tr>
<tr>
<td>s</td>
<td>Returns seconds</td>
<td>2 as '২'</td>
</tr>
<tr>
<td>ss</td>
<td>Returns double digit seconds</td>
<td>2 as '০২'</td>
</tr>
</table>
### Bengali Number
To import Bengali Number class:
```shell
import {BengaliNumber} from 'to-bengali';
```
To use this class:
```shell
const bengaliNumber = new BengaliNumber(100);
console.log(bengaliNumber.bngValue); // output: ১০০
```
Properties:
<table>
<tr>
<th>Name</th>
<th>Return Types</th>
<th>Description</th>
</tr>
<tr>
<td>bngValue</td>
<td>string</td>
<td>Returns bengali value of a number</td>
</tr>
<tr>
<td>engValue</td>
<td>string</td>
<td>Returns english value of a number</td>
</tr>
</table>
**more description will be added later.*
## Contributing
If you find a bug or would like to contribute to the project, please check out
the [contribution guidelines](CONTRIBUTION.md).
## License
To Bengali is licensed under the [MIT license](LICENSE).