阅读有关Kohana模板的信息,并看到一些我从未见过的东西:
$this->template->title = __('Welcome To Acme Widgets');
什么__('Text')
意思 它是什么?它有什么作用?
阅读有关Kohana模板的信息,并看到一些我从未见过的东西:
$this->template->title = __('Welcome To Acme Widgets');
什么__('Text')
意思 它是什么?它有什么作用?
Answers:
在Kohana(版本3)中,该函数在system / 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(和其他可能的框架)中的本地化
这意味着有人创建了一个名为__的函数(两个下划线彼此相邻。)
我的猜测是在Kohana文档中的某个地方定义了它。
它是string gettext ( string $message )
:http : //php.net/manual/en/function.gettext.php
如果在翻译表中找到一个翻译后的字符串,则返回一个翻译后的字符串;如果未找到,则返回已提交的消息。
__()只是它的别名。所以__("some text")
等于gettext("some text")
编辑:实际上,如果它是两个下划线,则不是gettext()。gettext()的别名是一个下划线。
第二次编辑:看起来__()可能是gettext()的另一个别名。与_()略有不同。看到这里:http : //groups.google.com/group/cake-php/browse_thread/thread/9f501e31a4d4130d?pli=1
第三次也是最后一次编辑:这是一篇文章,对其进行更详细的说明。看起来它不是内置函数,而是许多框架中通常添加的东西。它本质上是gettext的别名-它执行相同的功能。但是,它不是直接别名(我不认为)。它在框架中实现并特定于框架。它搜索并返回给定字符串的本地化或翻译。有关更多信息,请参见此博客文章:http : //www.eatmybusiness.com/food/2007/04/13/what-on-earth-does-a-double-underscore-then-parenthesis-mean-in-php- __ / 7 /
_
,不是两个吗?
// Display a translated message
echo __('Hello, world');
// With parameter replacement
echo __('Hello, :user', array(':user' => $username));