2010-01-28 40 views
0

我想用这样的事情在一个PHP文件:解析一个值结果为HTML

$about = array ('dutch' => 'over', 'spanish' => 'sobre', 'english' => 'about'); 
if ($USER['lang'] == 'dutch'){ 
// $about - becomes 'over' 
    } 
elseif ($USER['lang'] == 'spanish') { 
// $about - becomes 'sobre' 
    } 
else { 
// $about - becomes 'about' 
} 

而结果传送到HTML文件。我在考虑在HTML页面中使用{about}来打印结果。

有谁知道如何做到这一点?

+0

嗨,西班牙语是我的母语,使用“acerca德”为“约”的翻译;) – rodrigoap 2010-01-28 19:39:11

+0

但后来,我想,荷兰人在wont't工作了。是“约三周”还是“关于我”? – 2010-01-28 19:54:32

+0

我认为这就像在“帮助>关于Mozilla Firefox” – rodrigoap 2010-01-28 20:01:00

回答

1

您想设置一个多语言页面。访问的话,最简单的方法是使用数组

if ($USER["lang"] == "dutch") 

$words = array("about" => "over", 
       "word1" => "translation1", 
       "word2" => "translation2"); 

... 

echo $words["about"]; // Outputs the correct word for "about" 

如果它是用许多话一个更大的项目,你可能想看看像Zend Framework的Zend_Translation一个完全成熟的国际化的解决方案。它允许您以多种不同格式存储翻译,包括XML文件,文本文件或用于提高速度的数据库。

+0

echo $ words [“about”]; 仅在php页面输出“about”的正确单词。我需要它在html页面上输出。 – martin 2010-01-28 20:26:22

+0

无法在纯HTML中完成。您将使用PHP解析您的HTML,或者使用PHP脚本写出翻译的HTML。 – 2010-01-28 20:51:08

2

使用,你有目前相同的代码结构:

$about = array ('dutch' => 'over', 'spanish' => 'sobre', 'english' => 'about'); 

if ($USER['lang']) { 
    echo $about[$USER['lang']]; 
} else { 
    echo 'about'; 
} 

确保$ USER [“郎”]正确消毒/验证

该解决方案是唯一的,如果你有理想几句话翻译。如果你想做的比这更多,那么你应该使用完整的翻译库进行调查。

以下是你可能想看看几个翻译库:

编辑:另外,您也可以使用一个开关。这意味着您不必将$ USER ['lang']与可用语言列表进行比较。

switch ($USER['lang']) { 
    case 'dutch': 
     $about = 'over'; 
    case 'spanish': 
     $about = 'sobre'; 
    default: //if $USER['lang'] doesn't match any of the 
       //cases above, do the following: 
     $about = 'about'; 
} 
+0

Gracias amigo, 我想我使用开关他们。但是将输出转换为html页面呢? – martin 2010-01-28 20:14:07

+0

变量$ about在所选语言中包含单词“about”。要输出变量$ about的内容,只需使用“echo $ about”(不包括引号)来显示html中您希望显示的任何点。 您可能有兴趣使用模板引擎,如Dwoo(http://dwoo.org)。 如果我的答案解决了您的问题,那么如果您可以将我的答案标记为可接受的解决方案,我将不胜感激(点击该答案下方的勾号。 – 2010-01-28 21:21:17