Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/collaborne/intl-chrome-i18n
Provides internationalization functionalities based on Chrome.i18n, and formats the localized message strings with number, date, plural, and select placeholders.
https://github.com/collaborne/intl-chrome-i18n
Last synced: 1 day ago
JSON representation
Provides internationalization functionalities based on Chrome.i18n, and formats the localized message strings with number, date, plural, and select placeholders.
- Host: GitHub
- URL: https://github.com/collaborne/intl-chrome-i18n
- Owner: Collaborne
- License: apache-2.0
- Created: 2017-08-22T09:09:32.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-11-21T12:58:50.000Z (almost 6 years ago)
- Last Synced: 2024-10-12T18:54:16.957Z (25 days ago)
- Language: TypeScript
- Size: 24.4 KB
- Stars: 3
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# intl-chrome-i18n [![Build Status](https://travis-ci.org/Collaborne/intl-chrome-i18n.svg?branch=master)](https://travis-ci.org/Collaborne/intl-chrome-i18n) [![Greenkeeper badge](https://badges.greenkeeper.io/Collaborne/intl-chrome-i18n.svg)](https://greenkeeper.io/)
Provides internationalization functionalities based on Chrome.i18n, and formats the localized message strings with number, date, plural, and select placeholders.
## Summary
This package enables internationalization in the format provided by [Chrome](https://developer.chrome.com/extensions/i18n), and provides formatting support for dates, numbers, plurals and so on, according to the specifications provided by [FormatJS](https://formatjs.io/).The localized messages should be saved in a dedicated `locales` folder (it can be anywhere in your path, you can just provide it to this module on initialization), one file per locale (e.g. `en.json` and `fr.json`), in the JSON format specified by `chrome.i18n`.
```JSON
{
"hello_world": {
"message": "Hello, world!",
"description": "Greetings message"
}
}
```## Get Started
### Intl.js polyfill
This module depends on `intl` to be available in your node environment. Both the [intl documentation](https://www.npmjs.com/package/intl) and the [formatJS documentation](https://formatjs.io/guides/runtime-environments/) provide tutorials on how to set it up correctly.In case `intl` is not set up correctly, since most Node environments only support the english language, the formatting of strings will be defaulted to English.
### Usage
After making sure that the polyfill is correctly installed, this module can be set up to the desired locale, and used to get internationalized messages:```
const chromeI18n = new ChromeI18n('en', 'en', './sample/locales');
chromeI18n.getMessage('hello_world');$ Hello, world!
```It allows to format messages based on the conventions of the chosen locale. For example, in English we would see the following message:
```
const chromeI18n = new ChromeI18n('en', 'en', './sample/locales');
chromeI18.getMessage('annie_action', { numPhotos: 1000 });$ Annie took 1,000 photos.
```While in french, the number is formatted differently:
```
const chromeI18n = new ChromeI18n('fr', 'en', './sample/locales');
chromeI18.getMessage('annie_action', { numPhotos: 1000 });$ Annie a pris 1 000 photographies.
```### Sample
For more details on usage, or to see it in action, refer to the [sample code](./sample).You can run the sample with `npm run sample`.