我正在建立一个网站,它需要7种语言?我想知道是否有一个好的做法可以应用于获得多语言的PHP脚本?
对我来说很容易
易于翻译
您还有什么想法,我应该将其存储在DB,XML还是PHP文件中?
存储翻译有很多选项:
TMX:一种相对较新的XML格式的翻译.似乎越来越受欢迎.
Gettext是另一种翻译的开放格式.长期以来一直是事实上的标准.
ini文件 - 易于编辑,格式非常简单
PHP文件(数组) - 易于编辑PHP程序员,性能良好
CSV格式 - 使用起来相对简单.
我建议您使用类似Zend_Translate的东西,它支持多个适配器,并提供在应用程序中嵌入翻译的基本方法.
与daddz相反,我建议不要在PHP中使用gettext:
区域设置是按进程进行的.这意味着当您使用多线程apache或任何其他运行PHP进程的多线程Web服务器时,在一个线程中调用setlocale将影响其他线程.
因为您无法知道哪个线程/进程正在处理哪个请求,所以用户间歇性地获取错误的区域设置会遇到可怕的问题.
您在PHP中设置的语言环境会影响printf
甚至是函数strtotime
.如果你使用gettext/setlocale,你肯定会得到你的后端代码中的"奇怪"数字格式
使用Eran排列的任何其他解决方案或快速自己做一些事情(PHP数组非常好用).还可以使用intl-extension,它将在核心PHP 5.3中用于数字和日期格式化和整理.
在一个基于Web的解决方案上反复使用gettext被证明就像打开众所周知的蠕虫一样.