【问题标题】:Complete multi language website in php用php完成多语言网站
【发布时间】:2012-07-23 09:45:41
【问题描述】:

我需要一个关于如何制作一个完整的多语言网站的想法。我遇到了很多方法,有些人使用 xml 文件来翻译模板位。如果我只想要主模板,这很有效。但即使是内容也会被翻译。

例如,我有一个新的英文条目,它应该被翻译成其他 4 种语言。大多数属性都很常见。

到目前为止,我通过为具有属性的主要网站模板创建一个表: 语言、标签、值 在我的模板中,它将匹配 lang 和 tag。

翻译网站其余部分的最佳方法是什么(使用mysql的动态php页面)

【问题讨论】:

    标签: php mysql configuration internationalization


    【解决方案1】:

    查看 gettext 扩展 - http://php.net/manual/en/book.gettext.php

    然后使用POEditsimplepo 之类的程序来进行语言文件的实际编辑

    IMO,这是我为多语言网站找到的最佳方式

    您也可以查看Zend_Translate 模块

    【讨论】:

    • 感谢您提供的链接,但它们应该基于数据库,为此我正在寻找一种方法来组织我的表结构。
    【解决方案2】:

    您需要如下语言的表格:

    CREATE TABLE `language` (
     `langid` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
     `language` varchar(35) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
     PRIMARY KEY (`langid`)
    ) ENGINE=InnoDB
    

    然后,例如,您有一个帖子表格,如下所示:

    CREATE TABLE `post` (
     `postid` int unsigned NOT NULL AUTO_INCREMENT,
     `langid` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
     `content` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
     `title` varchar(35) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
     PRIMARY KEY (`postid`)
    ) ENGINE=InnoDB
    

    在 post 表中,您需要像 langid 这样的键,它指的是语言表中的特定语言。在您的仪表板中,您将看到以下内容:
    每个文本框都指向该特定语言。
    您应该有另一个用于站点菜单的表,并将 langid 外键放在那里。你应该一切顺利。

    【讨论】:

    • 我在哪里为每个帖子存储不同的语言?我认为这是我的主要问题。我已经创建了表格帖子。但我创建了所有语言的 post_lan 表。但现在我对每种语言都有不同的 id,我正在为此寻求最佳实践。
    • @fawzib,在 post 表本身中,您将有一个指向语言的 langid。在答案中,您可以看到我添加了 langid。它指的是语言。
    • 如何在所有语言中保持相同的帖子 ID。它曾经基于自动增量。稍后我将对 postid + langid 进行查询。这将允许我根据 id 在语言之间切换。
    • @fawzib,你需要一个连接表。在联结表中,您需要存储title,content,pid,langid。在 post 表中,您会将所需的所有数据保留为datepidviewscomment_no 等。现在,如果您想获取特定语言的特定帖子,您需要加入表 postjunction_post_lang
    • 这看起来不错,我只有一个问题。如果您创建一个新的帖子/内容,由于内容和语言将在不同的表中,它将如何成为 INSERT?在这种情况下,拥有 eng_content 和 fre_content 的 1 个表不是更合乎逻辑吗???
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-27
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    相关资源
    最近更新 更多