nyavro / i18nPlugin

Intellij idea i18next support plugin
MIT License
70 stars 11 forks source link

Problems with "Extract i18n key" using react-i18n #133

Open gpsfl opened 3 years ago

gpsfl commented 3 years ago

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)
  2. 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')} />
nyavro commented 2 years ago

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