我试图建立一个英语和法语网站,从一个MySQL表中提取信息,但我被卡住了。我认为这种查询对我来说太超前了。我的想法是有一个具有两种语言翻译的表,并为它们分配一个ID。
这是朗桌
+--------+-------------------+----------------------+ _~_
然后,我有另一个表,人们输入‘主题’到数据库。因此,当我将页面切换为法语时,表的内容将以法语显示。
+
当我们在英语页面上的时候,我想把这个放在桌子上
++?
然后这个当它是法语页面被选中。
++
有没有办法让它发挥作用,还是有更简单的方法来显示
发布于 2013-08-30 09:23:35
正如另一个答案所建议的那样,最好将语言字符串存储在文件中,并使用Javascript加载它们。我建议使用i18next,它是一个非常有用且易于使用的JS库。这将非常简单:
/* en.json */
{
"home":{
"title":"Hello, world !",
"welcomeMessage":"Welcome to my great website !"
}
}
/* fr.json */
{
"home":{
"title":"Bonjour !",
"welcomeMessage":"Bienvenue sur mon superbe site web"
}
}在html代码中:
<!-- head and other stuffs... -->
<script type="text/javascript" src="i18next.js"></script>
<body onload="translate()">
<h1 i18n-data="home.title"></h1>
<p i18n-data="home.welcomeMessage"></p>
</body>在您的函数中,JS文件:
function translate() {
i18n.init({
resGetPath:'en.json',
getAsync:false
}).done(function(){
$('[data-i18n]').i18n();
});
}这样,您的网站将运行得更快(减少数据库调用),而且添加/更新某些字符串也会更容易。希望能有所帮助:)
发布于 2013-08-30 09:03:09
没有理由将lang模式保留在DB中,请尝试将文件包含在lang中。
发布于 2013-08-30 09:10:26
好吧,您不应该每次有人加载会导致性能灾难的页面时更改表内容;-),但是您可以进行SQL查询。
如果你在法语页面上,你会这样做。
SELECT l.French FROM topic AS t
JOIN lang AS l ON t.Topic = l.id
WHERE t.EMP_ID = $emp_id;而你在英语方面的表现
SELECT l.English FROM topic AS t
JOIN lang AS l ON t.Topic = l.id
WHERE t.EMP_ID = $emp_id;https://stackoverflow.com/questions/18528877
复制相似问题