什么是构建多语言网页的最佳方法(避免修改重复的代码)

时间:2010-02-13 14:45:13

标签: php multilingual

构建多语言网页的最佳方法(避免修改重复代码)是什么? 我知道如何构建一个多语言网页,而无需修改CSS和Javascript文件。 但我想不出HTML和Php文件的简洁解决方案。因为如果我有每种语言的HTML或Php文件,我将不得不修改每一个,例如,如果我添加额外的div或其他元素。 我在考虑这样的事情:

<div id="multilingual div">
<p><?php echo($multilingual-paragraph); ?></p>
</div>

(所以,即使我修改了这些元素,我也会只修改一次,因为其他语言的文本会从变量中显示出来。)

我不知道Php,所以我不知道如何告诉Php根据语言显示不同的变量(我认为它与IF条件有关)

这是创建多语言网页的好方法还是有其他方法?

(所以这个

3 个答案:

答案 0 :(得分:2)

查看gettext()功能。您实际上不需要为不同的语言构建不同的文件。尽管如此,你还是要努力解决翻译文件。

答案 1 :(得分:2)

您可以为输出消息实现常量解决方案。使用APC's cache functions,您可以在缓存中存储多条消息并根据您正在查看的页面加载它们(这可能不是一个简单的解决方案,但您需要知道php)。

这将允许您维护一个数组,其中包含缓存中每种语言的值。例如:

apc_constants_define('en',array('welcomeMessage'=>'Welcome!'));
apc_constants_define('es',array('welcomeMessage'=>'Bienvenidos!'));
apc_constants_define('de',array('welcomeMessage'=>'Willkommen!'));

通过AJAX / select表单,您可以允许用户选择他们想要查看您的页面的语言。 该语言将存储在会话中:

$_SESSION['language'] = 'en';

接下来,在每个页面的顶部,你应该检查会话(简单的开关语句)并相应地从缓存中加载常量。

apc_load_constants($_SESSION['language']);

然后您的html页面将如下所示:

<h1><?php echo welcomeMessage; ?></h1>

正如我所看到的,这是一种最有效的国际化网站方式,以及易于维护的系统,当您想要将网页翻译成罗马尼亚语时,这不需要您深入研究代码。

答案 2 :(得分:1)

正如你所说,你有php和html语言文件,一种方法就是这样:

$lang = '';

switch ($lang_file)
{
   case 'en.php': $lang = 'whatever'; break;
   case 'fr.php': $lang = 'whatever'; break;
   // etc
}

<div id="multilingual div">
<p><?php echo $lang; ?></p>

// or you may include files
<p><?php include_once ($lang); ?></p>
</div>