构建多语言网页的最佳方法(避免修改重复代码)是什么? 我知道如何构建一个多语言网页,而无需修改CSS和Javascript文件。 但我想不出HTML和Php文件的简洁解决方案。因为如果我有每种语言的HTML或Php文件,我将不得不修改每一个,例如,如果我添加额外的div或其他元素。 我在考虑这样的事情:
<div id="multilingual div">
<p><?php echo($multilingual-paragraph); ?></p>
</div>
(所以,即使我修改了这些元素,我也会只修改一次,因为其他语言的文本会从变量中显示出来。)
我不知道Php,所以我不知道如何告诉Php根据语言显示不同的变量(我认为它与IF条件有关)
这是创建多语言网页的好方法还是有其他方法?
(所以这个
答案 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>