0.0.5 • Published 6 years ago
react-redux-multilang v0.0.5
Install
npm install --save react-redux-multilang
Reducer and sync
import { langReducer, syncWithStore } from 'react-redux-multilang'
const store = createStore(
combineReducers({
lang: langReducer // step 1: add reducer
})
);
syncWithStore(store) // step 2: sync language with store
Use in components
import MultiLanguage from 'react-redux-multilang'
import { connect } from 'react-redux'
const translate = new MultiLanguage({
en: {
text: 'text here',
deep: {
text: 'deep text here'
}
},
ru: {
text: 'текст тут',
deep: {
text: 'вложенный текст тут'
}
}
})
class MyComponent extends Component{
render(){
return (
<div>
<p>{translate.text}</p>
<p>{translate.deep.text}</p>
</div>
)
}
}
export default connect(state => ({ lang: state.lang }))(MyComponent);
Change language
import { setLanguage } from 'react-redux-multilang'
// change language from anywhere
setLanguage('ru')
// sample with button and onClick
<button onClick={() => setLanguage('ru')}>Change language to Russian</button>
<button onClick={() => setLanguage('en')}>Change language to English</button>
// also you can dispatch action like this
store.dispatch({
type: 'SET_REDUX_LANGUAGE',
code: 'ru'
})