Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
@iqoption/affiliate-redux-translations
Advanced tools
Translations utils for react-redux apps
npm i @iqoption/affiliate-redux-translations
Create and config translations middleware and apply it.
import { createTranslationsMiddleware } from "@iqoption/affiliate-redux-translations";
// Change this function to yours
const functionThatReturnsPromiseWithDictionary = language =>
Promise.resolve(
language === "en" ? { hello: "Hello!" } : { hello: "Привет!" }
);
const translationsMiddleware = createTranslationsMiddleware(
functionThatReturnsPromiseWithDictionary
);
const store = createStore(rootReducer, applyMiddleware(translationsMiddleware));
Wrap component with withTranslations
function:
import withTranslations from "@iqoption/affiliate-redux-translations";
const MyComponent = ({ dictionary, currentLang, loadingLang, switchLang }) => (
<div>
Translated text: {dictionary["hello"]}
<br />
Current language: {currentLang}
<br />
Loading language: {loadingLang}
<button onClick={() => switchLang("en")}>English</button>
<br />
<button onClick={() => switchLang("ru")}>Russian</button>
</div>
);
const MyComponentTranslated = withTranslations(MyComponent);
You can change language not only in react-component:
import { switchLangActionCreator } from "@iqoption/affiliate-redux-translations";
store.dispatch(switchLangActionCreator("en"));
createTranslationsMiddleware(getDictionary, [options], [initialState])
Function, that creates redux-middleware for translations. Has next arguments:
getDictionary
(Function) - function with one argument type of string
- language, that user is switching to, and returns promise with dictionary
object.
[options]
(Object) - options object with next optional fields:
cache
(Boolean) - should cache results of getDictionary
, and do not call it if dictionary is already loaded. Default true
.updateCacheOnSwitch
(Boolean) - when cache
is true
, should switch immediately to cached dictionary, but load dictionary in background one more time and replace old with the new one. Default false
.startSwitchCallback
(Function) - callback for every language switching start. Run exactly in switch event, without waiting for fetching dictionary. Takes next arguments: loadingLang
(String) and store
. Default undefined
.endSwitchCallback
(Function) - callback for every language switching end. Run exactly after fetching dictionary. Takes next arguments: loadedLang
(String), dictionary
(Object) and store
. Default undefined
.[initialState]
(Object) - initial inner state object with next optional fields:dictionaries
(Object) - hash-table of dictionaries, where key is language name and value is dictionary. Default {}
.currentLang
(String) - current language with fetched dictionary. Default null
.loadingLang
(String) - language that user is switching to, but not fetched dictionary yet. Default null
.withTranslations(Component, [copyStaticMethods])
React component class wrapper that adds next props to wrapping component class (actually it returns new component class):
currentLang
(String) - language, which dictionary is currently using.
loadingLang
(String) - language, which dictionary is currently loading.
dictionary
(Object) - object, that is returned by getDictionary
.
switchLang
(Function) - function, that switch language to passed one.
Arguments:
Component
(Function) - component that depends on props, listed above.
copyStaticMethods
(Boolean) - whether to copy static methods of Component or not. Default true
.
switchLangActionCreator(language)
Redux action creator - function with one argument type of string
, returns flux standard action (FSA), that you can dispatch whereever in your app (for example, when initialising your app).
patchState(changes, [updateComponents])
Patch translations inner state without dispatching redux action. Could be useful for server-side rendering or another cases where store.dispatch
function is unreachable. Returns Promise, resolved when all components are updated (if updateComponents === true) or immediately. Has next arguments:
changes
(Object) - partial initial inner state object with next optional fields:dictionaries
(Object) - hash-table of dictionaries, where key is language name and value is dictionary.currentLang
(String) - current language with fetched dictionary.loadingLang
(String) - language that user is switching to, but not fetched dictionary yet.updateComponents
(Boolean) - whether to update components or not.FAQs
translations utils for react-redux apps
We found that @iqoption/affiliate-redux-translations demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 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.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.