在我开始之前,我想提一下,我知道有很多关于多语言功能的答案,我只是没有找到我希望从我的小搜索中找到的答案。
我有一个页面(例如about.php),其中所有内容都只是html,有很多标题标签,p标签,列表项等等。内容是'静态的',这意味着它不是来自数据库,我想通过点击链接(英语或法语)来应用翻译。
我已经学习了一些教程和示例,并提出了与this示例非常相似的内容,但我关心的是页面内容。我想说的是: 假设我的页面结构如下所示:
<html>
<body>
<ul>
<li><a href="index.php"><?php echo $lang['HOME']; ?></a></li>
<li><a href="about.php"><?php echo $lang['ABOUT']; ?></a></li>
<li><a href="?lang=fre">french</a></li>
</ul>
<h1><?php echo $lang['HEADING']; ?></h1>
<p><?php echo $lang['PARAGR']; ?></p>
<p><?php echo $lang['ANOTHER_PAR']; ?></p>
</body>
</html>
导航菜单的值可以很容易地存储在$ lang数组中,并且每次都会回显特定的数组,但这也是最好(或更有效)的方式来实现它和页面内容吗?我是否必须在$ lang中添加所有标题,段落和列表等等,或者这可以通过更好的方式轻松完成?如果某些段落里面有太多文字怎么办?等
希望有所作为。
PS我还想创建两个不同的文件,比如about_eng.php和about_fre.php,其中我分别用英语和法语的所有html内容,并用一个简单的if语句来检查每次选择哪种语言包括正确的文件答案 0 :(得分:0)
将语言特定数据保存在不同的php文件中,声明$ lang数组是我认为的好方法。这将避免使用语言重新输入所有内容,这意味着更少的冗余。 所以我同意Jaspal。对于输入$ lang ['XXX']你可以轻松地将php转换成这个(也许是一个愚蠢的解决方案,但它会起作用):
function displayMyPage() {
global $lang; // do not forget the other globals you need in the page...
$l = $lang; // localize $lang as $l...
?>
<html>
<body>
<ul>
<li><a href="index.php"><?php echo $l['HOME']; ?></a></li>
<li><a href="about.php"><?php echo $l['ABOUT']; ?></a></li>
<li><a href="?lang=fre">french</a></li>
</ul>
<h1><?php echo $l['HEADING']; ?></h1>
<p><?php echo $l['PARAGR']; ?></p>
<p><?php echo $l['ANOTHER_PAR']; ?></p>
</body>
</html>
<?php
}
?>