Socket
Socket
Sign inDemoInstall

intl-messageformat-parser

Package Overview
Dependencies
Maintainers
2
Versions
145
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

intl-messageformat-parser - npm Package Compare versions

Comparing version 1.0.0-rc-2 to 1.0.0

.travis.yml

14

package.json
{
"name": "intl-messageformat-parser",
"version": "1.0.0-rc-2",
"description": "Parses ICU message strings to an AST that can be used to format the messages for a person's locale.",
"version": "1.0.0",
"description": "Parses ICU Message strings into an AST via JavaScript.",
"main": "index.js",
"jsnext:main": "src/parser.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"test": "istanbul cover -- _mocha test/unit/ --reporter spec",
"prepublish": "grunt"

@@ -33,2 +33,3 @@ },

"devDependencies": {
"expect.js": "^0.3.1",
"grunt": "^0.4.5",

@@ -39,5 +40,8 @@ "grunt-benchmark": "^0.3.0",

"grunt-contrib-clean": "^0.6.0",
"grunt-contrib-copy": "^0.5.0",
"grunt-peg": "^1.5.0"
"grunt-contrib-copy": "^0.6.0",
"grunt-peg": "^1.5.0",
"istanbul": "^0.3.2",
"mocha": "^1.21.4",
"xunit-file": "0.0.5"
}
}

@@ -1,24 +0,61 @@

intl-messageformat-parser
Intl MessageFormat Parser
=========================
Parses ICU message strings to an AST that can be used to format the messages for
a person's locale.
Parses [ICU Message strings][ICU] into an AST via JavaScript.
[![npm Version](https://img.shields.io/npm/v/intl-messageformat-parser.svg?style=flat)][npm]
[![Dependency Status](https://img.shields.io/david/yahoo/intl-messageformat-parser.svg?style=flat)][david]
[![npm Version][npm-badge]][npm]
[![Build Status][travis-badge]][travis]
[![Dependency Status][david-badge]][david]
[npm]: https://www.npmjs.org/package/intl-messageformat-parser
[david]: https://david-dm.org/yahoo/intl-messageformat-parser
Overview
--------
This package implements a parser in JavaScript that parses the industry standard [ICU Message strings][ICU] — used for internationalization — into an AST. The produced AST can then be used by a compiler, like [`intl-messageformat`][intl-mf], to produce localized formatted strings for display to users.
This parser is written in [PEG.js][], a parser generator for JavaScript. This parser's implementation was inspired by and derived from Alex Sexton's [messageformat.js][] project. The differences from Alex's implementation are:
- This project is standalone.
- It's authored as ES6 modules compiled to CommonJS and the Bundle format for the browser.
- The produced AST is more descriptive and uses recursive structures.
- The keywords used in the AST match the ICU Message "spec".
Usage
-----
Given a message like this:
### Loading in the Browser
The `dist/` folder contains the version of this package for use in the browser, and it can be loaded and used like this:
```html
<script src="intl-messageformat-parser/dist/parser.min.js"></script>
<script>
IntlMessageFormatParser.parse('...');
</script>
```
### Loading in Node.js
This package can also be `require()`-ed in Node.js:
```js
var photosMsg = 'On {takenDate, date, short} {name} took {numPhotos, plural,' +
'=0 {no photos :(}' +
'=1 {one photo.}' +
'other {# photos!}}';
var parser = require('intl-messageformat-parser');
parser.parse('...');
```
### Example
Given an ICU Message string like this:
```
On {takenDate, date, short} {name} took {numPhotos, plural,
=0 {no photos.}
=1 {one photo.}
other {# photos.}
}
```
```js
// Assume `msg` is the string above.
parser.parse(msg);

@@ -73,3 +110,3 @@ ```

"type": "messageTextElement",
"value": "no photos :("
"value": "no photos."
}

@@ -100,3 +137,3 @@ ]

"type": "messageTextElement",
"value": "# photos!"
"value": "# photos."
}

@@ -113,2 +150,3 @@ ]

License

@@ -120,2 +158,13 @@ -------

[LICENSE file]: /blob/master/LICENSE
[npm]: https://www.npmjs.org/package/intl-messageformat-parser
[npm-badge]: https://img.shields.io/npm/v/intl-messageformat-parser.svg?style=flat-square
[david]: https://david-dm.org/yahoo/intl-messageformat-parser
[david-badge]: https://img.shields.io/david/yahoo/intl-messageformat-parser.svg?style=flat-square
[travis]: https://travis-ci.org/yahoo/intl-messageformat-parser
[travis-badge]: https://img.shields.io/travis/yahoo/intl-messageformat-parser.svg?style=flat-square
[ICU]: http://userguide.icu-project.org/formatparse/messages
[intl-mf]: https://github.com/yahoo/intl-messageformat
[PEG.js]: http://pegjs.majda.cz
[messageformat.js]: https://github.com/SlexAxton/messageformat.js
[LICENSE file]: https://github.com/yahoo/intl-messageformat-parser/blob/master/LICENSE

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc