【发布时间】:2019-04-12 05:29:19
【问题描述】:
我有一个多语言 React 应用程序,它需要以基于当前路径名的语言呈现内容。
例如:
www.englishwebsite.com -> 以英语呈现应用程序
www.frenchwebsite.com -> 以法语呈现应用程序
为了实现这一点,我试图在一个类中获取当前路径名;但这一直失败或给我一个未定义的。在我的代码中,我目前没有看到我尝试过的内容的视觉进展,但我确实尝试找到一种方法来获取道具甚至'location.pathname'。
另外,这是呈现不同语言的正确方法吗?请记住,我是 React 新手。
一个简单的例子
App.js
class App extends Component {
render() {
return (
<BrowserRouter>
<div className='App'>
<Route exact path='/' component={Home} />
</div>
</BrowserRouter>
);
}
}
Home.js
import React, { Component } from 'react';
export class Home extends Component {
render () {
return (
<div className='homecontent'>
<div>
// if site url is www.englishwebsite.com
English content
// else if site url is www.frenchwebsite.com
French content
</div>
</div>
);
}
【问题讨论】:
-
提示:
window.location.host的测试值。pathname在.com之后开始 -
我会使用模板而不是这种方法。让用户选择一种语言。用
[[[my text]]]包围您的静态文本,并使用不同的模板根据语言切换文本。 -
谢谢@charlietfl。成功了!
-
@OrthoHomeDefense 我也要试试你的答案,谢谢!
-
随时!有一些图书馆可以为你做这件事,让你的生活更轻松。我不记得他们的名字对不起。使用模板并动态切换它们允许您编写组件,而无需在每个组件内进行任何渲染逻辑。如果你有数百个会很麻烦,如果你不得不改变它们呢?
标签: javascript reactjs class jsx