当我点击我的三种语言标志(德语,法语和英语)时,我试图直接更改网站的语言而不重新加载页面。
要与语言对应,我在点击标志后保存名为lang
的cookie。
我有一个函数LangText($de, $fr, $en);
,根据客户端cookie存储的内容显示正确的文本。
这是我的功能:
function LangText($de, $fr, $us){
if(!isset($_COOKIE["lang"]) || $_COOKIE["lang"] == "de") echo $de;
else if($_COOKIE["lang"] == "fr") echo $fr;
else if($_COOKIE["lang"] == "us") echo $us;
else return 0;
}
到目前为止,我正在将用户重定向到存储cookie的php上,并将用户重定向到上一个站点。 是否有可能在没有任何重新加载的情况下实现这一点?
答案 0 :(得分:0)
如果您只使用PHP管理多语言站点,因为PHP是服务器端语言,您需要重新加载(因为您需要转到服务器来计算新页面)。
这没有错。 在应用程序引导程序中,您必须查找语言cookie,检查其值并设置语言环境值。
我建议您使用Cookie管理多语言,因为Cookie很烦人,现在您必须处理有关Cookie使用的法律政策。
您可以使用en/
或pt/
等URI路径管理多语言。
几乎所有的PHP框架都可以为您提供开箱即用的功能。
答案 1 :(得分:0)
我还强烈推荐特定于语言的URI,但这应该有效。需要 jQuery 。
function changeLanguage(lang){
// Replace "lang" cookie with new language
document.cookie = "lang="+lang;
// Get html of current URI and replace page contents.
$("body").load(window.location.href);
}
// Call this to switch to German, for example
changeLanguage("de");