多语言网站

时间:2011-06-30 20:32:01

标签: php zend-framework

我有一个包含2种语言文本的网站。我应该如何在页面之间进行操作,以便从他点击的位置改变他将看到的语言,并且当他点击另一种语言时,它会改变回来?

一个选项是当用户点击链接更改语言时,我会将其存储到会话中并使用它。但我听说它不适合搜索引擎。

第二种选择是通过URL将语言变量传递给每个页面。

第三种选择是巧妙地使用zend扩展能力。

(使用PHP + Zend Framework)。 SEO对我来说非常重要。

编辑: 站点中的文本(以及多种语言)由管理员输入。它现在可以使用我创建的语言对象,并选择管理员在每个对象中添加文本。因此,当我进入第一页(其中文本可以更改)时,我会用英语看到它,当我点击俄罗斯国旗时,它将以俄语显示该页面(以及其他页面)。

使用Zend_Locale或翻译对我来说不起作用(我认为),并且通过URL是一个选项。问题是它是否是最好的?

2 个答案:

答案 0 :(得分:2)

最好将其作为URL中的参数传递,google使用locale=en进行此操作。只有当用户登录到您的网站并选择了首选的区域设置或其他内容时,才可以将其存储在会话中。这样,搜索引擎可以使用不同的网址为不同的区域设置编制索引,但是您的用户会在他们选择的任何区域设置中看到网页。

答案 1 :(得分:2)

Zend Framework为此提供了一套非常可靠的工具。

Zend_LocaleZend_Translate

开始

应该可以调整ZF的路由以包含指示区域设置的段。所以你最终会得到像/:locale /:controller /:action(或类似的)。您的网址将显示为http://example.com/en/some-controller/some-action

请注意,不仅仅是语言翻译。您还可以本地化数字,货币,日期等的显示。

一旦你玩过这些问题,请回答更具体的问题。