PHP:__('一些文本')做什么?

阅读有关Kohana模板 ,看到了一些我从未见过的东西:

$this->template->title = __('Welcome To Acme Widgets'); 

__('Text')是什么意思? 它是什么? 它有什么作用?

在Kohana(版本3)中,函数是在system / base.php中定义的,并且是一个方便的function,以帮助(正如其他答案所提到的)国际化。 您可以提供一个string(可选地使用一些占位符将值replace为完成的文本),然后解释该string,并在必要时返回翻译。

与其他答案中的假设相反,这不使用gettext 。

一个非常基本的例子是(这个特殊的string已经在Kohana翻译成英文,西class牙文和法文):

 // 1. In your bootstrap.php somewhere below the Kohana::init line I18n::lang('fr'); // 2. In a view echo __("Hello, world!"); // Bonjour, monde! 

双“__”用于CakePHP中的本地化(以及其他可能的框架工作者)

http://book.cakephp.org/view/163/Localization-in-CakePHP

这意味着有人创build了一个名为__的函数(这是两个相邻的下划线)。

我的猜测是在Kohana文档中的某处定义的。

这是string gettext ( string $message ) : http : //php.net/manual/en/function.gettext.php

如果在翻译表中find翻译的string,则返回翻译的string;如果找不到,则返回提交的消息。

__()只是它的一个别名。 所以__("some text")等价于gettext("some text")

编辑:其实,如果它是两个下划线,而不是gettext()。 gettext()的别名是一个下划线。

第二次编辑:它看起来像__()可能是另一个gettext()的别名。 与_()略有不同。 请参阅: http : //groups.google.com/group/cake-php/browse_thread/thread/9f501e31a4d4130d?pli=1

第三次也是最后一次编辑:这里有一篇文章更详细地解释它。 看起来这不是一个内置的函数,而是通常在很多框架中添加的东西。 它本质上是gettext的别名 – 它执行相同的function。 但是,这不是一个直接的别名(我不认为)。 它在框架中实现并且是特定的。 它search并返回给定string的本地化或翻译。 欲了解更多,请参阅此博客文章: 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)); 

有关详细信息,请参阅http://kohanaframework.org/3.2/guide/api/I18n