2012-07-25 123 views
2

我需要一个关于如何建立一个完整的多语言网站的想法。我遇到过很多方法,一些有一个xml文件来转换模板位。这工作,如果我只想要主模板。但即使内容将被翻译。完整的多语言网站在php

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

到目前为止我所做的是通过创建主要网站模板的属性表: lang,tag,value 在我的模板中,它将对lang和tag进行匹配。

什么是该网站的其他部分转换的最佳方式(使用MySQL的动态PHP页面)

回答

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 

在后的表,你需要一个像langid的关键,这是指在语言表的特定语言。在您的仪表板中,您将拥有如下所示的内容:
enter image description here 每个文本框都指向该特定语言。
你应该有另一个网站的菜单表,并把langid外键在那里。你应该顺利的。

+0

我在哪里为每个帖子存储不同的语言?我认为这是我的主要问题。我已经创建了表格文章。但我创建了所有语言的post_lan表。但现在我对每种语言都有不同的ID,我正在为此寻求最佳做法。 – fawzib 2012-07-25 03:51:42

+0

@fawzib,在邮件列表中你会看到一个反映该语言的langid。在答案中,你可以看到我添加了langid。它是指语言。 – ALH 2012-07-25 17:58:49

+0

我如何保持相同的帖子id在所有语言中都是一样的。它曾经是基于自动增量的。稍后我会对postid + langid进行查询。这将允许我在基于id的语言之间切换。 – fawzib 2012-07-26 10:35:52

2

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

然后使用一个程序像POEditsimplepo做语言文件的实际编辑

IMO,这是我已经找到了一个多语种的网站

的最佳方式

您还可以查看Zend_Translate模块

+0

感谢您的链接,但他们应该基于数据库,我正在寻求一种方法来组织我的表结构。 – fawzib 2012-07-25 03:49:01