2

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

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

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

或者

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

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

有什么更好的方法?

4

2 回答 2

2

这取决于 :):

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

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

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

使用“欢迎来到我的网站,我们构建了很棒的网络应用程序”。使阅读和翻译更容易翻译,但更不容易纠正/调试,尤其是在代码中有很多时间的情况下

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

编辑:提供基本英文翻译,即:

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

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

于 2012-05-21T12:43:26.360 回答
0

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

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

于 2012-05-21T13:07:08.470 回答