zhangyuang / ssr

A most advanced ssr framework support React17/React18/Vue2/Vue3 on Earth that implemented serverless-side render specification.
http://doc.ssr-fc.com/
MIT License
2.59k stars 283 forks source link

如何实现路由多语言 #193

Closed zivenday closed 2 years ago

zivenday commented 2 years ago

比如法语有一个法语后缀https://zfletch.github.io/react-router-i18n/fr/

类似像https://zfletch.github.io/react-router-i18n/pig/

一种是复制一套代码放在对应语言的文件夹下。 这样的话就是如果多套语言,就有多套前端代码。

能不能共用一套代码

zhangyuang commented 2 years ago

为什么要复制代码啊,直接/:language在前端组件里处理就行了啊

zivenday commented 2 years ago

为什么要复制代码啊,直接/:language在前端组件里处理就行了啊 比如说/fr/detail/123,/zh/detail/124,怎么搞 $langrender$id.ts 不行

有具体的例子吗

zhangyuang commented 2 years ago

你自己在业务代码里控制渲染同一个子组件就行了

发自我的iPhone

------------------ 原始邮件 ------------------ 发件人: zivenday @.> 发送时间: 2022年4月19日 08:01 收件人: zhangyuang/ssr @.> 抄送: yuuang @.>, Comment @.> 主题: Re: [zhangyuang/ssr] 如何实现路由多语言 (Issue #193)

比如说/fr/detail/sdsfsd,/zh/detail/124

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

zhangyuang commented 2 years ago

/index/render$language$detail$chapters文件 对应 /:language/:detail/:chapters 路由

Joycezhangw commented 2 years ago

还要对不同的语言,获取不同的数据。也是通过 :language 来处理吗?

Phecda commented 2 years ago

如果想用类似苹果官网那种动态前缀该怎么办呢?

https://www.apple.com/imac-24/
https://www.apple.com/ca/imac-24/
https://www.apple.com/hk/imac-24/

===

/index/render$language$detail$chapters文件 对应 /:language/:detail/:chapters 路由

这个意思是用 index 的参数来实现动态前缀的效果吗?

zhangyuang commented 2 years ago

都可以呀。搞个 /:language/:detail/:chapters 对应的页面组件,或者搞一个/:language?/:detail/:chapters 这样的可选参数对应的页面组件。反正能让请求path有对应的页面组件就行了。再在这些页面组件里面去引入一些用于实现公用的国际化子组件

zhangyuang commented 1 year ago

搜文档

发自我的iPhone

------------------ 原始邮件 ------------------ 发件人: Joyce Zhang @.> 发送时间: 2022年6月15日 11:44 收件人: zhangyuang/ssr @.> 抄送: yuuang @.>, State change @.> 主题: Re: [zhangyuang/ssr] 如何实现路由多语言 (Issue #193)

还要对不同的语言,获取不同的数据。也是通过 :language 来处理吗?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you modified the open/close state.Message ID: @.***>