如何使用多语言元素正确编写PHP?

时间:2012-05-21 12:26:12

标签: php html translation gettext

我正在使用gettext编写一个多语言的php网络应用程序。

实际使用gettext的最佳方式是什么,我可以将它用作关键短语:

echo (_("main.welcomeText.1"));

echo (_("Welcome to my site, we build great webapps."));

在这两种方式中,我都使用.po文件来翻译请求。

什么是更好的方式?

2 个答案:

答案 0 :(得分:2)

取决于:):

  • 您想要更好的调试
  • 您想要准确的翻译
  • 你想要编程速度
  • 你希望翻译不依赖开发者翻译(不可能,因为开发人员不写正确的英语...法语,印度语[包括本地和非本地开发])
  • 你想要2个世界中最好的

最好的教学方法是main.welcomText.1,因为:

  • 你会在很多地方(也许)使用它,所以复制过去更容易,更不容易出错。
  • 当错误被抛出时,密钥有一个数字女巫更容易搜索/排序,即:...错误的密钥是error.errorCode.321而不是“使用null时在类xy中发生的错误”
  • 密钥涵盖了“意义/语义”,所以你必须更加努力地构建/定义你的消息,即:main.hello或greeting.formal或greeting.friendly女巫不同于翻译(即:“你好”,“欢迎”,“嗨”)
  • 奖励:你可以通过使用相同的键来构建键来减少翻译量(以更简单的方式。想想重构

使用“欢迎使用我的网站,我们可以构建出色的网络应用程序”。使阅读更容易,译者翻译 但是更容易纠正/调试,特别是如果代码中有很多时间

因此密钥用于调试,因此它们应该更容易在代码中找到 where

编辑:提供基础英语翻译,即:

main.welcomeText.1:欢迎来到我的网站,我们建立了很棒的网络应用程序。

这对开发人员来说是短期内的更多工作。但很少有大型项目:)

答案 1 :(得分:0)

我从来没有使用过gettext ......而且从来没有真正认识过任何人。

我建议采用不同的方法,即使用Smarty / Dwoo完全分离演示文稿。使用它,您可以使用非常简单的配置/语言文件来进行国际化。