You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.4 KiB
84 lines
2.4 KiB
1 year ago
|
# OS locale detector (os-locale-s)
|
||
|
[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/jeffy-g/os-locale-s.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/jeffy-g/os-locale-s/context:javascript) ![Node.js CI](https://github.com/jeffy-g/os-locale-s/workflows/Node.js%20CI/badge.svg) ![GitHub](https://img.shields.io/github/license/jeffy-g/os-locale-s?style=flat)
|
||
|
|
||
|
__Its a light weight version that minimizes the dependency module of `os-locale`__
|
||
|
|
||
|
|
||
|
> Get the system [locale](https://en.wikipedia.org/wiki/Locale_(computer_software))
|
||
|
|
||
|
Useful for localizing your module or app.
|
||
|
|
||
|
POSIX systems: The returned locale refers to the [`LC_MESSAGE`](http://www.gnu.org/software/libc/manual/html_node/Locale-Categories.html#Locale-Categories) category, suitable for selecting the language used in the user interface for message translation.
|
||
|
|
||
|
## Motivacion
|
||
|
|
||
|
I was creating a module package and needed to detect the **locale**.
|
||
|
|
||
|
At that time, I found a module `os-locale` that provides the corresponding function in the npm package.
|
||
|
|
||
|
I just wanted to detect locale token such as "cs", "de", "es", "fr" etc but
|
||
|
`os-locale` installs as many as 27 npm packages, including indirectly dependent modules
|
||
|
+ e.g - `yarn add os-locale`
|
||
|
|
||
|
I just wanted to detect a simple locale token but thought this was overwork and decided to rewrite the code.
|
||
|
|
||
|
At the same time, has been migrate to `TypeScript` as well.
|
||
|
|
||
|
> As a result, the number of npm packages installed in `os-locale-s` has been reduced to 3 including `os-locale-s`
|
||
|
|
||
|
|
||
|
## Install
|
||
|
|
||
|
```
|
||
|
$ npm install os-locale-s
|
||
|
```
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
```js
|
||
|
// node (commenjs)
|
||
|
const { osLocale } = require("os-locale-s");
|
||
|
(async () => {
|
||
|
console.log(await osLocale());
|
||
|
//=> 'en-US'
|
||
|
})();
|
||
|
```
|
||
|
|
||
|
```ts
|
||
|
// ECMA module
|
||
|
import { osLocale } from "os-locale-s";
|
||
|
(async () => {
|
||
|
console.log(await osLocale());
|
||
|
//=> 'en-US'
|
||
|
})();
|
||
|
```
|
||
|
## API
|
||
|
|
||
|
### osLocale(options?)
|
||
|
|
||
|
Returns a `Promise` for the locale.
|
||
|
|
||
|
### osLocale.sync(options?)
|
||
|
|
||
|
Returns the locale.
|
||
|
|
||
|
#### options
|
||
|
|
||
|
Type: `object`
|
||
|
|
||
|
##### spawn
|
||
|
|
||
|
Type: `boolean`\
|
||
|
Default: `true`
|
||
|
|
||
|
Set to `false` to avoid spawning subprocesses and instead only resolve the locale from environment variables. (`process.env`)
|
||
|
|
||
|
##### cache
|
||
|
|
||
|
Type: `boolean`\
|
||
|
Default: `true`
|
||
|
|
||
|
Once the locale is detected, its value is retained and reused at the second and subsequent detections.
|
||
|
|
||
|
If set to `false`, the last held value will be ignored and do locale detection again (and the resulting value is not preserved)
|