首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建多语言网页的最好方法(避免修改重复代码)是什么

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

Stack Overflow用户
提问于 2010-02-13 22:45:13
回答 3查看 474关注 0票数 1

构建多语言网页的最好方法(避免修改重复代码)是什么?我知道如何在不修改CSS和Javascript文件的情况下创建多语言网页。但我想不出一个简洁的解决方案来处理HTML和Php文件。因为如果每种语言都有HTML或Php文件,例如,如果我添加了额外的div或其他元素,我将不得不修改每个文件。我在想像这样的东西:

代码语言:javascript
复制
<div id="multilingual div">
<p><?php echo($multilingual-paragraph); ?></p>
</div>

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

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

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

(所以有了这个

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-13 22:55:39

查看gettext()函数。你不需要为不同的语言构建不同的文件。尽管如此,你还是得费力地处理翻译文件。

票数 2
EN

Stack Overflow用户

发布于 2010-02-13 23:13:24

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

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

代码语言:javascript
复制
apc_constants_define('en',array('welcomeMessage'=>'Welcome!'));
apc_constants_define('es',array('welcomeMessage'=>'Bienvenidos!'));
apc_constants_define('de',array('welcomeMessage'=>'Willkommen!'));

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

代码语言:javascript
复制
$_SESSION['language'] = 'en';

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

代码语言:javascript
复制
apc_load_constants($_SESSION['language']);

那么您的html页面将如下所示:

代码语言:javascript
复制
<h1><?php echo welcomeMessage; ?></h1>

在我看来,这是将你的网站国际化的最有效的方法,而且系统易于维护,当你想将你的页面翻译成罗马尼亚语时,不需要你钻研代码。

票数 2
EN

Stack Overflow用户

发布于 2010-02-13 22:50:29

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

代码语言:javascript
复制
$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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2257902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档