多语言支持的网站


Multi Language Support for a website

我正在使用HTML/PHP/jQuery为我为一家公司开发的网站。他要求为他的网站增加多语言支持。

我只是想找出实现这一目标的最佳方法(或最佳实践方法),因为我相信有很多不同的方法可以做到这一点。

我找到了一个网站与教程;点击这里

使用PHP的会话。

这是一个好方法还是有更好的方法?

顺便说一下,该公司的网站有30页,每页大约200-300字。

我个人不会使用url querystring参数,我更喜欢它作为url的一部分更简洁,例如:

http://en.example.com/

http://www.example.com/en/

在此之上,我倾向于使用UNIX gettext风格进行翻译,我认为PHP支持- http://php.net/manual/en/function.gettext.php.

在JavaScript方面,这有点麻烦,但是有类似的实现。

是的,这将是在php应用程序中声明本地化资源的一种方式。基本上,这表明你需要一个奇偶校验对象,在你正在本地化的资源和特定的语言环境字符串之间创建Key/Value配对。

如果你想用纯JavaScript做这件事,它几乎是一样的。您需要在不同的JavaScript语言环境文件中声明对象,如locale-en.js, locale-de.js, locale-fr.js等。这是针对JavaScript传递的特定语言环境字符串而不是代码的服务器端执行的。这些文件包含的内容如下:

locale-en.js

myApplication = myApplication || {};
myApplication.locale = {
    title: "English title",
    body: "English body",
    // Etc.
};

其余文件包含完全相同的对象,但使用不同语言的字符串。然后在客户端代码中引用这些字符串,如下所示:

<script type="text/javascript" src="locale-*language*.js"></script>
<script type="text/javascript">
    $('#title').text(myApplication.locale.title); //jQuery
    // Pure JavaScript
    document.getElementById('title').innerHTML = myApplication.locale.title;
</script>

以下是我的想法:

  • 如果你不关心SEO/SEM,就不要使用JavaScript进行本地化
  • 如果您正在使用任何类型的CMS,您将需要在数据库中分割内容,并通过CMS
  • 编辑相应的本地化字段。
  • 如果您不使用CMS,请考虑以每种语言为每个页面的内容加载特定的PHP/HTML片段文件
  • 如果你有很多本地化字符串,考虑使用gettext()和Poedit