首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP语言引擎

问PHP语言引擎
EN

Stack Overflow用户
提问于 2009-07-21 16:36:30
回答 3查看 755关注 0票数 0

我正在用PHP编写内容管理软件(缩小后不应大于3kb ),但是我应该为语言(英语、荷兰语、德语、中文等)使用什么引擎?我在考虑创建一个名为

代码语言:javascript
复制
function _(){}

它从文件( .ini文件或类似文件)中读取字符串。但是,有没有人有一个可能更小或更快的引擎(最好是代码越少越好)?

我不确定这些引擎是否已经存在,如果不存在,请说,我将使用_()函数。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-21 16:50:56

您不能使用_(),因为这是一个用于国际化的内置函数。您可以自由地使用自己的函数(称为__())或使用内置函数(它使用广泛使用的gettext系统)。

票数 1
EN

Stack Overflow用户

发布于 2009-07-21 17:02:59

如果我是你,我会让我的翻译函数像这样(我相信它非常类似于gettext):把它变成一个sprintf()-like函数,然后根据格式字符串进行翻译,如下所示:

代码语言:javascript
复制
function __() {
   $a    = func_get_args();
   $a[0] = lookup_translation($a[0]);
   return call_user_func_array("sprintf", $a);
}

现在,您可以像这样简单地使用该函数:

代码语言:javascript
复制
echo __("Thanks for logging in, %s!", $username);

在某个数据文件中,你有:

代码语言:javascript
复制
"Thanks for logging in, %s!"="Merci pour enlogger, %s!" (*)

这样做的好处是:

  • 您不必为每一条消息都考虑标识符:__("login_message", $username)、__("logout_message", $username)等...
  • 您不必立即为字符串编写翻译,如果您只使用标识符,则必须编写翻译。您可以将翻译推迟到以后,一旦您完成了编码,并且在English.
  • (Similarly)中一切正常,您不必一次翻译所有语言的所有字符串,但是您可以在chunks

中完成

为了最大限度地方便起见,我会让__函数在某个地方记录未翻译的消息,这样您就不必去寻找未翻译的字符串。让系统告诉你需要翻译什么!

(*)免责声明:我不会说法语;)

票数 3
EN

Stack Overflow用户

发布于 2009-07-21 16:54:08

例如,Drupal使用函数t()来实现此目的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1160313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档