【问题标题】:multilingual PHP - best way to detect visitor's language and direct to content多语言 PHP - 检测访问者语言并直接访问内容的最佳方法
【发布时间】:2012-05-02 22:47:18
【问题描述】:

How can I make multi-language website? 在这个 url 中有一些信息,但是关于多语言的信息不是很清楚。

我们想用 php 建立一个多语言网站。我们有文章、菜单、书籍和更多表格

所有表都将有多语言无限语言,我们将在数据库中分配语言。然后新语言将显示在插入表单中,如

Insert Article

tab-English / tab-France / tab-Bengali /....etc

我是这样想的。

语言

id_language
language_name

文章 - 表格

id_article
date

article_language

id_article_language
id_article
id_language
article_title
article_description

所以当我为表格启用新语言时,右侧会出现一个选项卡 并且查询字符串将显示为 ln=English,因此它将在文章中插入英语语言数据。

有没有人知道如何管理这个多语言网站。

【问题讨论】:

    标签: php multilingual


    【解决方案1】:

    看来您的数据库端工作得很好。对我来说看起来不错。

    在客户端,您不需要将语言附加到查询字符串中。这为您创建了更多工作,因为您需要将该查询字符串动态附加到每个链接,因为每个站点的查询字符串都会有所不同。

    有些网站使用顶级目录,如 http://www.example.com/en/http://www.example.com/de/,但我认为最好的方法是购买国家代码 TLD (ccTLDs),这样您网站的不同语言将位于不同的域中: www.google.comwww.google.com.eswww.google.de。然后,您可以使用HTTP Accept-Language header 来确定要重定向到哪个域。你可以使用PHP之类的语言来parse a user's Accept-Language header

    为了您的理智,我鼓励在查询字符串上使用 ccTLD 或顶级目录,同时也使搜索引擎上的事情变得更容易。有些蜘蛛无法理解查询字符串中的ln=en 与返回的语言之间的相关性。使用 ccTLD 会在您没有任何干预的情况下通知蜘蛛,内容正在以特定语言提供特定语言环境。

    这提醒了我,您还应该在回复中提供正确的 HTTP Content-Language header。在 php 中,它看起来像:

    header('Content-Language: en-US'); //or en-GB, or es-ES
    

    您可以使用任何符合RFC1766country codes

    编辑:正如@RepWhoringPeeHaa 指出的,您也可以specify the language in the <head> tag of all of your HTML files 使用:

    <META HTTP-EQUIV="Content-Language" Content="en" />
    

    【讨论】:

    • 别忘了您也可以在 HTML 中添加语言。
    • @RepWhoringPeeHaa 对!忘了那个。我已经编辑并添加了一点点。谢谢!
    猜你喜欢
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多