扫码关注官方订阅号
1、
现在中文版本的网站做好了,现在点击“english version”切换到英文版本,有什么好的思路?谢谢
用thinkphp做的后台,整个页面除了页脚的联系方式是写死的,菜单、新闻、内容全都是动态的,前台都是从数据库动态读取的
人生最曼妙的风景,竟是内心的淡定与从容!
把所有写死在代码中的涉及到切换语言的字符串提取成常量
把常量的定义放在单独的文件中,统一引用即可
例如
if ($lang === 'zh') { define('__DISPLAY_ACCOUNT_NAME__', '账户名称'); define('__DISPLAY_ORDER_NAME__', '订单名称'); // ... } else if ($lang === 'en') { define('__DISPLAY_ACCOUNT_NAME__', 'Account Name'); define('__DISPLAY_ORDER_NAME__', 'Order Name'); // ... }
在每一个模块底下都配置一个lang-zh.php和一个lang-en.php,前端显示的关键性的文字都记录在里面。保存记住用户上次的选择,再去匹配不同lang文件里的内容
在url上有区别就行吧。
可以用语言包吧
搞一个英文版的网站
当用户切换版本的时候,写入cookie,下次访问自动切换到上次用户的选择
比如上次我切换了英文,下次应让我自动访问英文版
参考php制作中英文两版网站比较方便的思路
建议你还是用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/后缀(此时程序员的表情请自行联想)
大部分的框架都有i18N实现的方案,给链接添加一个lang参数作为区分就好了。
用cookie保存用户选择的语言版本如果是静态的文字内容可以分别保存在中文和英文的php文件里,通过配置文件或头部php读取cookie来加载不同语言的php文件.动态内容在后台添加内容的时候就应该要求输入中文和英文的内容.
中英文内容分开录入。
同一个系统,区分不同的栏目就可以实现了
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
把所有写死在代码中的涉及到切换语言的字符串提取成常量
把常量的定义放在单独的文件中,统一引用即可
例如
在每一个模块底下都配置一个lang-zh.php和一个lang-en.php,前端显示的关键性的文字都记录在里面。保存记住用户上次的选择,再去匹配不同lang文件里的内容
在url上有区别就行吧。
可以用语言包吧
搞一个英文版的网站
当用户切换版本的时候,写入cookie,下次访问自动切换到上次用户的选择
比如上次我切换了英文,下次应让我自动访问英文版
参考php制作中英文两版网站比较方便的思路
建议你还是用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/后缀
(此时程序员的表情请自行联想)
大部分的框架都有i18N实现的方案,给链接添加一个lang参数作为区分就好了。
用cookie保存用户选择的语言版本
如果是静态的文字内容可以分别保存在中文和英文的php文件里,通过配置文件或头部php读取cookie来加载不同语言的php文件.
动态内容在后台添加内容的时候就应该要求输入中文和英文的内容.
中英文内容分开录入。
同一个系统,区分不同的栏目就可以实现了