在php中完成多语言网站

时间:2012-07-25 01:54:58

标签: php mysql configuration internationalization

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

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

到目前为止我所做的是为主网站模板创建一个包含属性的表: 郎,标签,价值 在我的模板中,它将在lang和tag上进行匹配。

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

2 个答案:

答案 0 :(得分: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外键放在那里。你应该顺利去。

答案 1 :(得分:2)

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

然后使用POEditsimplepo等程序对语言文件进行实际编辑

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

您还可以查看Zend_Translate模块