我正在编写一个 wordpress 插件并计划它的 drupal 实现我正在将 wordpress 函数包装到适配器中。所以我写了一个适配器,__()
这很简单
class Ai1ec_Wordpress_Template_Adapter implements Ai1ec_Template_Adapter {
...
public function translate( $text ) {
return __( $text, AI1EC_PLUGIN_NAME );
}
我不是 gettext 的大专家,一位同事给我写信:
当 xgettext 解析代码以生成 .pot 文件时将失败。像 __() 这样的 WP i18n 函数要求将字符串文字作为第一个参数传递,而不是变量。和 IIRC,同样适用于 Drupal 的 t() 函数。
我已经阅读了法典条目
http://codex.wordpress.org/I18n_for_WordPress_Developers#Placeholders
http://api.drupal.org/api/drupal/includes%21bootstrap.inc/function/t/7
并且找不到与此完全相关的东西。soemone 可以确切地解释为什么这不起作用,我怎么能写出可以与 Wordpress 和 Drupal 兼容的东西?