首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取当前语言next-i18next

获取当前语言next-i18next
EN

Stack Overflow用户
提问于 2020-06-07 16:46:16
回答 2查看 15.6K关注 0票数 13

我正在使用带有next-i18next的NextJS。这是我的主页:

代码语言:javascript
复制
import {withTranslation}  from '../config/next-i18next';

const Home = function Home() {
  return (<div>test</div>)
};

Home.getInitialProps = async () => {
  return {namespacesRequired: ['home']}
};

export default withTranslation('home')(Home);

我想要的是在组件/页面中使用当前的语言,我该怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2020-06-11 02:42:36

withTranslation注入i18n对象。

代码语言:javascript
复制
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);

或者使用Hooks,

代码语言:javascript
复制
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;
票数 14
EN

Stack Overflow用户

发布于 2021-05-05 23:51:22

对于Next.js,您还可以使用useRouter挂钩。

代码语言:javascript
复制
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);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62242963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档