{"_id":"@4c/react-intl","_rev":"6-20be69dee7d6c7b3a8c81b51e16256a0","name":"@4c/react-intl","dist-tags":{"latest":"3.0.0"},"versions":{"3.0.0":{"name":"@4c/react-intl","version":"3.0.0","description":"Internationalize React apps. This library provides React components and an API to format dates, numbers, and strings, including pluralization and handling translations.","keywords":["intl","i18n","internationalization","locale","localization","globalization","react","reactjs","format","formatting","translate","translation"],"author":{"name":"Eric Ferraiuolo","email":"edf@ericf.me"},"contributors":[{"name":"Caridy Patino","email":"caridy@gmail.com"},{"name":"Marces Engel","email":"dev.dragonraider5@gmail.com"}],"license":"BSD-3-Clause","homepage":"https://github.com/4catalyzer/react-intl","bugs":{"url":"https://github.com/4catalyzer/react-intl/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/4catalyzer/react-intl.git"},"main":"./lib/index.js","module":"./lib/index.es.js","jsnext:main":"./lib/index.es.js","browser":{"./locale-data/index":false,"./locale-data/index.js":false},"browserify-shim":{"react":"global:React"},"jest":{"testRegex":"/test/(unit|functional)/.*\\.js","transformIgnorePatterns":["dist/.*","locale-data/.*","lib/index.js"],"testPathIgnorePatterns":["test/functional/support","/test/unit/testUtils"],"collectCoverageFrom":["src/**/*.js","!src/en.js"],"coverageReporters":["lcov","text","text-summary","html"],"coverageThreshold":{"global":{"branches":85,"functions":100,"lines":95,"statements":95}},"setupFilesAfterEnv":["./test/setup.js"]},"prettier":{"singleQuote":true,"trailingComma":"es5","bracketSpacing":false},"dependencies":{"hoist-non-react-statics":"^3.3.0","intl-format-cache":"^2.0.5","intl-messageformat":"^2.1.0","intl-relativeformat":"^2.1.0","invariant":"^2.1.1","react-display-name":"^0.2.4"},"peerDependencies":{"prop-types":"^15.5.4","react":"^16.8.0"},"devDependencies":{"@babel/cli":"^7.1.2","@babel/core":"^7.1.2","@babel/node":"^7.0.0","@babel/plugin-proposal-class-properties":"^7.1.0","@babel/plugin-proposal-object-rest-spread":"^7.0.0","@babel/plugin-transform-async-to-generator":"^7.1.0","@babel/plugin-transform-modules-commonjs":"^7.1.0","@babel/preset-env":"^7.1.0","@babel/preset-react":"^7.0.0","babel-core":"^7.0.0-bridge.0","babel-eslint":"^7.1.1","babel-jest":"^24.7.1","babel-plugin-react-intl":"^2.0.0","babel-plugin-transform-member-expression-literals":"^6.9.4","babel-plugin-transform-property-literals":"^6.9.4","babel-plugin-transform-react-remove-prop-types":"^0.4.18","babelify":"^7.2.0","benchmark":"^2.1.0","browserify":"^14.0.0","browserify-shim":"^3.8.11","cross-env":"^4.0.0","enzyme":"^3.9.0","enzyme-adapter-react-16":"^1.12.1","eslint":"^3.10.2","eslint-plugin-react":"^7.0.1","expect":"^24.7.1","express":"^4.13.3","formatjs-extract-cldr-data":"^6.0.0","glob":"^7.0.0","intl":"^1.2.1","intl-messageformat-parser":"^1.2.0","jest":"^24.7.1","mkdirp":"^0.5.1","prettier":"^1.16.4","progress":"^2.0.3","promise-queue":"^2.2.5","prop-types":"^15.7.2","react":"^16.8.6","react-dom":"^16.8.6","react-is":"^16.8.6","react-test-renderer":"^16.8.6","rimraf":"^2.4.2","rollup":"^0.66.2","rollup-plugin-babel":"^4.0.3","rollup-plugin-commonjs":"^9.1.8","rollup-plugin-node-resolve":"^3.4.0","rollup-plugin-replace":"^2.0.0","rollup-plugin-uglify":"^6.0.0","rollup-plugin-virtual":"^1.0.1","serialize-javascript":"^1.5.0","superagent":"^3.0.0","watchify":"^3.7.0"},"scripts":{"format":"prettier --write *.js scripts/*.js src/{*.js,**/*.js}","clean":"rimraf src/en.js coverage/ dist/ lib/ locale-data/ test/renderer.js","build:data":"babel-node scripts/build-data","build:lib":"rollup -c rollup.config.lib.js","build:dist:dev":"cross-env NODE_ENV=development rollup -c rollup.config.dist.js","build:dist:prod":"cross-env NODE_ENV=production rollup -c rollup.config.dist.js","build:dist":"yarn run build:dist:dev && yarn run build:dist:prod","build":"yarn run build:data && yarn run build:lib && yarn run build:dist","lint":"eslint .","lint:fix":"eslint . --fix","react:16":"yarn run react:clean && yarn add -D react@^16.8.0 react-dom@^16.8.0 react-test-renderer@^16.8.0 --ignore-scripts","testonly":"jest --coverage --verbose","test":"yarn run lint && yarn run testonly","tdd":"jest --watch","test:perf":"cross-env NODE_ENV=production babel-node test/perf","examples:install":"babel-node scripts/examples yarn install","examples:link":"yarn link && babel-node scripts/examples yarn link react-intl","preversion":"yarn run clean && yarn run build && yarn run test:all","prepublishOnly":"yarn run clean && yarn run build"},"gitHead":"173a09fc5a9dccbd605c48b2c13bc9317ee23f3f","_id":"@4c/react-intl@3.0.0","_nodeVersion":"10.1.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-kyY/pweOK4ka9W+GyXFIxuNyySvNP/dVNJJ9teXEtff2NRwHAOm6A0+FoOmwhIDsZ3fHEglHRq+kU++TUQLMag==","shasum":"5eb7ee3fb1451f91687b8cb790838f27c818d821","tarball":"https://registry.npmjs.org/@4c/react-intl/-/react-intl-3.0.0.tgz","fileCount":276,"unpackedSize":2546563,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJctJJTCRA9TVsSAnZWagAAFyEP/03KF3rW9lT3mu/6lxe9\nfpn8L5btSgGTSm0ULRQ8ZcSKKSKXmVp8inD35z+xf5kIVr8z2BEI7NA+gE5W\nSw9S4dJQLzeEdwb3Dk8QBQImX3exs37AiZGhXgEQmSRv6kStGVFnjHOenHiF\n7Bp0BYsgtrbnh+6GI+jcLvbAbdPyk2Zex+9HcF49hXemKj0/Ll0tWLZxvOlw\nlB/FR0c89farpKbWUY/qcTyfMi8YaybuVjmxLe8lmF4xGdqNsMvBviCxXyoB\n3HJZiDzerEQM8I5VsIFD1qfTJNupTbJzCquhAHJBIEoBDaxWF0UcFM5iUzwb\n6Aq8yG0oKsAZuK4NS65f0lLbNAqXQFjc/H3OKwKnUtSVqAk6fezbQyeH0vGi\n5wGq7xRhFxykpTwBG9FgnEUqJyLN2HKseVp3V1olpDc+mndD9yA0Wn3jF4Ml\nhlOndQw6HtfaoigUKL0QTyo3QdKOXylVmIvAjeNIG6+9jjbS75VLW2RUmLxX\nEczRwTbxgvWHeFIqNZf5wCzL69VzsO+Z0JRcgp0/htzSNXonF7mxq+J9rQu/\nb/pZ/9DsGgYmFcuCU+DmGLjSdGl9JZXaluvW5MDCH13N3flmfQTxns7R20WW\nQWNblyiXbo1cCB6u8CPMVLn2TEtJlqOnhd1y/um2fx7mfBTwP10U6BrOntzl\nxMZk\r\n=kWBl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqdvVnsHWTfSlG2eOIdHWo7yGFSPGmvBB7v8eGVU4ByQIhAOaBQNy3vHFZKNxu740LeW3hYUectClZRmEDrWaGL78n"}]},"maintainers":[{"name":"sloria","email":"sloria1@gmail.com"},{"name":"taion","email":"tesrin@gmail.com"},{"name":"monastic.panic","email":"monastic.panic@gmail.com"},{"name":"itajaja","email":"giacomo.tag@gmail.com"}],"_npmUser":{"name":"monastic.panic","email":"monastic.panic@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/react-intl_3.0.0_1555337810693_0.9250543291134343"},"_hasShrinkwrap":false}},"time":{"created":"2019-04-15T14:16:50.572Z","3.0.0":"2019-04-15T14:16:51.073Z","modified":"2022-04-08T14:00:56.672Z"},"maintainers":[{"email":"stephen.liu@alumni.stanford.edu","name":"stephen_liu"},{"email":"monastic.panic@gmail.com","name":"monastic.panic"},{"email":"sloria1@gmail.com","name":"sloria"}],"description":"Internationalize React apps. This library provides React components and an API to format dates, numbers, and strings, including pluralization and handling translations.","homepage":"https://github.com/4catalyzer/react-intl","keywords":["intl","i18n","internationalization","locale","localization","globalization","react","reactjs","format","formatting","translate","translation"],"repository":{"type":"git","url":"git+ssh://git@github.com/4catalyzer/react-intl.git"},"contributors":[{"name":"Caridy Patino","email":"caridy@gmail.com"},{"name":"Marces Engel","email":"dev.dragonraider5@gmail.com"}],"author":{"name":"Eric Ferraiuolo","email":"edf@ericf.me"},"bugs":{"url":"https://github.com/4catalyzer/react-intl/issues"},"license":"BSD-3-Clause","readme":"React Intl\n==========\n\nInternationalize [React][] apps. This library provides React components and an API to format dates, numbers, and strings, including pluralization and handling translations.\n\n[![npm Version][npm-badge]][npm]\n[![Build Status][travis-badge]][travis]\n[![Dependency Status][david-badge]][david]\n\nOverview\n--------\n\n**React Intl is part of [FormatJS][].** It provides bindings to React via its components and API.\n\n**Slack:** Join us on Slack at [react-intl.slack.com](https://react-intl.slack.com/) for help, general conversation and more 💬🎊🎉\nYou can sign-up using this [invitation link](https://join.slack.com/t/react-intl/shared_invite/enQtNDAxMjc5MTQxMDkwLWNiYWM5Njc5NjA3ZWVkOTQ3MzBhYjFlY2NkNmM3NzEyNDUzZmNhZDE2MmUwNWVjYmExMWUxZTRhMzEzMWYxYzY).\n\n### [Documentation][]\n\nReact Intl's docs are in this GitHub repo's [Wiki][Documentation], [__Get Started__][Getting Started]. There are also several [runnable example apps][Examples] which you can reference to learn how all the pieces fit together.\n\n_(If you're looking for React Intl v1, you can find it [here][v1-docs].)_\n\n### Features\n\n- Display numbers with separators.\n- Display dates and times correctly.\n- Display dates relative to \"now\".\n- Pluralize labels in strings.\n- Support for 150+ languages.\n- Runs in the browser and Node.js.\n- Built on standards.\n\n### Example\n\nThere are several [runnable examples][Examples] in this Git repo, but here's a Hello World one:\n\n```js\nimport React, {Component} from 'react';\nimport ReactDOM from 'react-dom';\nimport {IntlProvider, FormattedMessage} from 'react-intl';\n\nclass App extends Component {\n    constructor(props) {\n        super(props);\n        this.state = {\n            name       : 'Eric',\n            unreadCount: 1000,\n        };\n    }\n\n    render() {\n        const {name, unreadCount} = this.state;\n\n        return (\n            <p>\n                <FormattedMessage\n                    id=\"welcome\"\n                    defaultMessage={`Hello {name}, you have {unreadCount, number} {unreadCount, plural,\n                      one {message}\n                      other {messages}\n                    }`}\n                    values={{name: <b>{name}</b>, unreadCount}}\n                />\n            </p>\n        );\n    }\n}\n\nReactDOM.render(\n    <IntlProvider locale=\"en\">\n        <App />\n    </IntlProvider>,\n    document.getElementById('container')\n);\n\n```\n\nThis example would render: \"Hello **Eric**, you have 1,000 messages.\" into the container element on the page.\n\n**Pluralization rules:** In some languages you have more than `one` and `other`. For example in `ru` there are the following plural rules: `one`, `few`, `many` and `other`.\nCheck out the official [Unicode CLDR documentation](http://www.unicode.org/cldr/charts/28/supplemental/language_plural_rules.html).\n\nContribute\n---------\n\nLet's make React Intl and FormatJS better! If you're interested in helping, all contributions are welcome and appreciated. React Intl is just one of many packages that make up the [FormatJS suite of packages][FormatJS GitHub], and you can contribute to any/all of them, including the [Format JS website][FormatJS] itself.\n\nCheck out the [Contributing document][CONTRIBUTING] for the details. Thanks!\n\n\nLicense\n-------\n\nThis software is free to use under the Yahoo Inc. BSD license.\nSee the [LICENSE file][] for license text and copyright information.\n\n\n[npm]: https://www.npmjs.org/package/react-intl\n[npm-badge]: https://img.shields.io/npm/v/react-intl.svg?style=flat-square\n[david]: https://david-dm.org/yahoo/react-intl\n[david-badge]: https://img.shields.io/david/yahoo/react-intl.svg?style=flat-square\n[travis]: https://travis-ci.org/yahoo/react-intl\n[travis-badge]: https://img.shields.io/travis/yahoo/react-intl/master.svg?style=flat-square\n[React]: http://facebook.github.io/react/\n[FormatJS]: http://formatjs.io/\n[FormatJS GitHub]: http://formatjs.io/github/\n[Documentation]: https://github.com/yahoo/react-intl/wiki\n[Getting Started]: https://github.com/yahoo/react-intl/wiki#getting-started\n[Examples]: https://github.com/yahoo/react-intl/tree/master/examples\n[v1-docs]: http://formatjs.io/react/v1/\n[CONTRIBUTING]: https://github.com/yahoo/react-intl/blob/master/CONTRIBUTING.md\n[LICENSE file]: https://github.com/yahoo/react-intl/blob/master/LICENSE.md\n","readmeFilename":"README.md"}