关于用 flask 进行网页语言切换的问题

2015-10-27 13:47:02 +08:00
 aragakiiyui

问题是这样的:
我给网页做了两套前端页面,简体版的和繁体版的。我目前是想在登录页面给了一个语言选择的选项。然后将选则的值传到后端,后端根据这个值判断返回繁体或简体版视图,那么请问要如何传递这个值?我把这个存在 session 中合理吗?!

4213 次点击
所在节点    Python
17 条回复
onlyxuyang
2015-10-27 14:04:41 +08:00
用 post 或者 get 传啊 存 session 里我觉得 ok
tonic
2015-10-27 14:05:47 +08:00
合理啊
fy
2015-10-27 14:24:25 +08:00
合理 + 1 ,但为啥不用 i18n 之类的办法呢?
aragakiiyui
2015-10-27 15:16:46 +08:00
@fy 我稍微看了一下,貌似转繁体没这么容易啊。。繁体好坑爹啊。。。还不如做两套。。
strahe
2015-10-27 15:18:07 +08:00
@strahe i18n
aragakiiyui
2015-10-27 15:21:22 +08:00
@onlyxuyang
@tonic 下一步的话就是返回视图了,现在有两个方案:
第一是在每个 route 函数中进行语系判断,这样好麻烦,每个 route 都要改。
还有一个想法是通过装饰器来实现动态切换模版。现在我简体版的视图都是以 xxx.html 结尾返回,然后繁体版的视图都是以 xxx_tw.html 结尾。这个不知道有什么办法实现不?
junnplus
2015-10-27 15:53:17 +08:00
@aragakiiyui 装饰器+1
aragakiiyui
2015-10-27 16:03:01 +08:00
@junnplus 我想知道要怎么实现。。。。
junnplus
2015-10-27 16:20:32 +08:00
判 session 里面的语系,改 template 不就可以了么
tonic
2015-10-27 17:04:40 +08:00
@aragakiiyui 或者直接搞个新的 `render_template` 啊, 里面判断是什么语系就给什么模板加什么后缀, 然后调用普通的 `render_template`
wizardforcel
2015-10-27 17:32:41 +08:00
第一种实现方法是做两个 template 根据参数来渲染。

第二种是做两个字典 渲染的时候传其中一个进去 然后 template 里面不要硬编码 而是从字典里取
onlyxuyang
2015-10-27 20:06:59 +08:00
@aragakiiyui 能渲染好以后调用 google 翻译简转繁么 …… just kidding 2333333333
ericls
2015-10-28 05:03:43 +08:00
多语言问题 还是用 i18n + i10n 做吧!

flask-babel
MrGba2z
2015-10-28 06:39:40 +08:00
gaotongfei
2015-10-28 09:17:35 +08:00
楼上+1
aragakiiyui
2015-10-28 10:41:05 +08:00
@junnplus
@tonic 我有想过,但是并不是所有的 route 都要返回 template , 对于不同的请求,或者是 ajax 请求,返回的东西都是不一样的,同时可能一个 route 会返回不同的 template ,这样装饰器貌似有点难写,而且可能需要写多个不同的装饰器了。。。所以感觉很头疼。。。昨天要交货,目前是写了一个函数,在所有返回 templete 的地方都通过这个函数来判断 session ,然后返回 template....几乎所有视图要手动改啊。。。。心塞
junnplus
2015-10-28 11:43:55 +08:00
改 template 而不是返回 template

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/231421

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX