我有一个包含2种语言文本的网站。我应该如何在页面之间进行操作,以便从他点击的位置改变他将看到的语言,并且当他点击另一种语言时,它会改变回来?
一个选项是当用户点击链接更改语言时,我会将其存储到会话中并使用它。但我听说它不适合搜索引擎。
第二种选择是通过URL将语言变量传递给每个页面。
第三种选择是巧妙地使用zend扩展能力。
(使用PHP + Zend Framework)。 SEO对我来说非常重要。
编辑: 站点中的文本(以及多种语言)由管理员输入。它现在可以使用我创建的语言对象,并选择管理员在每个对象中添加文本。因此,当我进入第一页(其中文本可以更改)时,我会用英语看到它,当我点击俄罗斯国旗时,它将以俄语显示该页面(以及其他页面)。
使用Zend_Locale或翻译对我来说不起作用(我认为),并且通过URL是一个选项。问题是它是否是最好的?
答案 0 :(得分:2)
最好将其作为URL中的参数传递,google使用locale=en
进行此操作。只有当用户登录到您的网站并选择了首选的区域设置或其他内容时,才可以将其存储在会话中。这样,搜索引擎可以使用不同的网址为不同的区域设置编制索引,但是您的用户会在他们选择的任何区域设置中看到网页。
答案 1 :(得分:2)
Zend Framework为此提供了一套非常可靠的工具。
开始应该可以调整ZF的路由以包含指示区域设置的段。所以你最终会得到像/:locale /:controller /:action(或类似的)。您的网址将显示为http://example.com/en/some-controller/some-action。
请注意,不仅仅是语言翻译。您还可以本地化数字,货币,日期等的显示。
一旦你玩过这些问题,请回答更具体的问题。