PHP语言引擎

PHP语言引擎,php,function,Php,Function,我正在用PHP编写内容管理软件(缩小后不应该大于3kb),但我应该用什么引擎来编写语言(英语、荷兰语、德语、汉语等)?我在考虑创建一个名为 function _(){} 从文件(ini文件或类似文件)中读取字符串的。但是否有人有一个(最好是一个代码尽可能少的)可能更小或更快的引擎 我不确定这些引擎是否已经存在,如果不存在,请说,我将使用()函数。您不能使用\u(),因为这是用于国际化的内置函数。您可以自由地使用自己的函数(称之为。)或使用广泛使用的gettext系统的内置函数。您不能使用。,因

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

function _(){}
从文件(ini文件或类似文件)中读取字符串的。但是否有人有一个(最好是一个代码尽可能少的)可能更小或更快的引擎


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

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

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

例如,Drupal为此目的使用函数。

例如,Drupal为此目的使用函数。

如果我是您,我会将我的翻译函数设置为这样(我认为这与gettext非常相似):将其转换为类似sprintf()的函数,并基于格式字符串进行转换,如下所示:

function __() {
   $a    = func_get_args();
   $a[0] = lookup_translation($a[0]);
   return call_user_func_array("sprintf", $a);
}
现在,您可以像这样简单地使用该函数:

echo __("Thanks for logging in, %s!", $username);
在某个数据文件中,您有:

"Thanks for logging in, %s!"="Merci pour enlogger, %s!" (*)
这样做的好处是:

  • 您不必为每条消息想出标识符:
    (“登录消息”$username)
    (“注销消息”$username)
    ,等等
  • 您不必立即为字符串编写翻译,如果只是使用标识符,则必须编写翻译。您可以将翻译推迟到稍后,一旦您完成了编码,并且所有内容都可以用英语进行
  • (类似地)您不必一次翻译所有语言的所有字符串,但可以分块翻译
为了最大限度的方便,我会让
\uuu
函数在某个地方记录未翻译的消息,这样您就不必去寻找未翻译的字符串。让系统告诉您需要翻译的内容


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

如果我是你,我会将我的翻译函数制作成这样(我相信这与gettext非常相似):将其制作成类似sprintf()的函数,并根据格式字符串进行翻译,如下所示:

function __() {
   $a    = func_get_args();
   $a[0] = lookup_translation($a[0]);
   return call_user_func_array("sprintf", $a);
}
现在,您可以像这样简单地使用该函数:

echo __("Thanks for logging in, %s!", $username);
在某个数据文件中,您有:

"Thanks for logging in, %s!"="Merci pour enlogger, %s!" (*)
这样做的好处是:

  • 您不必为每条消息想出标识符:
    (“登录消息”$username)
    (“注销消息”$username)
    ,等等
  • 您不必立即为字符串编写翻译,如果只使用标识符,则必须编写翻译。你可以把翻译推迟到以后,一旦你完成了编码,一切都用英语进行了
  • (类似地)您不必一次翻译所有语言的所有字符串,但可以分块翻译
为了最大的方便,我将把
\uuu
函数记录在某个地方未翻译的消息,这样您就不必去寻找未翻译的字符串。让系统告诉您需要翻译的内容


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

不要缩小PHP代码!是的,我会的,但我也会在与Greg的packageAgree中包含非精简代码。PHP源代码不会通过网络传输,因此缩小规模对您没有帮助。如果你想提高性能,你应该使用像APC这样的操作码缓存。我的目标只是制作最小的CMS,它仍然是先进的和可扩展的。缩小会给性能带来一点提升,因为硬盘使用较少。“缩小会给性能带来一点提升,因为硬盘使用较少。”一句话:不要缩小PHP代码!是的,我会的,但我也会在与Greg的packageAgree中包含非精简代码。PHP源代码不会通过网络传输,因此缩小规模对您没有帮助。如果你想提高性能,你应该使用像APC这样的操作码缓存。我的目标只是制作最小的CMS,它仍然是先进的和可扩展的。由于硬盘的使用量较少,缩小会带来非常小的性能提升。“由于硬盘的使用量较少,缩小会带来非常小的性能提升。”一个词:不要。