
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
@pleio/react-polyglot
Advanced tools
Provides higher order component for using Polyglot with React.
This package is a fork of react-polyglot.
npm install --save react-polyglot
react-polyglot
exports consists for one wrapper component called I18n
, one decorator called
translate
and one hook called useTranslate
. The decorator provides a prop t
which is instance of Polyglot
.
You are required to wrap your root component with I18n
and pass on a locale
like en
or fr
.
And messages
object containing the strings.
import React from 'react'
import { render } from 'react-dom'
import { I18n } from 'react-polyglot'
import App from './components/app'
const locale = window.locale || 'en'
const messages = {
hello_name: 'Hello, %{name}.',
num_cars: '%{smart_count} car |||| %{smart_count} cars',
}
render(
<I18n locale={locale} messages={messages}>
<App />
</I18n>,
document.getElementById('app')
)
Then inside App
or a child component of App
you can do:
import React from 'react'
import { translate } from 'react-polyglot'
const Greeter = ({ name, t }) => <h3>{t('hello_name', { name })}</h3>
Greeter.propTypes = {
name: React.PropTypes.string.isRequired,
t: React.PropTypes.func.isRequired,
}
export default translate(Greeter)
or with React Hooks:
import React from 'react';
import { useTranslate } from 'react-polyglot';
export default const Greeter = ({ name }) => {
const t = useTranslate();
return (
<h3>{t('hello_name', { name })}</h3>
);
};
Greeter.propTypes = {
name: React.PropTypes.string.isRequired
};
https://codesandbox.io/s/mq76ojk228
https://codesandbox.io/s/px8n63v0m
Use a simple helper to wrap your components in a context.
export const wrapWithContext = function(component, context, contextTypes) {
const wrappedComponent = React.createClass({
childContextTypes: contextTypes,
getChildContext() {
return context
},
render() {
return component
},
})
return React.createElement(wrappedComponent)
}
Then use it inside your tests.
import React from 'react'
import { renderToString } from 'react-dom/server'
import Polyglot from 'node-polyglot'
import Greeter from './greeter'
import { wrapWithContext } from './helpers'
const polyglot = new Polyglot({
locale: 'en',
phrases: { hello_name: 'Hello, %{name}.' },
})
const greeterWithContext = wrapWithContext(
<Greeter name="Batsy" />,
{ t: polyglot.t.bind(polyglot) },
{ t: React.PropTypes.func }
)
// use greeterWithContext in your tests
// here it is shown how to use it with renderToString
console.log(renderToString(greeterWithContext))
Tests and Contributing guides are in progress.
useTranslate
(by @soda0289) and tests (by publicJorn).componentWillReceiveProps
in I18n. Change translate
api to translate(Component)
.FAQs
Higher order React component for using Polyglot
The npm package @pleio/react-polyglot receives a total of 5 weekly downloads. As such, @pleio/react-polyglot popularity was classified as not popular.
We found that @pleio/react-polyglot demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.