我正在使用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