建议治疗多语言网站

时间:2011-12-14 01:05:03

标签: php html css performance

Gente,您如何推荐对待多语言网站?

我一直在这样工作:

1 - 在变量中包含所有text / imgpath(lang / es.php,lang / en.php)。

2 - 保持文件分离,同时考虑到相似之处。

/
css/
es/
en/
images/

3 - 使用CMS(wordpres)

现在的问题是,并不总是像前面提到的那样使用CMS。大多数情况都是手工制作。

我曾经评论过使用XML,但最终我认为它与将xml应该转储到变量的内容大致相同,将语言的id保留在会话(或任何形式)中。

我认为必须有更好的方法来做到这一点。

作为一个例子,我提出了一个案例:

Screenshoot =  http://i.stack.imgur.com/yOQM5.jpg

希望你能帮助我:D。

感谢

3 个答案:

答案 0 :(得分:2)

解决方案取决于需求。我为大型多语言网站实施了复杂的翻译工具,并为更小的网站提供了非常基本的英语/西班牙语解决方案。

较大的是后端的数据库驱动,但前面是静态的。我们根据用户的会话加载适当的语言文件。由于大量查询是不可取的,我们将翻译内容的html写成平面文本文件,并将其称为:

<?php 
if(file_exists($_SESSION['lang'].'/path-to-file.html'))
{
    include($_SESSION['lang'].'/path-to-file.html');
}  
else
{
  //call some helper to fetch it on the fly
}
?>

但是,并非所有站点都需要庞大的数据库驱动语言实用程序。您可能有一个基本站点,可以通过简单的配置文件轻松处理:

$lang = [
    'en' => [
        'title' => 'the title in english',
        'header_1' => 'header 1 in english'
    ],
    'sp' => [
        'title' => 'the title in spanish',
        'header_1' => 'header 1 in spanish'
    ]
];

您将在每个页面上包含具有此var的文件,然后根据需要调用语言字符串:

<h1><?php echo $lang['en']['title']; ?></h1>

如果您需要更好的示例说明可能对您有用的内容,则应修改您的问题,以包括翻译的预期大小以及语言可能会如何影响您网站的布局和设计。

答案 1 :(得分:0)

您可能会对gettext感兴趣。

它照顾复数,使用起来非常方便 使用数组或静态文件可能很难管理某些语言。

答案 2 :(得分:0)

我建议您查看PHP附带的国际化功能。

请参阅此处的手册http://php.net/manual/en/book.intl.php