题
阅读有关 Kohana的模板,看到的东西我已经之前从未见过:
$this->template->title = __('Welcome To Acme Widgets');
这是什么意思__('Text')
?它是什么?它有什么作用?
解决方案
在Kohana中(版本3)的功能是在系统/ base.php定义和是一个方便的功能,以帮助(如其他的答案都提到)的国际化。你提供的字符串(具有任选的一些占位符来替代值成最终文本),然后将其解释并且,如果需要的话,则返回一个翻译。
相反,在其他的答案的假设,这不使用 gettext的。
一个非常基本的例子将是(这个特定的字符串已翻译成英语,西班牙语和法语中的Kohana):
// 1. In your bootstrap.php somewhere below the Kohana::init line
I18n::lang('fr');
// 2. In a view
echo __("Hello, world!"); // Bonjour, monde!
其他提示
在双“__”用于定位在CakePHP中(以及可能的其他框架)
这是string gettext ( string $message )
: http://php.net/manual/en/function。 gettext.php
,则返回一个翻译字符串,如果一个是 在转换表中发现,或 如果没有找到提交的消息。
在__()仅仅是它的别名。所以__("some text")
相当于gettext("some text")
修改强>实际上,如果是两个下划线比它不gettext的()。为gettext的()中的别名是一个下划线
<强>第二编辑:强>它看起来像__()可能是gettext的另一个别名()。从一个稍微不同的含义_()。在这里看到: http://groups.google.com /组/饼的PHP / browse_thread /线程/ 9f501e31a4d4130d?PLI = 1
<强>第三次和最后编辑:强>下面是在一篇文章中更详细地解释它。看起来它是不是一个内置的功能,而是在很多框架通常添加一些东西。它本质上是的gettext的别名 - 它执行相同的功能。然而,它不是一个直接的别名(我不认为)。它在实现和特定于框架。它搜索并返回给出字符串的本地化或翻译。如需更多信息,请参阅本博客文章:的 http://www.eatmybusiness.com/food/2007/04/13/what-on-earth-does-a-double-underscore-then -parenthesis均值功能于PHP -__ / 7 /
// Display a translated message
echo __('Hello, world');
// With parameter replacement
echo __('Hello, :user', array(':user' => $username));
这意味着某人创建名为__的功能(这是两个下划线彼此相邻。)
我的猜测是它Kohana的文档中的某处定义的。