1、
现在中文版本的网站做好了,现在点击“english version”切换到英文版本,有什么好的思路?谢谢
用thinkphp做的后台,整个页面除了页脚的联系方式是写死的,菜单、新闻、内容全都是动态的,前台都是从数据库动态读取的
1、
现在中文版本的网站做好了,现在点击“english version”切换到英文版本,有什么好的思路?谢谢
用thinkphp做的后台,整个页面除了页脚的联系方式是写死的,菜单、新闻、内容全都是动态的,前台都是从数据库动态读取的
在每一个模块底下都配置一个lang-zh.php和一个lang-en.php,前端显示的关键性的文字都记录在里面。保存记住用户上次的选择,再去匹配不同lang文件里的内容
建议你还是用CMS重做吧,用thinkphp做很少会考虑周全的,现在的CMS已经考虑很周全了,例如多站,后台分级管理,SEO设置,varnish支持, page cache等。有不少是一个网站标配选项,但你可能都没考虑到,以后还是可能不断追加需求,你就需要反复去重构你的网站。最后可能用drupal搞两天就完成了。
仅多语言实现方式也有很多种,有按cookie的,有按域名的,有按URL二级目录的,有用标准翻译软件格式的,这些在drupal, joomla上只是选项切换就行了。要是你现在按cookie实现了,以后你客户要求用多语言域名,因为那个SEO好,那你就没办法马上实现,只能再重构。
以下是设计场景:
客户:听说多个域名实现多语言对SEO好,例如en.domain.com, cn.domain.com那样,这种多语言你实现出来吧
程序员:好的
(把网站重构为domain url切换语言方式)
程序员:做好了
客户:好吧,准备上线了。但域名还没有弄好,你先把它搞成URL二级目录吧,例如domain.com/en/和domain.com/cn/
程序员:好吧。。。
(修改程序中)
程序员:可以了
客户:我暂时还请不到人翻译英文,你还是先把多语言功能关了吧,不要带cn/后缀
(此时程序员的表情请自行联想)
用cookie保存用户选择的语言版本
如果是静态的文字内容可以分别保存在中文和英文的php文件里,通过配置文件或头部php读取cookie来加载不同语言的php文件.
动态内容在后台添加内容的时候就应该要求输入中文和英文的内容.
设置按钮带参数,get到英文就设置框架环境为英文并且设置cookie值,数据库存储两个版本,后端读取cookie名称,如果没有,读中文字段,如果有,读英文字段;其他的导航用语言包去实现。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
5 回答2k 阅读
3 回答1.5k 阅读✓ 已解决
把所有写死在代码中的涉及到切换语言的字符串提取成常量
把常量的定义放在单独的文件中,统一引用即可
例如