Php 如何使一个小网站多语言?

Php 如何使一个小网站多语言?,php,xml,web,Php,Xml,Web,我有一个非常小的(静态)网站,基本上就是我的在线名片,我想用英语和德语。我检测浏览器语言,也让用户手动选择;所以我准备好了正确的$lang变量 我的问题是如何最好地实现(或加载)多种语言?现在我用PHP开关语句来实现这一点,但我觉得这根本不合适。我的下一个猜测是使用XMLs,每种语言一个,然后加载正确的XML,但我想知道是否有更干净、简单和正确的方法来实现这一点;意思是易于维护和扩展、易于理解、符合标准和快速 谢谢你的帮助 将所有文本放在一个数组中,并将它们放在不同的文件中(一个用于德语,一个用

我有一个非常小的(静态)网站,基本上就是我的在线名片,我想用英语和德语。我检测浏览器语言,也让用户手动选择;所以我准备好了正确的$lang变量

我的问题是如何最好地实现(或加载)多种语言?现在我用PHP开关语句来实现这一点,但我觉得这根本不合适。我的下一个猜测是使用XMLs,每种语言一个,然后加载正确的XML,但我想知道是否有更干净、简单和正确的方法来实现这一点;意思是易于维护和扩展、易于理解、符合标准和快速


谢谢你的帮助

将所有文本放在一个数组中,并将它们放在不同的文件中(一个用于德语,一个用于英语):


标准的PHP方法是使用和.po/.mo文件,如前所述

+1。如果翻译不存在,使用这样的数组可以更容易地回退到给定的语言,例如使用array\u merge。看,只是为了把这件事做好。。。当我第一次加载页面时,我加载了包含相应语言的数组。当我想插入文本时,我会选择数组['contact']或数组['introduction']?如果我想在字符串中包含HTML代码怎么办?我使用CDATA吗?最简单的形式,是的。HTML?CDATA是不相关的。事实上。如果包含的文件以
return
开头,则可以使用
$lang=include('de.php')
。或者正如Anthony建议的(+1):
$lang=array\u merge(include('en.php')、include('de.php')如果英语是您的备用语言。
<? return array(
       'contact' => 'Kontakt'
);