【问题标题】:How to correctly write PHP with multilingual elements?如何使用多语言元素正确编写 PHP?
【发布时间】:2012-05-21 12:26:12
【问题描述】:

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

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

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

或者

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

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

有什么更好的方法?

【问题讨论】:

标签: php html translation gettext


【解决方案1】:

这取决于:):

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

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

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

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

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

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

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

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

【讨论】:

  • 谢谢,但是我的翻译会看到所有的键,他会知道如何翻译到源代码?
【解决方案2】:

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

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

【讨论】:

  • 它是如何将演示文稿完全分开的?在某一时刻,您必须在代码中告诉您要提醒(msg1),不是吗?我很高兴知道更多关于它的信息,因为我也参与其中!
猜你喜欢
  • 2017-10-27
  • 2021-07-27
  • 2011-07-16
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多