在我开始之前,我想提一下,我知道有很多关于多语言功能的答案,我只是没有找到我希望从我的小搜索中找到的答案。
我有一个页面(例如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中,或者用更好的方法可以很容易地做到?如果一些段落里面有太多的文本怎么办?等
希望这是有意义的。
P.S.我还在考虑制作两个不同的文件,比如about_eng.php和about_fre.php,在这两个文件中,我有英语和法语的所有html内容,并使用一个简单的if语句来检查每次选择哪种语言并包含正确的文件
发布于 2013-03-13 16:47:34
将你的语言特定的数据保存在不同的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
}
?>https://stackoverflow.com/questions/15380164
复制相似问题