Skip to content

Commit 2a493e6

Browse files
authored
fix: correctly extend react-i18next from i18next framework
1 parent c9e4537 commit 2a493e6

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

src/frameworks/i18next.ts

+7
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,13 @@ class I18nextFramework extends Framework {
4949
'{key}_7',
5050
'{key}_8',
5151
'{key}_9',
52+
// support v4 format as well as v3
53+
'{key}_zero',
54+
'{key}_one',
55+
'{key}_two',
56+
'{key}_few',
57+
'{key}_many',
58+
'{key}_other'
5259
]
5360

5461
refactorTemplates(keypath: string) {

src/frameworks/react-i18next.ts

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import { I18nextFramework } from './i18next'
2+
import { LanguageId } from '~/utils'
3+
4+
class ReactI18nextFramework extends Framework {
5+
id= 'react-i18next'
6+
display= 'React'
7+
8+
detection= {
9+
packageJSON: [
10+
'react-i18next',
11+
'next-i18next',
12+
],
13+
}
14+
15+
languageIds: LanguageId[] = [
16+
'javascript',
17+
'typescript',
18+
'javascriptreact',
19+
'typescriptreact',
20+
'ejs',
21+
]
22+
23+
// for visualize the regex, you can use https://regexper.com/
24+
usageMatchRegex = [
25+
// general jsx attrs
26+
'[^\\w\\d](?:i18nKey=|FormattedMessage[ (]\\s*id=|t\\(\\s*)[\'"`]({key})[\'"`]',
27+
'<Trans>({key})<\\/Trans>',
28+
]
29+
30+
refactorTemplates(keypath: string) {
31+
return [
32+
`{t('${keypath}')}`,
33+
`t('${keypath}')`,
34+
keypath,
35+
]
36+
}
37+
}
38+
39+
export default ReactI18nextFramework
File renamed without changes.

0 commit comments

Comments
 (0)