An open API service indexing awesome lists of open source software.

https://github.com/opdev1004/op-i18n

Easy Node.js i18n with json locale file storage. No fancy grammar.
https://github.com/opdev1004/op-i18n

electron hacktoberfest i18n internationalisation internationalization language locale localisation localise localization localize node-js nodejs translate translation

Last synced: 5 months ago
JSON representation

Easy Node.js i18n with json locale file storage. No fancy grammar.

Awesome Lists containing this project

README

          

# ✨ OP i18n (op-i18n) ✨
Easy Node.js i18n with json locale file storage. No fancy grammar.

## πŸ“’ Notice
This repository is no longer maintained. Because I am going to work on totally new internationalization module with tot file format.
I found JSON is not good when we handle a huge data. And we cannot obtain partial data as well. I found many delays from my softwares.
I would not remove module so you can still use it however there won't be any update as I will create something better.

## ▢️ install
```
npm i op-i18n
```

## πŸ‘©β€πŸŽ“ Tutorial
### Most of Case
- en_US.json
```
{
"name": "Victor"
}
```
- ko_KR.json
```
{
"name": "λΉ…ν„°"
}
```
- index.js
```
const path = require('path');
const I18n = require('op-i18n');

// Note that '_' is used instead of '-' for key in options below.
// eg. ko-KR:{} (X), ko_KR:{} (O)
const options =
{
locales:
{
ko_KR:
{
name: 'ν•œκ΅­μ–΄',
iso: 'ko-KR',
file: 'ko_KR.json'
},
en_US:
{
name: 'English',
iso: 'en-US',
file: 'en_US.json'
}
},
directory: path.resolve(__dirname, 'locales/'),
defaultLocale: 'en_US',
}

const i18n = new I18n(options);

// Change locale to Korean
i18n.updateDefaultLocale("ko_KR");
console.log(i18n.$t());
// output: { name: 'λΉ…ν„°' }
console.log(i18n.$t("name"));
// output: λΉ…ν„°
console.log(i18n.$t("name", "en_US"));
// output: Victor
```

### Options
Requires locales, directory, defaultLocale in options. Note that _ is used instead of - for key in options.

js key | O/X
-------|-----
ko_KR | O πŸ˜‡
ko-KR | X ☠️

```
const path = require('path');
const I18n = require('op-i18n');

// Note that '_' is used instead of '-' for key in options below.
// eg. ko-KR:{} (X), ko_KR:{} (O)
const options =
{
locales:
{
ko_KR:
{
name: 'ν•œκ΅­μ–΄',
iso: 'ko-KR',
file: 'ko_KR.json'
},
en_US:
{
name: 'English',
iso: 'en-US',
file: 'en_US.json'
}
},
directory: path.resolve(__dirname, 'locales/'),
defaultLocale: 'en_US',
}

const i18n = new I18n(options);
```

### Advanced $t()

#### Regular
You can use . notation just like how you get value out of js object:
- ko_KR.json
```
{
"name":
{
"first": "λΉ…ν„°"
"last": "λ°•"
}
}
```
- en_US.json
```
{
"name":
{
"first": "Victor"
"last": "Park"
}
}
```
- index.js
```
const path = require('path');
const I18n = require('op-i18n');

// Note that '_' is used instead of '-' for key in options below.
// eg. ko-KR:{} (X), ko_KR:{} (O)
const options =
{
locales:
{
ko_KR:
{
name: 'ν•œκ΅­μ–΄',
iso: 'ko-KR',
file: 'ko_KR.json'
},
en_US:
{
name: 'English',
iso: 'en-US',
file: 'en_US.json'
}
},
directory: path.resolve(__dirname, 'locales/'),
defaultLocale: 'en_US',
}

const i18n = new I18n(options);

console.log(i18n.$t("name.first"));
//output: Victor
```
For getting value from specified locale:
```
console.log(i18n.$t("name.first", "ko_KR"));
//output: λΉ…ν„°
```
You can get whole js object with empty key "".
```
console.log(i18n.$t(""));
//output: { name: { first: "Victor", last: "Park" } }
console.log(i18n.$t("", "ko_KR"));
//output: { name: { first: "λΉ…ν„°", last: "λ°•" } }
```
#### Using Object
You can use object to get translation as well. { locale: "", key: "" }.
```
console.log(i18n.$t( { key:"name.first" } ));
//output: Victor
console.log(i18n.$t( { locale: "ko_KR", key:"name.first" } ));
//output: λΉ…ν„°
```

## πŸ“– op-i18n Document
### .$t()
```
return default translation in js object. Uses .getDefaultTranslation()
```
### .$t(string:key)
```
return value according to key from default translation in js object
```
### .$t(object:{ key: string:key, locale: string:locale })
```
return value according to key and locale in object.
```
### .$t(string:key, string:locale key)
```
return value according to key from translation of specified locale in js object
```
### .updateDefaultLocale(string:locale key)
```
update default locale and default translation according to specified locale
```
### .updateDefaultLocaleByName(string:name)
```
update default locale and default translation according to specified name
```
### .getDefaultTranslation()
```
return default translation in js object
```
### .getNames()
```
return list of locale name
```
### .getISOs()
```
return list of locale ISO
```
### .getDefaultName()
```
return name of default locale in js object. eg) ν•œκ΅­μ–΄
```
### .getDefaultISO()
```
return ISO of default locale in js object. eg) ko-KR
```

## πŸ‘¨β€πŸ’» Author
[Victor Chanil Park](https://github.com/opdev1004)

## πŸ’― License
MIT, See [LICENSE](./LICENSE).