0

그래서 큰 기존 응용 프로그램을 React로 변환하려고합니다. 우리의 지역화 된 내용은 다음과 같이이다 :반응 라우터가있는 현지화 된 하위 경로?

www.website.com/about  // english 
www.website.com/es/about // spanish 
www.website.com/de/about // german 

그래서 나는 각 로케일에 대한 경로를 선언 할 필요가,이 같은 가정

<Route path='/' component={App} /> 
<Route path='/es' component={App} /> 
<Route path='/de' component={App} /> 

이 일을 더 간결한 방법이 있는지 궁금하고, 그래도?

또한, 나는, 예를 기본 경로를 존중하는 모든 링크를 싶습니다 : 사용자의 로케일이 스페인어의 경우

<Link to='/inbox' /> 

자동 /es/inbox에 갈 것입니다. 이 작업을 수행하기위한 기존의 또는 일반적인 방법이 있어야합니까?

답변

1

반응 라우터에서 params를 사용할 수 있습니다. 그래서 뭔가가

<Route path='/:language' component={App} /> 

이렇게 구성 요소에 액세스 할 수 있습니다 this.props.params.language는 어떤 것이 탐색됩니다. 구성 요소에 당신이 그 논리

+0

네, 저는 이것을 고려하고있었습니다. 이 문제는 분명히 js와 css가 동일한 위치에서 호스팅되어 있으므로'www.website.com/dist/bundle.js '를 얻으려고하면'/ dist'가 로켈로 해석됩니다. –

+0

어떤 서버를 사용하고 있는지 잘 모르겠지만 정적 콘텐츠 URL이 경로 일치 코드에 도달하지 않는 방식으로 정적 콘텐츠를 제공해야합니다. –

-1

한 가지 방법

를 처리 할 수 ​​있도록 locale을 유지 또는 뭔가 다른 language PARAMS에 대한 route 정적 수 있습니다.

www.website.com/locale/en/about // english 
www.website.com/locale/es/about // spanish 
www.website.com/locale/de/about // german 

그리고 경로 이런 식으로 뭔가있을 것 같은 예를 들어

귀하의 링크가 될 것입니다.

<Route path='/locale'/> 
    <Route path='en' component={App} /> 
    <Route path='es' component={App} /> 
    <Route path='de' component={App} /> 
</Route> 
+0

어리석은 해결책 인 SEO 관점에서. –

+0

그런 경우'www.website.com/dist/bundle.js'를'www.website.com/dist/js/bundle.js' 또는 다른 것으로 이동하십시오. 그리고 언어를'/ : language' (직접 매개 변수)로 유지하십시오. –