我创建了一个带有完整背景图片的网站。 用户在第一屏幕上选择他/她是否想要用英语或德语查看该站点。 然后该站点将重新加载为index.php(英语为默认值)或indexG.php(德语)。
选择语言后,我实现了ajax,以便在每次点击链接时不重新加载背景。
第一页确定菜单显示的语言:
<?php if ($currentPage == 'index.php')
{
include ('includes/navE.inc.php');
}
else if ($currentPage == 'indexG.php')
{
include ('includes/navG.inc.php');
}
?>
每个菜单项都会调用一个函数。以下是英语菜单中的示例:
<li><a href="#" class="nav" id="navitem2" onclick="showMiddle(2);">menu item</a></li>
和函数showMiddle(str):
function showMiddle(str)
{
$.ajax({
type: 'GET',
url: 'getlist.php',
data: 'q=' + str,
success: function(msg){
//alert("data retrieved: " + msg);
$('#middle').css({opacity:0}).html(msg).delay(550).fadeTo(1500,1);
}
});
}
现在,getlist.php包含另一个菜单(视频标题),以及一个用作所选视频容器的div。
我希望getlist.php能够判断是否选择了英语或德语,然后从数据库中显示相应的标题。
我不确定是否应该使用getlist.php中的变量或通过将参数传递给getlist.php来执行此操作。 我为了获取URL而尝试做的任何事情都返回“getlist.php”(这是有意义的)而不是index.php或indexG.php。
答案 0 :(得分:0)
语言我这样做的方式..我从不说
indexG.php or
something.php?language=en or
where language = 'english' or
or ./articles/english/ or whatever
我只在index.php的顶部做那个
$ lang ='它是什么'然后你总是使用这个$ lang变量,这个变量在顶部声明后随处可见。它去了
something.php?language = $ lang or 其中language = $ language或 或./articles/$language/ etc等
我从不在脚本中存储单个单词,而是存储在单独文件中的类:
这个类只包含文本,例如:
<?PHP
class txtcomcateg
{
/****************************PAGE TITLES************************************/
public static $comcateg_formtitle="Φόρμα διαχείρισης κατηγοριών..";
public static $comcateg_name="Όνομα κατηγορίας..";
然后我只是使用它来调用类似的静态类:
$login_tpl->set('uname',txtStandard::$uname);
对我来说这是一件微不足道的事情,我从不打扰它,当我想要更改我知道它在哪里的文本而不必在任何代码中搜索。我只是给静态类成员提供了令人感动的名字,所以我知道它包含的内容。语言可以存储在cookie或会话中,因此您不必将其加载到url中。
答案 1 :(得分:0)
我最终复制了function showMiddle()
并调用了副本showMiddle_G()
。英语菜单中的菜单项调用第一个函数并传递data: 'q=' + str + '&language=english',
。德语菜单中的菜单项会调用showMiddle_G()
并传递data: 'q=' + str + '&language=deutsch',
。我确信有一种更简单/更好的方法可以做到这一点。