Repository: i18next/react-i18next Branch: master Commit: b00adfad4296 Files: 503 Total size: 1.4 MB Directory structure: gitextract_okq1t3_6/ ├── .all-contributorsrc ├── .babelrc ├── .codeclimate.yml ├── .coveralls.yml ├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .github/ │ ├── stale.yml │ └── workflows/ │ └── CI.yml ├── .gitignore ├── .husky/ │ └── pre-commit ├── .npmignore ├── .prettierignore ├── .prettierrc.json ├── CHANGELOG.md ├── LICENSE ├── README.md ├── TransWithoutContext.d.mts ├── TransWithoutContext.d.ts ├── example/ │ ├── ReactNativeLocizeProject/ │ │ ├── .bundle/ │ │ │ └── config │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc.js │ │ ├── .watchmanconfig │ │ ├── App.tsx │ │ ├── Gemfile │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── App.test.tsx │ │ ├── android/ │ │ │ ├── app/ │ │ │ │ ├── build.gradle │ │ │ │ ├── debug.keystore │ │ │ │ ├── proguard-rules.pro │ │ │ │ └── src/ │ │ │ │ ├── debug/ │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ └── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── reactnativelocizeproject/ │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ └── MainApplication.kt │ │ │ │ └── res/ │ │ │ │ ├── drawable/ │ │ │ │ │ └── rn_edit_text_material.xml │ │ │ │ └── values/ │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ ├── build.gradle │ │ │ ├── gradle/ │ │ │ │ └── wrapper/ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradle.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ └── settings.gradle │ │ ├── app.json │ │ ├── babel.config.js │ │ ├── i18n.js │ │ ├── index.js │ │ ├── ios/ │ │ │ ├── .xcode.env │ │ │ ├── Podfile │ │ │ ├── ReactNativeLocizeProject/ │ │ │ │ ├── AppDelegate.swift │ │ │ │ ├── Images.xcassets/ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── PrivacyInfo.xcprivacy │ │ │ ├── ReactNativeLocizeProject.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── xcshareddata/ │ │ │ │ └── xcschemes/ │ │ │ │ └── ReactNativeLocizeProject.xcscheme │ │ │ └── ReactNativeLocizeProject.xcworkspace/ │ │ │ └── contents.xcworkspacedata │ │ ├── jest.config.js │ │ ├── metro.config.js │ │ ├── package.json │ │ └── tsconfig.json │ ├── ReactNativeProject/ │ │ ├── .bundle/ │ │ │ └── config │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierrc.js │ │ ├── .watchmanconfig │ │ ├── App.tsx │ │ ├── Gemfile │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── App.test.tsx │ │ ├── android/ │ │ │ ├── app/ │ │ │ │ ├── build.gradle │ │ │ │ ├── debug.keystore │ │ │ │ ├── proguard-rules.pro │ │ │ │ └── src/ │ │ │ │ ├── debug/ │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ └── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── reactnativeproject/ │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ └── MainApplication.kt │ │ │ │ └── res/ │ │ │ │ ├── drawable/ │ │ │ │ │ └── rn_edit_text_material.xml │ │ │ │ └── values/ │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ ├── build.gradle │ │ │ ├── gradle/ │ │ │ │ └── wrapper/ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradle.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ └── settings.gradle │ │ ├── app.json │ │ ├── babel.config.js │ │ ├── i18n.js │ │ ├── index.js │ │ ├── ios/ │ │ │ ├── .xcode.env │ │ │ ├── Podfile │ │ │ ├── ReactNativeProject/ │ │ │ │ ├── AppDelegate.swift │ │ │ │ ├── Images.xcassets/ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── PrivacyInfo.xcprivacy │ │ │ ├── ReactNativeProject.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── xcshareddata/ │ │ │ │ └── xcschemes/ │ │ │ │ └── ReactNativeProject.xcscheme │ │ │ └── ReactNativeProject.xcworkspace/ │ │ │ └── contents.xcworkspacedata │ │ ├── jest.config.js │ │ ├── locales/ │ │ │ ├── de/ │ │ │ │ └── translation.json │ │ │ └── en/ │ │ │ └── translation.json │ │ ├── metro.config.js │ │ ├── package.json │ │ └── tsconfig.json │ ├── devserver-save-missing/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── config-overrides.js │ │ ├── package.json │ │ ├── public/ │ │ │ ├── index.html │ │ │ ├── locales/ │ │ │ │ ├── de/ │ │ │ │ │ └── translation.json │ │ │ │ └── en/ │ │ │ │ └── translation.json │ │ │ └── manifest.json │ │ ├── src/ │ │ │ ├── App.css │ │ │ ├── App.js │ │ │ ├── i18n.js │ │ │ ├── index.css │ │ │ └── index.js │ │ └── webpack.config.js │ ├── locize/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── public/ │ │ │ ├── index.html │ │ │ └── manifest.json │ │ └── src/ │ │ ├── App.css │ │ ├── App.js │ │ ├── i18n.js │ │ ├── index.css │ │ └── index.js │ ├── razzle-ssr/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── public/ │ │ │ └── robots.txt │ │ └── src/ │ │ ├── App.css │ │ ├── App.js │ │ ├── Home.css │ │ ├── Home.js │ │ ├── client.js │ │ ├── i18n.js │ │ ├── index.js │ │ ├── locales/ │ │ │ ├── de/ │ │ │ │ └── translations.json │ │ │ └── en/ │ │ │ └── translations.json │ │ └── server.js │ ├── react/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── public/ │ │ │ ├── index.html │ │ │ ├── locales/ │ │ │ │ ├── de/ │ │ │ │ │ └── translation.json │ │ │ │ └── en/ │ │ │ │ └── translation.json │ │ │ └── manifest.json │ │ └── src/ │ │ ├── App.css │ │ ├── App.js │ │ ├── i18n.js │ │ ├── index.css │ │ └── index.js │ ├── react-component-lib/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── public/ │ │ │ ├── index.html │ │ │ ├── locales/ │ │ │ │ ├── de/ │ │ │ │ │ └── translation.json │ │ │ │ └── en/ │ │ │ │ └── translation.json │ │ │ └── manifest.json │ │ └── src/ │ │ ├── App.css │ │ ├── App.js │ │ ├── i18n.js │ │ ├── index.css │ │ ├── index.js │ │ └── other-lib/ │ │ ├── component.js │ │ └── i18n.js │ ├── react-fluent/ │ │ ├── .gitignore │ │ ├── package.json │ │ ├── public/ │ │ │ ├── index.html │ │ │ ├── locales/ │ │ │ │ ├── de/ │ │ │ │ │ └── translations.ftl │ │ │ │ └── en/ │ │ │ │ └── translations.ftl │ │ │ └── manifest.json │ │ └── src/ │ │ ├── App.css │ │ ├── App.js │ │ ├── i18n.js │ │ ├── index.css │ │ └── index.js │ ├── react-icu/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── public/ │ │ │ ├── index.html │ │ │ ├── locales/ │ │ │ │ ├── de/ │ │ │ │ │ └── translations.json │ │ │ │ ├── en/ │ │ │ │ │ └── translations.json │ │ │ │ └── ru/ │ │ │ │ └── translations.json │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ └── src/ │ │ ├── App.css │ │ ├── App.js │ │ ├── App.test.js │ │ ├── ComponentUsingMacro.js │ │ ├── ComponentUsingMacroInterpolated.js │ │ ├── i18n.js │ │ ├── index.css │ │ ├── index.js │ │ ├── serviceWorker.js │ │ └── setupTests.js │ ├── react-localstorage/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── public/ │ │ │ ├── index.html │ │ │ ├── locales/ │ │ │ │ ├── de/ │ │ │ │ │ └── translation.json │ │ │ │ └── en/ │ │ │ │ └── translation.json │ │ │ └── manifest.json │ │ └── src/ │ │ ├── App.css │ │ ├── App.js │ │ ├── i18n.js │ │ ├── index.css │ │ └── index.js │ ├── react-typescript/ │ │ ├── simple/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── package.json │ │ │ ├── public/ │ │ │ │ ├── index.html │ │ │ │ ├── manifest.json │ │ │ │ └── robots.txt │ │ │ ├── src/ │ │ │ │ ├── @types/ │ │ │ │ │ ├── i18next.d.ts │ │ │ │ │ ├── react-app-env.d.ts │ │ │ │ │ └── resources.ts │ │ │ │ ├── App.tsx │ │ │ │ ├── i18n/ │ │ │ │ │ ├── config.ts │ │ │ │ │ └── en/ │ │ │ │ │ └── translation.json │ │ │ │ ├── index.css │ │ │ │ └── index.tsx │ │ │ └── tsconfig.json │ │ └── simple-multi-namespaces/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── package.json │ │ ├── public/ │ │ │ ├── index.html │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src/ │ │ │ ├── @types/ │ │ │ │ ├── i18next.d.ts │ │ │ │ ├── react-app-env.d.ts │ │ │ │ └── resources.ts │ │ │ ├── App.tsx │ │ │ ├── components/ │ │ │ │ ├── Comp1.tsx │ │ │ │ ├── Comp2.tsx │ │ │ │ └── Comp3.tsx │ │ │ ├── i18n/ │ │ │ │ ├── config.ts │ │ │ │ └── en/ │ │ │ │ ├── ns1.json │ │ │ │ └── ns2.json │ │ │ ├── index.css │ │ │ └── index.tsx │ │ └── tsconfig.json │ ├── react_native_windows/ │ │ ├── .buckconfig │ │ ├── .eslintrc.js │ │ ├── .flowconfig │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── .prettierrc.json │ │ ├── .watchmanconfig │ │ ├── App.js │ │ ├── __tests__/ │ │ │ └── App-test.js │ │ ├── android/ │ │ │ ├── app/ │ │ │ │ ├── BUCK │ │ │ │ ├── build.gradle │ │ │ │ ├── build_defs.bzl │ │ │ │ ├── debug.keystore │ │ │ │ ├── proguard-rules.pro │ │ │ │ └── src/ │ │ │ │ ├── debug/ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ └── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── react_native_windows/ │ │ │ │ │ └── ReactNativeFlipper.java │ │ │ │ └── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── react_native_windows/ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ └── MainApplication.java │ │ │ │ └── res/ │ │ │ │ └── values/ │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ ├── build.gradle │ │ │ ├── gradle/ │ │ │ │ └── wrapper/ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradle.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ └── settings.gradle │ │ ├── app.json │ │ ├── babel.config.js │ │ ├── index.js │ │ ├── ios/ │ │ │ ├── Podfile │ │ │ ├── react_native_windows/ │ │ │ │ ├── AppDelegate.h │ │ │ │ ├── AppDelegate.m │ │ │ │ ├── Images.xcassets/ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ └── main.m │ │ │ ├── react_native_windows-tvOS/ │ │ │ │ └── Info.plist │ │ │ ├── react_native_windows-tvOSTests/ │ │ │ │ └── Info.plist │ │ │ ├── react_native_windows.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── xcshareddata/ │ │ │ │ └── xcschemes/ │ │ │ │ ├── react_native_windows-tvOS.xcscheme │ │ │ │ └── react_native_windows.xcscheme │ │ │ └── react_native_windowsTests/ │ │ │ ├── Info.plist │ │ │ └── react_native_windowsTests.m │ │ ├── macos/ │ │ │ ├── .gitignore │ │ │ ├── Podfile │ │ │ ├── react_native_windows-iOS/ │ │ │ │ ├── AppDelegate.h │ │ │ │ ├── AppDelegate.m │ │ │ │ ├── Base.lproj/ │ │ │ │ │ └── LaunchScreen.xib │ │ │ │ ├── Images.xcassets/ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info.plist │ │ │ │ └── main.m │ │ │ ├── react_native_windows-macOS/ │ │ │ │ ├── AppDelegate.h │ │ │ │ ├── AppDelegate.m │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Base.lproj/ │ │ │ │ │ └── Main.storyboard │ │ │ │ ├── Info.plist │ │ │ │ ├── ViewController.h │ │ │ │ ├── ViewController.m │ │ │ │ ├── main.m │ │ │ │ └── react_native_windows.entitlements │ │ │ ├── react_native_windows.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── xcshareddata/ │ │ │ │ └── xcschemes/ │ │ │ │ ├── react_native_windows-iOS.xcscheme │ │ │ │ └── react_native_windows-macOS.xcscheme │ │ │ └── react_native_windows.xcworkspace/ │ │ │ └── contents.xcworkspacedata │ │ ├── metro.config.js │ │ ├── metro.config.macos.js │ │ ├── package.json │ │ ├── react-native.config.js │ │ └── windows/ │ │ ├── .gitignore │ │ ├── react_native_windows/ │ │ │ ├── .gitignore │ │ │ ├── App.cpp │ │ │ ├── App.h │ │ │ ├── App.idl │ │ │ ├── App.xaml │ │ │ ├── AutolinkedNativeModules.g.cpp │ │ │ ├── AutolinkedNativeModules.g.h │ │ │ ├── AutolinkedNativeModules.g.targets │ │ │ ├── MainPage.cpp │ │ │ ├── MainPage.h │ │ │ ├── MainPage.idl │ │ │ ├── MainPage.xaml │ │ │ ├── Package.appxmanifest │ │ │ ├── PropertySheet.props │ │ │ ├── ReactPackageProvider.cpp │ │ │ ├── ReactPackageProvider.h │ │ │ ├── packages.config │ │ │ ├── pch.cpp │ │ │ ├── pch.h │ │ │ ├── react_native_windows.vcxproj │ │ │ ├── react_native_windows.vcxproj.filters │ │ │ └── react_native_windows_TemporaryKey.pfx │ │ └── react_native_windows.sln │ ├── storybook/ │ │ ├── .gitignore │ │ ├── .storybook/ │ │ │ ├── main.js │ │ │ └── preview.js │ │ ├── README.md │ │ ├── package.json │ │ ├── public/ │ │ │ ├── index.html │ │ │ ├── locales/ │ │ │ │ ├── ar/ │ │ │ │ │ └── translation.json │ │ │ │ ├── de/ │ │ │ │ │ └── translation.json │ │ │ │ └── en/ │ │ │ │ └── translation.json │ │ │ └── manifest.json │ │ └── src/ │ │ ├── App.css │ │ ├── App.js │ │ ├── i18n.js │ │ ├── index.css │ │ ├── index.js │ │ └── stories/ │ │ ├── app.stories.js │ │ └── components.stories.js │ └── test-jest/ │ ├── .gitignore │ ├── README.md │ ├── package.json │ ├── public/ │ │ ├── index.html │ │ ├── locales/ │ │ │ ├── de/ │ │ │ │ └── translations.json │ │ │ └── en/ │ │ │ └── translations.json │ │ └── manifest.json │ └── src/ │ ├── App.css │ ├── App.js │ ├── App.test.js │ ├── Trans.js │ ├── Trans.test.js │ ├── Translation.js │ ├── Translation.test.js │ ├── UseTranslation.js │ ├── UseTranslation.test.js │ ├── UseTranslationWithInterpolation.js │ ├── UseTranslationWithInterpolation.test.js │ ├── WithTranslation.js │ ├── WithTranslation.test.js │ ├── __mocks__/ │ │ └── react-i18next.js │ ├── i18n.js │ ├── index.css │ ├── index.js │ └── setupTests.js ├── helpers.d.ts ├── icu.macro.d.mts ├── icu.macro.d.ts ├── icu.macro.js ├── index.d.mts ├── index.d.ts ├── initReactI18next.d.mts ├── initReactI18next.d.ts ├── lint-staged.config.mjs ├── package.json ├── react-i18next.js ├── rollup.config.mjs ├── src/ │ ├── I18nextProvider.js │ ├── IcuTrans.js │ ├── IcuTransUtils/ │ │ ├── TranslationParserError.js │ │ ├── htmlEntityDecoder.js │ │ ├── index.js │ │ ├── renderTranslation.js │ │ └── tokenizer.js │ ├── IcuTransWithoutContext.js │ ├── Trans.js │ ├── TransWithoutContext.js │ ├── Translation.js │ ├── context.js │ ├── defaults.js │ ├── i18nInstance.js │ ├── index.js │ ├── initReactI18next.js │ ├── unescape.js │ ├── useSSR.js │ ├── useTranslation.js │ ├── utils.js │ ├── withSSR.js │ └── withTranslation.js ├── test/ │ ├── I18nextProvider.spec.jsx │ ├── IcuTrans/ │ │ ├── IcuTrans.spec.jsx │ │ ├── IcuTransWithoutContext.spec.jsx │ │ └── utils/ │ │ ├── htmlEntityDecoder.spec.js │ │ ├── renderTranslation.spec.js │ │ └── tokenizer.spec.js │ ├── Translation.spec.jsx │ ├── __snapshots__/ │ │ └── icu.macro.spec.js.snap │ ├── backendLngAwareMock.js │ ├── backendMock.js │ ├── hasLoadedNamespaceMock.js │ ├── i18n.js │ ├── i18nNoLng.js │ ├── icu.macro.spec.js │ ├── initReactI18next.spec.js │ ├── setup.js │ ├── trans.nodeToString.spec.jsx │ ├── trans.render.dynamic.spec.jsx │ ├── trans.render.icu.spec.jsx │ ├── trans.render.noLng.spec.jsx │ ├── trans.render.object.spec.jsx │ ├── trans.render.spec.jsx │ ├── typescript/ │ │ ├── custom-types/ │ │ │ ├── IcuTrans.test.tsx │ │ │ ├── Trans.test.tsx │ │ │ ├── TransWithoutContext.test.tsx │ │ │ ├── Translation.test.ts │ │ │ ├── i18next.d.ts │ │ │ ├── tsconfig.json │ │ │ └── useTranslation.test.ts │ │ ├── issue-1899/ │ │ │ ├── check-types.sh │ │ │ ├── i18next.d.ts │ │ │ ├── import-check.ts │ │ │ └── tsconfig.json │ │ ├── misc/ │ │ │ ├── I18nextProvider.test.tsx │ │ │ ├── IcuTrans.test.tsx │ │ │ ├── IcuTransWithoutContext.test.tsx │ │ │ ├── Trans.test.tsx │ │ │ ├── TransWithoutContext.test.tsx │ │ │ ├── Translation.test.tsx │ │ │ ├── context.test.tsx │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.nonEsModuleInterop.json │ │ │ ├── useSSR.test.tsx │ │ │ ├── useTranslation.test.ts │ │ │ ├── withSSR.test.tsx │ │ │ └── withTranslation.test.tsx │ │ ├── selector-custom-types/ │ │ │ ├── IcuTrans.test.tsx │ │ │ ├── IcuTransWithoutContext.test.tsx │ │ │ ├── Trans.test.tsx │ │ │ ├── TransWithoutContext.test.tsx │ │ │ ├── Translation.test.tsx │ │ │ ├── i18next.d.ts │ │ │ ├── tsconfig.json │ │ │ └── useTranslation.test.ts │ │ └── selector-optimize/ │ │ ├── IcuTrans.test.tsx │ │ ├── IcuTransWithoutContext.test.tsx │ │ ├── Trans.test.tsx │ │ ├── TransWithoutContext.test.tsx │ │ ├── Translation.test.tsx │ │ ├── i18next.d.ts │ │ ├── tsconfig.json │ │ └── useTranslation.test.ts │ ├── unescape.spec.js │ ├── useSSR.spec.js │ ├── useTranslation.advanced.spec.js │ ├── useTranslation.bindI18nStore.spec.jsx │ ├── useTranslation.loading.spec.js │ ├── useTranslation.loadingLng.spec.js │ ├── useTranslation.ready.spec.jsx │ ├── useTranslation.spec.jsx │ ├── useTranslation.usedNamespaces.spec.js │ ├── utils.spec.js │ ├── withSSR.spec.jsx │ ├── withTranslation.keyPrefix.spec.jsx │ └── withTranslation.spec.jsx ├── tsconfig.json ├── vitest.config.mts └── vitest.workspace.typescript.mts ================================================ FILE CONTENTS ================================================ ================================================ FILE: .all-contributorsrc ================================================ { "projectName": "react-i18next", "projectOwner": "i18next", "repoType": "github", "repoHost": "https://github.com", "files": ["README.md"], "imageSize": 100, "commit": false, "contributors": [ { "login": "jamuhl", "name": "Jan Mühlemann", "avatar_url": "https://avatars3.githubusercontent.com/u/977772?v=4", "profile": "http://twitter.com/jamuhl", "contributions": ["code", "example", "doc", "question"] }, { "login": "adrai", "name": "Adriano Raiano", "avatar_url": "https://avatars0.githubusercontent.com/u/1086194?v=4", "profile": "http://twitter.com/#!/adrirai", "contributions": ["code", "example", "doc", "question"] }, { "login": "tigerabrodi", "name": "Tiger Abrodi", "avatar_url": "https://avatars1.githubusercontent.com/u/49603590?v=4", "profile": "https://tigerabrodi.dev/", "contributions": ["question", "code", "review"] }, { "login": "pedrodurek", "name": "Pedro Durek", "avatar_url": "https://avatars1.githubusercontent.com/u/12190482?v=4", "profile": "https://github.com/pedrodurek", "contributions": ["code", "example"] } ], "commitConvention": "none" } ================================================ FILE: .babelrc ================================================ { "env": { "development": { "presets": [ [ "@babel/env", { "targets": { "browsers": ["defaults"] } } ], "@babel/react" ], "plugins": ["@babel/plugin-transform-runtime"] }, "jsnext": { "presets": [ [ "@babel/env", { "targets": { "browsers": ["defaults"] }, "modules": false, "useBuiltIns": false } ], "@babel/react" ], "plugins": ["@babel/plugin-transform-runtime"] } }, "comments": false } ================================================ FILE: .codeclimate.yml ================================================ engines: duplication: enabled: true config: languages: - ruby - javascript: mass_threshold: 58 - python - php eslint: # Disabled since this engine used a different set of version of # `@typescript/eslint` and `typescript` # # @see https://github.com/i18next/i18next/pull/2098 enabled: false channel: 'eslint-8' fixme: enabled: true ratings: paths: - 'src/**/*' exclude_paths: - test/ - coverage/ - dist/ - example/ - 'react-i18next.js' - 'react-i18next.min.js' - 'rollup.config.js' - 'src/shallowEqual.js' ================================================ FILE: .coveralls.yml ================================================ repo_token: a7NPPsDW6jNJ3x23jBgWuO6KxV3Eq0mF2 ================================================ FILE: .editorconfig ================================================ # EditorConfig is awesome: http://EditorConfig.org root = true [*] charset = utf-8 end_of_line = lf indent_size = 2 indent_style = space insert_final_newline = true trim_trailing_whitespace = true ================================================ FILE: .eslintignore ================================================ **/dist/ **/node_modules/ example/**/* **/react-i18next.js **/react-i18next.min.js ================================================ FILE: .eslintrc.json ================================================ { "extends": ["airbnb", "prettier"], "parser": "@babel/eslint-parser", "parserOptions": { "ecmaVersion": 8, "ecmaFeatures": { "experimentalObjectRestSpread": true, "impliedStrict": true, "classes": true } }, "env": { "browser": true, "node": true }, "reportUnusedDisableDirectives": true, "rules": { "no-debugger": 0, "no-alert": 0, "no-unused-vars": [1, { "argsIgnorePattern": "res|next|^err" }], "prefer-arrow-callback": ["error", { "allowNamedFunctions": true }], "prefer-const": ["error", { "destructuring": "all" }], "arrow-body-style": [2, "as-needed"], "no-unused-expressions": [2, { "allowTaggedTemplates": true }], "no-param-reassign": [2, { "props": false }], "no-console": 0, "no-use-before-define": 0, "no-nested-ternary": 0, "import/prefer-default-export": 0, "import/no-extraneous-dependencies": 1, "import/no-named-as-default-member": 1, "import": 0, "func-names": 0, "space-before-function-paren": 0, "comma-dangle": 0, "max-len": 0, "import/extensions": 0, "no-underscore-dangle": 0, "consistent-return": 0, "react/display-name": 1, "react/no-array-index-key": 0, "react/jsx-no-useless-fragment": ["error", { "allowExpressions": true }], "react/react-in-jsx-scope": 0, "react/prefer-stateless-function": 0, "react/forbid-prop-types": 0, "react/no-unescaped-entities": 0, "react/prop-types": 0, "jsx-a11y/accessible-emoji": 0, "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }], "react/no-unknown-property": ["error", { "ignore": ["i18nIsDynamicList"] }], "radix": 0, "no-shadow": [ 2, { "hoist": "all", "allow": ["resolve", "reject", "done", "next", "err", "error"] } ], "quotes": [2, "single", { "avoidEscape": true, "allowTemplateLiterals": true }], "jsx-a11y/href-no-hash": "off", "jsx-a11y/anchor-is-valid": ["warn", { "aspects": ["invalidHref"] }], "react/jsx-props-no-spreading": 0 }, "overrides": [ { "files": ["test/*"], "extends": ["plugin:testing-library/react", "plugin:jest-dom/recommended"], "globals": { "globalThis": false }, "rules": { "testing-library/no-node-access": ["error", { "allowContainerFirstChild": true }], "testing-library/no-manual-cleanup": "off" } } ] } ================================================ FILE: .github/stale.yml ================================================ # Number of days of inactivity before an issue becomes stale daysUntilStale: 7 # Number of days of inactivity before a stale issue is closed daysUntilClose: 7 # Issues with these labels will never be considered stale exemptLabels: - 'discussion' - 'feature request' - 'bug' - 'breaking change' - 'doc' - 'issue' - 'help wanted' - 'good first issue' - 'pr hold' # Label to use when marking an issue as stale staleLabel: stale # Comment to post when marking an issue as stale. Set to `false` to disable markComment: > This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. # Comment to post when closing a stale issue. Set to `false` to disable closeComment: false ================================================ FILE: .github/workflows/CI.yml ================================================ name: CI on: push: branches: - master pull_request: # types: [opened, synchronize, reopened, ready_for_review] branches: - '**' jobs: codeQuality: name: Check code quality (lint and format) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 20 cache: 'npm' - name: Install dependencies run: npm install - name: Format check run: npm run format - name: Lint run: npm run lint build: name: Build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 20 cache: 'npm' - name: Install dependencies run: npm install - name: Build run: npm run build test: name: Test on node ${{ matrix.node }} and ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: matrix: node: ['22.x', '20.x', '18.x'] os: [ubuntu-latest] # Collect coverage only for node 20 and ubuntu-latest, no need to run it twice # @see https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs#expanding-or-adding-matrix-configurations include: - collectCoverage: true node: '20.x' os: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: ${{ matrix.node }} cache: 'npm' - name: Install dependencies run: npm install - name: Test if: ${{ !matrix.collectCoverage }} run: npm test - name: Test with coverage if: ${{ matrix.collectCoverage }} run: npm run test:coverage - name: Coveralls if: ${{ matrix.collectCoverage }} uses: coverallsapp/github-action@v2 testTypescript: name: Test typescript runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 20 cache: 'npm' - name: Install dependencies run: npm install - name: Test run: npm run test:typescript ================================================ FILE: .gitignore ================================================ # Ignore specific files .settings.xml .monitor .DS_Store *.orig npm-debug.log npm-debug.log.* *.dat .idea .vscode .eslintcache # Ignore various temporary files *~ *.swp # Ignore various Node.js related directories and files node_modules node_modules/**/* coverage/**/* example/build/**/* dist/**/* .next yarn.lock out # ignore packaged releases *.tgz # vitest temp / cache files tsconfig.vitest-temp.json ================================================ FILE: .husky/pre-commit ================================================ npm exec lint-staged ================================================ FILE: .npmignore ================================================ test/ coverage/ example/ bin/ .babelrc .editorconfig .eslintignore .eslintrc .gitignore bower.json .github .circleci .vscode rollup.config.js rollup.config.mjs .all-contributorsrc .codeclimate.yml .coveralls.yml tsconfig*.json .prettierrc.json vitest.config.mts vitest.workspace.mts ================================================ FILE: .prettierignore ================================================ **/dist/ **/react-i18next.js **/react-i18next.min.js **/example/ ================================================ FILE: .prettierrc.json ================================================ { "$schema": "https://json.schemastore.org/prettierrc.json", "bracketSpacing": true, "bracketSameLine": false, "printWidth": 100, "semi": true, "singleQuote": true, "trailingComma": "all" } ================================================ FILE: CHANGELOG.md ================================================ ### 16.5.8 - A selector function cannot be resolved without an i18n instance... returning empty string is safer than leaking the raw function reference. [1907](https://github.com/i18next/react-i18next/issues/1907) ### 16.5.7 - fix: `` component with `enableSelector: true` does not support multiple selectors for fallbacks [1907](https://github.com/i18next/react-i18next/issues/1907) ### 16.5.6 - fix: prevent crash in `useSSR` when `init()` hasn't been called before `useSSR` — now logs a warning instead of throwing [1604](https://github.com/i18next/react-i18next/discussions/1604) ### 16.5.5 - fix: prevent crash in `useSSR`, `getInitialProps` and `Translation` when no i18next instance is available (e.g. in monorepo setups with duplicate `react-i18next` copies) — now logs a clear warning instead of throwing [1604](https://github.com/i18next/react-i18next/discussions/1604) ### 16.5.4 - fix: Overriding React component props not working [1902](https://github.com/i18next/react-i18next/pull/1902) ### 16.5.3 - fix: Trans named tags with underscore [1901](https://github.com/i18next/react-i18next/pull/1901) ### 16.5.2 - fix: Type errors when you've declared a resources type [1899](https://github.com/i18next/react-i18next/issues/1899) via [1900](https://github.com/i18next/react-i18next/pull/1900) ### 16.5.1 - fix: export `nodesToString` (runtime + TypeScript typings) to support `i18next-cli` ([i18next/i18next-cli#155](https://github.com/i18next/i18next-cli/pull/155)) ### 16.5.0 - Add configuration option `transDefaultProps` to set default props for the Trans component (e.g. `tOptions`, `shouldUnescape`, `values`) [1895](https://github.com/i18next/react-i18next/issues/1895) ### 16.4.1 - fix(Trans): prevent double-escaping of interpolated values in component props (e.g. title). Unescape HTML entities before passing prop values to React to avoid rendered output like `&quot;` / `&#39;`. [1893](https://github.com/i18next/react-i18next/issues/1893) ### 16.4.0 - `` prop: optional - infer count from children [1891](https://github.com/i18next/react-i18next/issues/1891) ### 16.3.5 - fix runaway effect in useTranslation [1888](https://github.com/i18next/react-i18next/issues/1888) by [1889](https://github.com/i18next/react-i18next/pull/1889) ### 16.3.4 - Fix: avoid the "ref is not a prop" warning when a user ref is placed on an element inside `` [1887](https://github.com/i18next/react-i18next/issues/1887), by still trying to fix element.ref access issue with react 19 [1846](https://github.com/i18next/react-i18next/pull/1846) ### 16.3.3 - improve useTranslation to fix "Maximum update depth exceeded" but still support new react-compiler [1885](https://github.com/i18next/react-i18next/issues/1885) [1863](https://github.com/i18next/react-i18next/issues/1863#issuecomment-3491246391) ### 16.3.2 - fix: avoid "Uncaught TypeError: Cannot redefine property: \_\_original" ### 16.3.1 - revert fix: Incosistent behaviour of Trans and t. Trans set defaultValue when t call doesn't set the field. [1876](https://github.com/i18next/react-i18next/issues/1876) [f22d478](https://github.com/i18next/react-i18next/commit/f22d4787187e6cfc54d57f5fbede1c816ea19565) ### 16.3.0 - fix: add i18n wrapper for React Compiler and React.memo compatibility [1884](https://github.com/i18next/react-i18next/pull/1884) ### 16.2.4 - try to fix "Trans component do not render anymore children as default value in test environment" [1883](https://github.com/i18next/react-i18next/issues/1883) by also respecting [1876](https://github.com/i18next/react-i18next/issues/1876) ### 16.2.3 - fix hyphened component break issue [1882](https://github.com/i18next/react-i18next/pull/1882) ### 16.2.2 - fix trans component break with less than sign [1880](https://github.com/i18next/react-i18next/pull/1880), closes [1734](https://github.com/i18next/react-i18next/issues/1734) ### 16.2.1 - fix regression in v16.2.0: bindI18nStore does not work correctly [1879](https://github.com/i18next/react-i18next/issues/1879) ### 16.2.0 - try to address: useTranslation hook violates React's rules of hooks by conditionally calling inner hooks [1863](https://github.com/i18next/react-i18next/issues/1863) ### 16.1.6 - fix: fix: handle spread props for inner components in Trans (icu) [1877](https://github.com/i18next/react-i18next/pull/1877) ### 16.1.5 - fix: Incosistent behaviour of Trans and t. Trans set defaultValue when t call doesn't set the field. [1876](https://github.com/i18next/react-i18next/issues/1876) - Trans: use also defaultValue via tOptions as fallback ### 16.1.4 - fix: detect pre-transformation use of interpolation like number/date/etc. [1875](https://github.com/i18next/react-i18next/pull/1875) ### 16.1.3 - fix: ensure invalid identifiers are quoted in the props object [1874](https://github.com/i18next/react-i18next/pull/1874) ### 16.1.2 - missing.js extensions for Icu imports ### 16.1.1 - exports for `IcuTrans` component [1873](https://github.com/i18next/react-i18next/pull/1873) ### 16.1.0 - Introduce `IcuTrans` component [1869](https://github.com/i18next/react-i18next/issues/1869) ### 16.0.1 - fix: Using component with named tags throws error when Selector API is enabled [1867](https://github.com/i18next/react-i18next/issues/1867) with [1868](https://github.com/i18next/react-i18next/pull/1868) ### 16.0.0 - major upgrade i18next dep to address [1865](https://github.com/i18next/react-i18next/issues/1865) ### 15.7.4 - downgrade i18next dep to address [1865](https://github.com/i18next/react-i18next/issues/1865) ### 15.7.3 - exports TransSelectorProps [1862](https://github.com/i18next/react-i18next/pull/1862) to address [1861](https://github.com/i18next/react-i18next/issues/1861) ### 15.7.2 - update i18next dependency ### 15.7.1 - Fix: \_EnableSelector type (for compatibility, enableSelector does not exist in TypeOptions) [1858](https://github.com/i18next/react-i18next/pull/1858) ### 15.7.0 - add new selector API to improve TypeScript IDE performance [1852](https://github.com/i18next/react-i18next/pull/1852) - read more about it [here](https://github.com/i18next/i18next/blob/master/CHANGELOG.md#2540) ### 15.6.1 avoid exception when passing bindI18n: false [1856](https://github.com/i18next/react-i18next/pull/1856) ### 15.6.0 fix: passing components as object should still allow for indexed matching of children [1854](https://github.com/i18next/react-i18next/pull/1854) ### 15.5.3 chore: update `@babel/runtime` [1851](https://github.com/i18next/react-i18next/pull/1851) ### 15.5.2 fix element.ref access issue with react 19 [1846](https://github.com/i18next/react-i18next/pull/1846) ### 15.5.1 add typescript as optional peer dependency [1843](https://github.com/i18next/react-i18next/pull/1843) ### 15.5.0 feat: use const type parameters for useTranslation() [1842](https://github.com/i18next/react-i18next/pull/1842) ### 15.4.1 fix: unique key warning on componentized element [1835](https://github.com/i18next/react-i18next/pull/1835) ### 15.4.0 feat: add meta with codes on warnings to allow conditional logging [1826](https://github.com/i18next/react-i18next/pull/1826) ### 15.3.0 Uses the i18next logger instead of the default console logger, if there is a valid i18next instance. Now the debug i18next option is respected, and you can also inject your own logger module: https://www.i18next.com/misc/creating-own-plugins#logger ### 15.2.0 This version may be breaking if you still use React < v18 with TypeScript. For JS users this version is equal to v15.1.4 - fix: Global JSX namespace is deprecated [1823](https://github.com/i18next/react-i18next/issues/1823) with [1822](https://github.com/i18next/react-i18next/pull/1822) ### 15.1.4 - Fix: warning each child should have a unique key [1820](https://github.com/i18next/react-i18next/pull/1820) ### 15.1.3 - fix: Self-closing REACT components in translation strings should not attempt to replace the component's children [1815](https://github.com/i18next/react-i18next/issues/1815) [1816](https://github.com/i18next/react-i18next/pull/1816) ### 15.1.2 - fix: Attempted to assign to readonly property [1813](https://github.com/i18next/react-i18next/pull/1813) ### 15.1.1 - fix: Not all namespaces are loaded when passing the lng option to useTranslate [1809](https://github.com/i18next/react-i18next/issues/1809) ### 15.1.0 - fix: `` warns 'Each child in a list should have a unique "key" prop.' for react 19 [1806](https://github.com/i18next/react-i18next/pull/1806) ### 15.0.3 - try to fix [unexpected token issue](https://github.com/i18next/next-i18next/issues/2302) ### 15.0.2 - try to fix Trans handling with alwaysFormat set to true [1801](https://github.com/i18next/react-i18next/issues/1801) ### 15.0.1 - revert arrow function in class property to address [this](https://github.com/i18next/react-i18next/commit/46e8ea5ff69325b73087811a2ce6a2b1faffa971#r145061161) ### 15.0.0 - use optional chaining, nullish coalescing and nullish coalescing assignment [1774](https://github.com/i18next/react-i18next/pull/1774) - Build config and optimizations [1769](https://github.com/i18next/react-i18next/pull/1769) - some dependency updates [1768](https://github.com/i18next/react-i18next/pull/1768) - use modern hasLoadedNamespace code (now requires at least i18next > v19.4.5 (introduced in june 2020)) ### 14.1.3 - create a isObject helper function [1766](https://github.com/i18next/react-i18next/pull/1766) - optimize nodesToString [1765](https://github.com/i18next/react-i18next/pull/1765) - Simplifies hasValidReactChildren [1764](https://github.com/i18next/react-i18next/pull/1764) - create a isString helper to avoid code duplication [1763](https://github.com/i18next/react-i18next/pull/1763) - use arrow functions where possible [1762](https://github.com/i18next/react-i18next/pull/1762) - use the commented out async code [1761](https://github.com/i18next/react-i18next/pull/1761) ### 14.1.2 - bring back internal interpolationOverride handling for Trans component (if there are childrens), fixes [1754](https://github.com/i18next/react-i18next/issues/1754) ### 14.1.1 - do not modify passed tOptions context property to address [1745](https://github.com/i18next/react-i18next/issues/1745) ### 14.1.0 - types(`Trans`): add typechecking on context prop [1732](https://github.com/i18next/react-i18next/pull/1732) (might break if using "internal" `Trans` or `TransProps`) ### 14.0.8 - fix: issue [1728](https://github.com/i18next/react-i18next/issues/1728) when useSuspense is false and default ns [1731](https://github.com/i18next/react-i18next/pull/1731) ### 14.0.7 - try to get rid of internal interpolationOverride handling for Trans component, fixes [1729](https://github.com/i18next/react-i18next/issues/1729) ### 14.0.6 - align context handling of Trans component with t function, fixes [1729](https://github.com/i18next/react-i18next/issues/1729) ### 14.0.5 - Fix [1691](https://github.com/i18next/react-i18next/issues/1691) for strict mode, by preserving change language binding [1720](https://github.com/i18next/react-i18next/pull/1720) ### 14.0.4 - fix interpolation of the count prop [1719](https://github.com/i18next/react-i18next/issues/1719) ### 14.0.3 - revert changes done in v14.0.2 since it breaks normal language change render updates ### 14.0.2 - Fix/bug [1691](https://github.com/i18next/react-i18next/issues/1691) make returned t function identical upon second effect run in strict mode [1716](https://github.com/i18next/react-i18next/pull/1716) ### 14.0.1 - types: fix typo in `CustomInstanceExtensions` [1713](https://github.com/i18next/react-i18next/pull/1713) ### 14.0.0 - types: reportNamespaces is now optional, should fix [1693](https://github.com/i18next/react-i18next/issues/1693) ### 13.5.0 - self-closing components in translation strings should not attempt to replace the component's children [1695](https://github.com/i18next/react-i18next/issues/1695) ### 13.4.1 - types: use CustomInstanceExtenstions to extend reportNamespaces ### 13.4.0 - fix: separate cjs and mjs typings ### 13.3.2 - types: fix consider importing '\*.js' ### 13.3.1 - optimize defaultVariables feature introduced in last release ### 13.3.0 - Respect defaultVariables in the interpolation options [1685](https://github.com/i18next/react-i18next/issues/1685) ### 13.2.2 - Fix missing TransWithoutContext type [1672](https://github.com/i18next/react-i18next/pull/1672) ### 13.2.1 - types: Allow iterable ReactI18NextChildren as children [1669](https://github.com/i18next/react-i18next/pull/1669) ### 13.2.0 - Don't use defaults prop as default key [1664](https://github.com/i18next/react-i18next/pull/1664) ### 13.1.2 - postpone usage of newer ES syntax ### 13.1.1 - Render all children regardless of type when using i18nIsDynamicList prop [1661](https://github.com/i18next/react-i18next/pull/1661) ### 13.1.0 - Fix non-list dynamic content in Trans component [1660](https://github.com/i18next/react-i18next/pull/1660) ### 13.0.3 - fix unescape is not consistently called for all values [1657](https://github.com/i18next/react-i18next/issues/1657) ### 13.0.2 - export icu.macro [1652](https://github.com/i18next/react-i18next/issues/1652) ### 13.0.1 - types: Fix performance issue in Trans component [1646](https://github.com/i18next/react-i18next/pull/1646) ### 13.0.0 - Update types to support t function redesign [1615](https://github.com/i18next/react-i18next/pull/1615) - requires i18next >= v23.0.1 ### 12.3.1 - optimization for optional lng prop for useTranslation, should now prevent missings when lazy loading translations [1637](https://github.com/i18next/react-i18next/issues/1637) ### 12.3.0 - optional lng prop for useTranslation (helping on server side [1637](https://github.com/i18next/react-i18next/issues/1637)) ### 12.2.2 - try to fix conditional exports in package.json ### 12.2.1 - type fix: the type of defaultNS in I18nextProvider should support string[] [1633](https://github.com/i18next/react-i18next/pull/1633) ### 12.2.0 - if defaultValue is passed in not ready t functio (via useTranslation) return that instead of the key, even though the user-land could should be fixed [1618](https://github.com/i18next/react-i18next/issues/1618) ### 12.1.5 - fix react merged types [1606](https://github.com/i18next/react-i18next/pull/1606) originally introduced with #1531 to address #1506 ### 12.1.4 - fix crash in gatsby [1594](https://github.com/i18next/react-i18next/issues/1594) ### 12.1.3 - fix fallback of t function in Trans component ### 12.1.2 - fix crash in gatsby [1594](https://github.com/i18next/react-i18next/issues/1594) ### 12.1.1 - fix for node resolution [1589](https://github.com/i18next/react-i18next/issues/1589) ### 12.1.0 - context-less version of Trans component to be used for environments without react context [1588](https://github.com/i18next/react-i18next/pull/1588) ### 12.0.0 - Update t function types to rely on types coming from i18next [1501](https://github.com/i18next/react-i18next/pull/1501) ### 11.18.6 - types: nsMode [1554](https://github.com/i18next/react-i18next/issues/1554) ### 11.18.5 - support unescaping forward slash [1548](https://github.com/i18next/react-i18next/pull/1548) ### 11.18.4 - fix: reset t when keyPrefix is updated [1544](https://github.com/i18next/react-i18next/pull/1544) ### 11.18.3 - types: bindI18n option for UseTranslationOptions ### 11.18.2 - more html entities to unescape by default [1538](https://github.com/i18next/react-i18next/pull/1538) ### 11.18.1 - types: allow iterable with objects as children [1531](https://github.com/i18next/react-i18next/pull/1531) ### 11.18.0 - ability to add custom unescape function [1529](https://github.com/i18next/react-i18next/pull/1529) ### 11.17.4 - fix: UMD build [1527](https://github.com/i18next/react-i18next/issues/1527) ### 11.17.3 - style: explicit React imports [1525](https://github.com/i18next/react-i18next/pull/1525) ### 11.17.2 - reset t if ns changes in useTranslation [1518](https://github.com/i18next/react-i18next/pull/1518) ### 11.17.1 - Stricter typescript type for Trans components prop [1516](https://github.com/i18next/react-i18next/pull/1516) ### 11.17.0 - Add support for keyPrefix in withTranslation [1512](https://github.com/i18next/react-i18next/pull/1512) ### 11.16.11 - types: fix Translation component types regression [1511](https://github.com/i18next/react-i18next/pull/1511) ### 11.16.10 - types: translation component types [1509](https://github.com/i18next/react-i18next/pull/1509) ### 11.16.9 - types: fix missing generic type for HTMLAttributes [1499](https://github.com/i18next/react-i18next/pull/1499) ### 11.16.8 - types: fix Trans component to support react 18 types, by introducing allowObjectInHTMLChildren TS option [1492](https://github.com/i18next/react-i18next/pull/1492) ### 11.16.7 - types: Added objects explicitly to Trans children [1486](https://github.com/i18next/react-i18next/pull/1486) ### 11.16.6 - fix: warn just once 'i18n.languages were undefined or empty' and return true, like before ### 11.16.5 - types: ReactNode should be prefixed with React [1481](https://github.com/i18next/react-i18next/pull/1481) ### 11.16.4 - fix type 'TFunctionResult' is not assignable to type 'ReactNode' on React 18 [1480](https://github.com/i18next/react-i18next/pull/1480) ### 11.16.3 - types: children fix for React v18 [1478](https://github.com/i18next/react-i18next/pull/1478) - fix: apply [same fix](https://github.com/i18next/i18next/commit/0dcf7fdede9d58e16f82179b41b09f10eda5aeea) for local hasLoadedNamespace function ### 11.16.2 - update macro to wrap defaults in brackets when necessary [1472](https://github.com/i18next/react-i18next/pull/1472) ### 11.16.1 - types: for context prop of Trans component ### 11.16.0 - fix: transSupportBasicHtmlNodes for keepArray check [1470](https://github.com/i18next/react-i18next/pull/1470) - feat: add context prop to Trans component [1464](https://github.com/i18next/react-i18next/issues/1464) ### 11.15.7 - types: add nsSeparator to CustomTypeOptions [1471](https://github.com/i18next/react-i18next/pull/1471) ### 11.15.6 - fix error for typescript 4.6 [1453](https://github.com/i18next/react-i18next/pull/1463) ### 11.15.5 - types: fix never return type when using plurals [1453](https://github.com/i18next/react-i18next/pull/1453) ### 11.15.4 - types: add values field to Plural component in macros [1446](https://github.com/i18next/react-i18next/pull/1446) ### 11.15.3 - types: fix for issue introduced with type extension for react-native [1436](https://github.com/i18next/react-i18next/pull/1436) ### 11.15.2 - types: TypeScript interface for the Trans component does now accept react-native props [1418](https://github.com/i18next/react-i18next/pull/1418) ### 11.15.1 - add missing types for shouldUnescape and useTranslation [1429](https://github.com/i18next/react-i18next/pull/1429) ### 11.15.0 - option to unescape html in Trans [1426](https://github.com/i18next/react-i18next/pull/1426) ### 11.14.3 - types: remove undefined from conditional type [1410](https://github.com/i18next/react-i18next/pull/1410) ### 11.14.2 - Add type-safe support to deep keyPrefix [1403](https://github.com/i18next/react-i18next/pull/1403) ### 11.14.1 - Rollback [1402](https://github.com/i18next/react-i18next/pull/1402): Remove generics from Trans component to suppress warning issue [1400](https://github.com/i18next/react-i18next/pull/1400) ### 11.14.0 - Remove generics from Trans component to suppress warning issue [1400](https://github.com/i18next/react-i18next/pull/1400) - Add type support to plurals [1399](https://github.com/i18next/react-i18next/pull/1399) ### 11.13.0 - feat(types): add type-safe support to keyPrefix option [1390](https://github.com/i18next/react-i18next/pull/1390) - feat(types): allow key separator augmentation [1367](https://github.com/i18next/react-i18next/pull/1367) ### 11.12.0 - feature: add key prefix support to useTranslation hook [1371](https://github.com/i18next/react-i18next/pull/1371) ### 11.11.4 - typescript: add returnNull and returnEptyString options to TypeOptions interface [1341](https://github.com/i18next/react-i18next/pull/1341) ### 11.11.3 - Trans: parse first, then interpolate [1345](https://github.com/i18next/react-i18next/pull/1345) ### 11.11.2 - feat(typings): support readonly namespaces in TFuncKey [1340](https://github.com/i18next/react-i18next/pull/1340) ### 11.11.1 - feat(types): allow readonly namespaces in useTranslation [1339](https://github.com/i18next/react-i18next/pull/1339) ### 11.11.0 - introduce `CustomTypeOptions` type definition and deprecate the `Resources` type definition [1328](https://github.com/i18next/react-i18next/pull/1328) ### 11.10.0 - add transWrapTextNodes option [1324](https://github.com/i18next/react-i18next/pull/1324) to prevent a well-known Google Translate issue with React apps [1323](https://github.com/i18next/react-i18next/issues/1323), thanks to [feross](https://github.com/feross) ### 11.9.0 - typescript/icu macro: add new syntax for interpolation of complex types [1316](https://github.com/i18next/react-i18next/pull/1316) -> [docs for template usage](https://react.i18next.com/misc/using-with-icu-format#tagged-template-for-icu) ### 11.8.15 - ignore null children in Trans component [1307](https://github.com/i18next/react-i18next/issues/1307) ### 11.8.14 - update html-parse-stringify to fix uppercase elements in Trans component [1304](https://github.com/i18next/react-i18next/issues/1304) ### 11.8.13 - Replace html-parse-stringify2 with html-parse-stringify [1283](https://github.com/i18next/react-i18next/pull/1283) to prevent [CVE-2021-23346](https://github.com/i18next/react-i18next/issues/1275) ### 11.8.12 - refactor: remove unneeded object [1286](https://github.com/i18next/react-i18next/pull/1286) ### 11.8.11 - typescript: Bug fixes [1284](https://github.com/i18next/react-i18next/pull/1284) ### 11.8.10 - typescript: Move type definition files [1276](https://github.com/i18next/react-i18next/pull/1276) ### 11.8.9 - Fix allow to replace i18n in provider with useTranslation hook [1273](https://github.com/i18next/react-i18next/pull/1273) ### 11.8.8 - typescript: Allow `TFuncKey` to be used without specifying the namespace, in the same way TFunction and useTranslation work [1262](https://github.com/i18next/react-i18next/pull/1262) ### 11.8.7 - warning for old wait usage ### 11.8.6 - typescript: Updated TS definitions (adding useSuspense option in TranslationProps) [1247](https://github.com/i18next/react-i18next/pull/1247) ### 11.8.5 - typescript: fix: Inference for specific keys ts 4.1 [1230](https://github.com/i18next/react-i18next/pull/1230) ### 11.8.4 - typescript: Add workaround to suppress infinite instantiation warning [1227](https://github.com/i18next/react-i18next/pull/1227) - typescript: withTranslation() typing fix for defaultProps [1226](https://github.com/i18next/react-i18next/pull/1226) - typescript: Accept const components prop for Trans [1224](https://github.com/i18next/react-i18next/pull/1224) ### 11.8.3 - Fix: Return type inference for t function (typescript 4.1) [1221](https://github.com/i18next/react-i18next/pull/1221) ### 11.8.2 - fix: type definitions for typescript 4.1 [1220](https://github.com/i18next/react-i18next/pull/1220) ### 11.8.1 - fix: typescript definitions for t function without namespaces [1214](https://github.com/i18next/react-i18next/pull/1214) ### 11.8.0 - typescript: Make the translation function fully type-safe [1193](https://github.com/i18next/react-i18next/pull/1193) - trans should work with misleading overloaded empty elements in components [1206](https://github.com/i18next/react-i18next/pull/1206) ### 11.7.4 - fixes passing interpolations options via Trans components tOptions prop [1204](https://github.com/i18next/react-i18next/pull/1204) ### 11.7.3 - Avoid redundant re-rendering in I18nextProvider [1174](https://github.com/i18next/react-i18next/pull/1174) ### 11.7.2 - Avoid setState while react is rendering [1165](https://github.com/i18next/react-i18next/pull/1165) ### 11.7.1 - typescript: fix: typescript definition of context object [1160](https://github.com/i18next/react-i18next/pull/1160) ### 11.7.0 - Trans interpolating self-closing tags in components prop(object) [1140](https://github.com/i18next/react-i18next/pull/1140) ### 11.6.0 - Trans allow components props to be an object containing named interpolation elements ### 11.5.1 - providing filename when running babel.parse in icu.macro [1133](https://github.com/i18next/react-i18next/pull/1133) ### 11.5.0 - Trans: merge option in mapAST [1120](https://github.com/i18next/react-i18next/pull/1120) ### 11.4.0 - Add sideEffects false to package json to allow tree shaking [1097](https://github.com/i18next/react-i18next/pull/1097) ### 11.3.5 - fix returning defaultValue for Trans component [1092](https://github.com/i18next/react-i18next/pull/1092) ### 11.3.4 - [useTranslation] Avoid setting the new `t` function if the component is unmounted. (1051)[https://github.com/i18next/react-i18next/pull/1051] ### 11.3.3 - fixes copying ns in useSSR ### 11.3.2 - typescript: Add optional defaultN [1050](https://github.com/i18next/react-i18next/pull/1050) ### 11.3.1 - typescript: Translation component's ready parameter is missing in TypeScript definition [1044](https://github.com/i18next/react-i18next/pull/1044) - change hook condition in Trans to equal useTranslations implementation ### 11.3.0 - useSSR: add namespaces to init options options.ns [1031](https://github.com/i18next/react-i18next/issues/1031) - typescript: Fix the type of the components props of Trans [1036](https://github.com/i18next/react-i18next/pull/1036) ### 11.2.7 - typescript: Allow ComponentType for Trans' `parent` type [1021](https://github.com/i18next/react-i18next/pull/1021) ### 11.2.6 - typescript: Allow html props on Trans, fix `parent` prop type [1019](https://github.com/i18next/react-i18next/pull/1019) ### 11.2.5 - handle array fallback on wrongly configured app ;) [1010](https://github.com/i18next/react-i18next/pull/1010) ### 11.2.4 - typescript: Extend withTranslation tests to include optional props [1009](https://github.com/i18next/react-i18next/pull/1009) ### 11.2.3 - Store should be initialized after useSSR [1008](https://github.com/i18next/react-i18next/pull/1008) ### 11.2.2 - Only pass forwardedRef to children if options.withRef is false [999](https://github.com/i18next/react-i18next/pull/999) ### 11.2.1 - remove used jsx in withTranslation to avoid issues while compiling [994](https://github.com/i18next/react-i18next/pull/994) ### 11.2.0 - withTranslation allow not only passing a ref with option withRef but also passing a forwardedRef from outside as props (before forwardedRef was only added to wrapped component if the withRef option was set) [992](https://github.com/i18next/react-i18next/pull/992) ### 11.1.0 - Update `rollup.config.js` for IE11 Transpilations [988](https://github.com/i18next/react-i18next/pull/988) ### 11.0.1 - typescript: Use updated ts export default from i18next [984](https://github.com/i18next/react-i18next/pull/984) ### 11.0.0 - **Breaking** based on i18next changes made in [v18.0.0](https://github.com/i18next/i18next/blob/master/CHANGELOG.md#1800) changing the language should not trigger a Suspense anylonger. The state will be ready and `t` bound to the previous language until `languageChanged` get triggered -> this results in a nicer experience for users (no flickering Suspense while changing the language). Based on issue "Suspence is fired during lang change when useTranslation called in between" [975](https://github.com/i18next/react-i18next/issues/975) - the default bindI18n is now `languageChanged` and `languageChanging` was removed from that default - Adding `languageChanging` to bindI18n will bring back old behaviour where a language change will trigger a Suspense / ready: false while loading those new translations - You can now override the defaults in i18next.options.react for `bindI18n`, `bindI18nStore` and `useSuspense` in the hook by `useTranslation(ns, { bindI18n, bindI18nStore, useSuspense})` or in the HOC by passing those as props. ### 10.13.2 - typescript: Add t function to TransProps types [969](https://github.com/i18next/react-i18next/pull/969) - lint: Fix linter errors [966](https://github.com/i18next/react-i18next/pull/966) ### 10.13.1 - avoid conditional hook call in edge case (was only issue in wrong setup useContext outside I18nextProvider) [951](https://github.com/i18next/react-i18next/pull/951) ### 10.13.0 - also use count from `values` object passed to Trans if passed - else use the one on props [947](https://github.com/i18next/react-i18next/pull/947) ### 10.12.5 - typescript: Update types for reportNamespaces [945](https://github.com/i18next/react-i18next/pull/945) - typescript: Improve withSSR type definition [943](https://github.com/i18next/react-i18next/pull/943) ### 10.12.4 - ICU: Fixes macro to support count prop and expressions better [939](https://github.com/i18next/react-i18next/pull/939) ### 10.12.3 - avoid conditional hook call in edge case (wrong setup) [935](https://github.com/i18next/react-i18next/pull/935) ### 10.12.2 - Trans: do not replace html tags in translation strings that are not in the transKeepBasicHtmlNodesFor array [919](https://github.com/i18next/react-i18next/issues/919) ### 10.12.1 - Set ready flag to false when i18n instance has not been initialised [918](https://github.com/i18next/react-i18next/pull/918) ### 10.12.0 - fix / extend icu.macro: ICU: Trans macro will parse defaults as alternate to children [917](https://github.com/i18next/react-i18next/pull/917) ### 10.11.5 - typescript: fix types for use() [912](https://github.com/i18next/react-i18next/pull/912) ### 10.11.4 - assert edge case trans component get set a key - assert context get destructed of empty object if context gets used falsely on a component got pulled out of main tree from react-portal or similar ### 10.11.3 - only apply initial values in useSSR, withSSR on i18next instances not being a clone (eg. created by express middleware on server) ==> don't apply on serverside ### 10.11.2 - Reload translations whenever namespaces passed to useTranslation() change [878](https://github.com/i18next/react-i18next/pull/878) ### 10.11.1 - fixes a regression in Trans component taking namespace from passed t function [867](https://github.com/i18next/react-i18next/issues/867#issuecomment-502395958) ### 10.11.0 - Restore support passing the defaultNS via I18nextProvider prop [860](https://github.com/i18next/react-i18next/pull/860) ### 10.10.0 - HOC: expose wrapped component as WrappedComponent property [853](https://github.com/i18next/react-i18next/pull/853) ### 10.9.1 - Fix useEffect mount/unmount usage [852](https://github.com/i18next/react-i18next/pull/852) ### 10.9.0 - trigger suspense on languageChanging by add listening to that event too (new in i18next@15.1.0) - if you do not like this behaviour of suspending during languageChange - remove it from bindI18n ### 10.8.1 - expose context [829](https://github.com/i18next/react-i18next/pull/829) ### 10.8.0 - Support taking values for interpolation not only from content but the props count, values too: Replace count prop from in translation string automatically [826](https://github.com/i18next/react-i18next/issues/826) ### 10.7.0 - brings back nsMode=default|fallback [822](https://github.com/i18next/react-i18next/pull/822) - typescript: Add missing type definition for withTranslation options [821](https://github.com/i18next/react-i18next/pull/821) ### 10.6.2 - Fix Trans component ignore default options [818](https://github.com/i18next/react-i18next/pull/818) ### 10.6.1 - useTranslation useEffect also guard against unmounted for bound events...seems unmount and actual call to useEffect cleanup are not in correct order (component is first unmounted and then unbound - should be vice versa) ### 10.6.0 - use forwardRef for withTranslation [802](https://github.com/i18next/react-i18next/pull/802) - fixes Translation reset after component is unmounted with useTranslation [801](https://github.com/i18next/react-i18next/issues/801) ### 10.5.3 - Fix the displayName of HOC components [798](https://github.com/i18next/react-i18next/pull/798) ### 10.5.2 - fixes: transSupportBasicHtmlNodes doesn't work with self-closing Trans [790](https://github.com/i18next/react-i18next/issues/790) ### 10.5.1 - ReferenceError: setImmediate is not defined [787](https://github.com/i18next/react-i18next/issues/787) ### 10.5.0 - Adding support for nested component inside Trans that are a list.map like `
    {['a', 'b'].map(item => (
  • {item}
  • ))}
` [784](https://github.com/i18next/react-i18next/pull/784) (Adding `