阅读有关 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中(以及可能的其他框架)

http://book.cakephp.org/view/163/Localization -in-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));

请参阅 http://kohanaframework.org/3.2/guide/api/I18n 的详细信息。

这意味着某人创建名为__的功能(这是两个下划线彼此相邻。)

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top