Get current language next-i18next Get current language next-i18next reactjs reactjs

Get current language next-i18next


withTranslation injects the i18n object.

import {withTranslation}  from '../config/next-i18next';const Home = function Home({ i18n }) {  return (<div>{i18n.language}</div>)  // ----------------^};Home.getInitialProps = async () => {  return {namespacesRequired: ['home']}};export default withTranslation('home')(Home);

Or using Hooks,

import {useTranslation}  from '../config/next-i18next';const Home = function Home() {  const { i18n } = useTranslation('home');  return (<div>{i18n.language}</div>)  // ----------------^};Home.getInitialProps = async () => {  return {namespacesRequired: ['home']}};export default Home;


With Next.js you could also use the useRouter hook.

import {withTranslation}  from '../config/next-i18next';import { useRouter } from 'next/router'const Home = function Home() {const router = useRouter()const currentLang =  router.locale // => locale string eg. "en"  return (<div>test</div>)};Home.getInitialProps = async () => {  return {namespacesRequired: ['home']}};export default withTranslation('home')(Home);