Currently, react-polyglot allows to use onMissingKey from node-polyglot, see:
https://github.com/airbnb/polyglot.js/blob/6c10c6f3eacec8f23deb4635dfafca862167161e/index.js#L406
Unfortunately, since there is no exposed translation function that allows substitutions, the passed onMissingKey function will have to implement its own substitution logic, effectively using node-polyglot exports. Here is an example of such implementation:
const onMissingKey = (key: string, substitutions?: InterpolationOptions) => {
const translation = get(translations['en'], key)
return transformPhrase(translation, substitutions)
}
It would be great to make the translation function available so that implementors of onMissingKey can benefit from the already available translation context.
Proposed solutions:
- Augment
onMissingKey with an additional t parameter (probably not the best for arity reasons, as locale will have to be passed)
- Export the
transformPhrase or Polyglot.t translation function - this way, there would be no back and forth switching between the two libraries needed to implement this.
Note that if we go with this, InterpolationOptions will need to be exported, as onMissingKey is typed like so, and implementations using TS need to type it if they enabled noImplicitAny in their tsconfig:
(property) PolyglotOptions.onMissingKey?: ((key: string, options?: InterpolationOptions | undefined, locale?: string | undefined) => string) | undefined
Happy to implement it if that's something of interest! I could also document it/add examples as documentation is missing for it on both node-polyglot and on this library.
Currently, react-polyglot allows to use
onMissingKeyfrom node-polyglot, see:https://github.com/airbnb/polyglot.js/blob/6c10c6f3eacec8f23deb4635dfafca862167161e/index.js#L406
Unfortunately, since there is no exposed translation function that allows substitutions, the passed
onMissingKeyfunction will have to implement its own substitution logic, effectively usingnode-polyglotexports. Here is an example of such implementation:It would be great to make the translation function available so that implementors of
onMissingKeycan benefit from the already available translation context.Proposed solutions:
onMissingKeywith an additionaltparameter (probably not the best for arity reasons, aslocalewill have to be passed)transformPhraseorPolyglot.ttranslation function - this way, there would be no back and forth switching between the two libraries needed to implement this.Note that if we go with this,
InterpolationOptionswill need to be exported, asonMissingKeyis typed like so, and implementations using TS need to type it if they enablednoImplicitAnyin their tsconfig:Happy to implement it if that's something of interest! I could also document it/add examples as documentation is missing for it on both
node-polyglotand on this library.