PHP - 如何将网站翻译成多种语言?

标签 php internationalization translation

我有一个目前是英文的网站;我希望当用户单击不同的语言时能够切换到不同的语言(网站上几乎没有国旗图标)。我目前尝试的方法是使用数组,例如:

$english = array('index',
           array('h1' => 'this is some h1 text', 
                 'h2' => 'this is some h2 text'));

$japanese = array('index',
            array('h1' => '世界交換への歓迎',
                  'h2' => 世界交換への'));


print $english[index][h1];
print $japanese[index][h2];

如您所见,如果我用单独的语言对每个页面都执行此操作,则代码量将非常巨大。我还可以尝试什么其他方法?

最佳答案

鉴于您正在寻找完整的 i18n 支持,最终将导致 l10n 支持,我建议您在支持这些开箱即用的 PHP 框架中编写页面。

我个人只使用 Symfony 框架进行过翻译。他们结合使用数据库中的 i18n 表扩展来获取内容,并使用 XLIFF 文件来翻译界面。一旦设置完毕,它就相当透明,并且使用框架可以避免手动编写所有这些支持。

我还知道 Zend、CakePHP 和 Code Igniter 支持 i18n。

关于PHP - 如何将网站翻译成多种语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/954160/

相关文章:

javascript - JS onload - 控制列表 - chrome 中多个视频的 nodownload(仅适用于第一个视频)

Django 翻译不适用于生产

php - 在模板的 Symfony 翻译中使用 Twig 变量

android - 如何通过单击事件更改我所有 Activity 的所有文本(按钮文本、 TextView 等)?

php - LESS CSS & Symfony - 动态更新配色方案

php - 用户提交代码演示区的安全预防措施和技术

iphone - iOS如何本地化模块中的文件

php - 在 PHP 中进行国际化的最佳方法是什么?

python - 使用本地化日期进行 Django 查询

PHP 不插入 MySQL 数据库,所有语句都在那里