【问题标题】:complete example of gettext in phpphp中gettext的完整示例
【发布时间】:2011-05-03 01:07:31
【问题描述】:

过去一个小时左右,我一直在谷歌搜索,试图在 php 中找到一个完整的 gettext 工作示例 - 所有源文件、po 文件、具有正确路径等。只是一个包含所有必需文件的“hello world” .

我想知道是否有人有这样的工作示例。提前致谢。

【问题讨论】:

  • 我个人的主观意见是 PHP 的 gettext 函数很烂assZend_Translate 好多了,supports gettext files 也好
  • 网上有很多指南讨论如何编写使用 gettext 的 PHP 代码,但其中很多都缺少设置信息(例如在 Linux 机器上安装正确的语言环境,设置 gettext在窗口等)。如果您已经准备好 PHP 代码,但 gettext 仍然无法工作,我在设置 gettext 时在一篇文章中编译了问题列表(和解决方案):blog.terresquall.com/2020/09/troubleshooting-php-gettext

标签: php internationalization gettext


【解决方案1】:

我已经阅读了针对这个问题发布的这些其他指南,但它们对我来说都不够完整,而且它们似乎正急于进入这个主题。

THIS GUIDE 分为多个部分,您将学习从简单的Hello World 到复杂的复数管理。它不仅解释了每个函数的作用,还解释了这些函数使用的值。

作为奖励,本指南教授如何使用 Poedit,这对于使用 gettext 国际化非常有用,如果您正在处理一个大型项目,则必须具备此功能。

如果 OP 也认为该指南更好,他可能会更改已接受的答案。所以这个答案可以得到更多的关注,也可以帮助更多像我这样的gettext初学者。

【讨论】:

  • 当你添加一个新的语言环境到服务器时(为了测试使用 sudo locale-gen xx_XX)确保你重新启动 WWW 服务器,否则你会得到错误。此外,使用“sudo locale-gen es_ES”的服务器语言环境实际上不会安装 es_ES,但 es_ES.ISO88591(“sudo locale-gen es_ES.utf8”将安装 es_ES.utf8)此外,请仔细检查用于 setlocale() 的字符串,它必须与服务器上的语言环境完全匹配。例如,setlocale(LC_ALL, 'es_ES');从终端“locale -a”显示“es_ES.utf8”时,无法在 Ubuntu 上运行。 setlocale(LC_ALL, 'es_ES.utf8');现在可以工作了。
【解决方案2】:

Sitepoint.com 上有一个出色的五部分教程,名为 Localizing PHP Applications “The Right Way”。我强烈建议您查看所有五个部分!

【讨论】:

    猜你喜欢
    • 2010-11-03
    • 2012-10-11
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2014-03-13
    • 2022-10-15
    • 2015-09-14
    相关资源
    最近更新 更多