0

我必须为现有的 Zend 1.12 项目添加语言支持。是否可以使用 html 选择框来更改语言?我知道的唯一方法是使用选择框的“onChange”属性插入可以分析所选选项的特定js函数。

是否可以在 javascript 中启动 zend_translate 语言切换?

4

2 回答 2

1

您需要在选择更改时重新加载网站,或者进行将加载新 html 的 ajax 调用。

像这样的东西应该适合你(我假设你的路由中有语言代码):

HTML 代码:

<select id="languageSwitch">
    <option value="en">English</option>
    <option value="de">Deutsch</option>
</select>

JS(使用 jQuery):

$('#languageSwitch').change(function() {
    window.location = '/' + $(this).val() + '/';
});

这将使用附加到域名的 /en/ 或 /de/(基于选择)重新加载您的页面,例如。

http://www.yourwebsite.com/en/

http://www.yourwebsite.com/de/

如果您在设置路由时需要帮助,此视频应该对您有所帮助。

于 2013-01-01T23:23:48.763 回答
0

这听起来像是您需要在应用程序中使用区域设置切换功能,也许可以查看 Zend 区域设置的手动定义,并将活动区域设置存储在用户会话中:http: //framework.zend.com/manual/1.12/en/zend。 locale.functions.html

然后,我将构建一个“Pre-Dispatch 插件”来识别和修改活动会话区域设置,以反映在下拉菜单选择中定义的 GET 参数。有多种方法可以传递语言环境修改参数,您是否使用上述答案中的“路由”方法、带有链接的简单 GET 参数,或者如果您设置为下拉语言环境方法 - 您可以尝试 JQuery,一个例如:http: //jetlogs.org/2007/09/03/jquery-select-boxes-and-change-events/

正如您所说,最简单的是一个 on-change 片段 - 但从标准的角度来看,这很丑陋,因为浏览器期望识别 onchange 属性。

崔是你的。

于 2013-01-01T23:33:00.177 回答