i18nPlugin icon indicating copy to clipboard operation
i18nPlugin copied to clipboard

Problems with "Extract i18n key" using react-i18n

Open gpsfl opened this issue 3 years ago • 1 comments

Given the following example, I have encountered two problems when using the "Extract i18n key" feature:

const Component = () => {
    const {t} = useTranslation();
    return (<Text value="My string" />)
}
  1. If the string is not inside curly braces, it will throw an error:
kotlin.KotlinNullPointerException
	at com.eny.i18n.plugin.language.jsx.JsxTranslationExtractor.text(JsxLanguageFactory.kt:69)
	at com.eny.i18n.plugin.ide.actions.ExtractI18nIntentionAction.doInvoke(ExtractI18nIntentionAction.kt:52)
	at com.eny.i18n.plugin.ide.actions.ExtractI18nIntentionAction.access$doInvoke(ExtractI18nIntentionAction.kt:24)
	at com.eny.i18n.plugin.ide.actions.ExtractI18nIntentionAction$invoke$1.run(ExtractI18nIntentionAction.kt:36)
	at com.intellij.openapi.application.TransactionGuardImpl.runWithWritingAllowed(TransactionGuardImpl.java:214)
  1. If the string is inside braces, it will extract the key. However the result use the i18n.t function instead of the existing t function from the translation hook. It will look like:
<Text value={i18n.t('key')} />

gpsfl avatar Sep 09 '21 14:09 gpsfl

@gpsfl have you checked if the problem still remains in 2.6.1?

nyavro avatar Oct 30 '21 04:10 nyavro