我有一个完全用法语写的网站。我计划几个月后有一个英文版。一切正常,人们可以转换他们的语言,会话处理他们的语言。
问题是,现在我已经购买了一个与法国域名不同的域名,我猜它需要指向主机的同一个子域。
我想我需要做一些代码来检查域名,如果用户与英文用户一起来到服务器,将会话切换到英语语言,否则就使用法语。,我说错了吗?
我认为我会这样做,但网站的许多其他部分可能是完全不同的,如广告和图片。是处理多语言网站的最好方法是对这些广告和图片的语言进行许多比较?或者复制其他子域上的网站,并将新的域链接到新的文件夹(我真的认为从长远来看,复制将是最糟糕的)。
任何建议都是盲目的。
(这个问题中的两个问题都用粗体表示)
发布于 2010-01-02 18:57:57
我为支持多种语言而构建的每个站点都检测到用户的语言,然后将其存储在他们的会话信息中。如何检测他们的语言取决于你(从他们的IP,默认到语言,等等),但是要确保你为用户提供了一种简单的改变语言的方法。然后,根据会话信息,我们将更新站点副本(即,安装不同的翻译)、体验(例如,只显示来自该地区的产品或新闻故事)等等。
在不同的子域上拥有多个站点副本是一个可行的选择,尽管我不喜欢这样一个选项:您必须支持并发布到所有这些不同的域。
如果用户来自新域,也可以设置会话变量。只是让两个域名指向同一个地方。
发布于 2010-01-02 18:58:30
如果您所指的是一个新域名,请将其指向与第一个域相同的服务器,并在PHP脚本中进行语言检查(或任何必需的检查):
if ($_SERVER["HTTP_HOST"] == "my_first_domain_name.fr")
{ // use french site }
elseif ($_SERVER["HTTP_HOST"] == "my_second_domain_name.fr")
{ // use english site }您还可以考虑将法语内容拆分为一个名为/fr的目录和/en中的英语内容的解决方案。
发布于 2010-01-02 19:03:26
你应该尽可能少地重复。复制您的站点将导致未来的可维护性问题。
您可以将两个域名指向同一个服务器IP,并有条件服务器端代码来确定向用户提供哪些内容。
在PHP中,变量$_ server 'SERVER_ name‘使用来自客户端http请求的服务器名(例如'google.com')填充。
如果人们通过不同的域名访问相同的php脚本,您可以使用它的值来决定呈现哪些内容(例如,有一个html模板,并根据站点从数据库中填充相关内容)。
在广告方面,你也可以这样做。像谷歌广告这样的东西可能会帮你解决这个问题。
更广泛地说,我们在这里讨论的是虚拟主机。实现您所追求的目标有很多不同的方法,并且方法会根据问题、平台、托管约束等的具体情况而有所不同。
许多网站将默认的语言选择(以及广告、使用的货币等)建立在地的基础上,回到了默认的状态。
https://stackoverflow.com/questions/1992410
复制相似问题