系统设计-大家对于网站多语言版本是什么解决方案

发布于 2016-12-05 09:28:08 字数 385 浏览 1526 评论 3

可能重复的问题
在PHP项目中如何简易、高效的实现网站多语言

1.解决方案1。傻瓜式, 两套程序两套数据库或者一个数据库里面通过表名标识英文版表
2.解决方案2. 一套程序(通过配置文件) 一个数据库 中英文版同一个数据库表(字段会超级多)
3.解决方案3. 二套程序,一个数据库 中英文版同一个数据库表(字段会超级多)

方案1,不太利于全局搜索。
方案2,字段会超级多,逻辑处理也会超级多,速度不太清楚
方案3,数据库处理方面也挺麻烦的

大家是采用什么方法去解决的,讨论学习下。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

瑾兮 2017-09-13 10:26:06

界面还是内容呢
界面的好解决

内容的 就要好好设计下 表结构 我之前实现的时候 是按着 类似多用户博客系统那样来设计的 不同的语言 就当成是不同的用户

这样 只需要顶层一个 sid 可以自由在内容之间做切换 缺点就是 不同版本之间难共享数据

这应该是最简单的方式

晚风撩人 2017-06-09 22:04:32

如果只是涉及国际化(i18n)而不考虑本地化(l12n),所谓的多语言应该首先分成两部分

界面级别的多语言
内容级别的多语言

界面级别的多语言,即是处理页面上的标签,静态文本等不经常变更或者不会被用户编辑的内容。

常见的解决方案是构建翻译库,每个库按语种不同分别存放。

翻译库可以用数据库储存,但建议用gettext或者Tmx这些成熟的方案。

然后在模板里加入翻译函数,查询翻译库并显示翻译结果即可,这里可以辅助缓存提高效率。

只是可能会遇到我提出的混写html/模板函数的问题

内容级别的多语言,即用户输入的内容、文章,根据用户使用语言不同,需要标记语种。

一般需要根据实际情况选择方案,比如Blog系统,可以在Blog表中增加一个字段标记语种,然后按语种分表或者分区,@刘同虎 所担心的不利于全局搜索的问题实际上基本不会有影响,一般来说英文用户是不会去搜索中文内容的。

想挽留 2017-04-16 11:42:37

我们做php多语言是把语言库文件分成不同的目录,但是文件名是一样的,在客户端调用时传过来语种,我们根据语种在。

if(trim($language) == 'English'){
$this->includeLocaleFiles('eng');
$this->includeLocaleFiles('eng','/locale.php');
}else{
$this->includeLocaleFiles('chi');
$this->includeLocaleFiles('chi','/locale.php');

}
加载 文件

这样就动态显示

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文