1

在开始之前,我想提一下,我知道有很多关于多语言功能的答案,但我只是没有找到我希望从我的小搜索中找到的答案。

我有一个页面(例如 about.php),其中所有内容都只是 html,有许多标题标签、p 标签、列表项等。内容是“静态的”,这意味着它不是来自数据库,我'想通过单击链接(英语或法语)对其应用翻译。

我遵循了一些教程和示例,并提出了与示例非常相似的内容,但我关心的是页面的内容。我想说的是:假设我的页面结构如下所示:

<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 中放入我所有的标题、段落和列表等,或者这可以通过更好的方式轻松完成?如果某些段落里面的文字太多怎么办?ETC

希望有道理。

PS 我还考虑制作两个不同的文件,例如 about_eng.php 和 about_fre.php,其中我分别拥有英语和法语的所有 html 内容,并带有一个简单的 if 语句来检查每次选择哪种语言并包含正确的文件

4

1 回答 1

0

我认为将特定语言的数据保存在声明 $lang 数组的不同 php 文件中是一个好方法。这将避免用语言重新输入所有内容,这意味着更少的冗余。所以我同意贾斯帕尔的观点。对于输入 $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
}
?>
于 2013-03-13T08:47:33.530 回答