没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Class yii\i18n\PhpMessageSource

继承yii\i18n\PhpMessageSource » yii\i18n\MessageSource » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable
可用版本自2.0
源码 https://github.com/yiichina/yii2/blob/api/framework/i18n/PhpMessageSource.php

PhpMessageSource 表示在 PHP 脚本中存储已翻译消息的消息源。

PhpMessageSource 使用 PHP 数组来保存消息翻译。

  • 每个 PHP 脚本都包含一个数组, 其存储一个特定的语言和用于单个消息类别的消息翻译;
  • 每个 PHP 脚本都保存名为 "$basePath/LanguageID/CategoryName.php" 的文件;
  • 在每个 PHP 脚本中,消息翻译将以数组形式返回,如下所示:
return [
    'original message 1' => 'translated message 1',
    'original message 2' => 'translated message 2',
];

您可以使用 $fileMap 自定义类别名称和文件名之间的关联。

公共属性

隐藏继承的属性

属性类型描述被定义在
$basePath string 所有翻译的消息的基本路径。默认是 '@app/messages'。 yii\i18n\PhpMessageSource
$behaviors yii\base\Behavior[] List of behaviors attached to this component yii\base\Component
$fileMap array 消息类别与相应的消息文件路径之间的映射。 文件路径位于 $basePath 相对路径下。例如, `php [ 'core' => 'core. yii\i18n\PhpMessageSource
$forceTranslation boolean 是否在源语言和目标语言相同时强制进行消息转换。 默认为 false,表示仅在源语言和目标语言不同时执行转换。 yii\i18n\MessageSource
$sourceLanguage string 原始消息的语言。 如果没有设置,将使用 yii\base\Application::$sourceLanguage 的值。 yii\i18n\MessageSource

公共方法

隐藏继承的方法

方法描述被定义在
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
className() Returns the fully qualified name of this class. yii\base\BaseObject
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() 初始化此组件。 yii\i18n\MessageSource
off() Detaches an existing event handler from this component. yii\base\Component
on() Attaches an event handler to an event. yii\base\Component
translate() 翻译消息到指定的语言。 yii\i18n\MessageSource
trigger() Triggers an event. yii\base\Component

受保护的方法

隐藏继承的方法

方法描述被定义在
getMessageFilePath() 返回指定语言和类别的消息文件路径。 yii\i18n\PhpMessageSource
loadFallbackMessages() 该方法由 loadMessages() 调用来为语言加载后备消息。 方法尝试为 $fallbackLanguage 加载 $category 消息,并将它们添加到 $messages 数组中。 yii\i18n\PhpMessageSource
loadMessages() 加载指定 $language 和 $category 的消息翻译。 如果找不到特定区域代码(例如 en-US)的翻译,则会尝试更通用的 en。 当两者都存在时,en-US 消息将合并在 en 上。 有关详细信息,请参见 loadFallbackMessages()。 如果 $language 不如 $sourceLanguage 更具体, 则该方法将尝试加载 $sourceLanguage 的消息。例如:$sourceLanguageen-GB, $language 是 en。该方法将加载 en 的消息并将它们合并到 en-GB yii\i18n\PhpMessageSource
loadMessagesFromFile() 加载指定语言和类别的消息翻译,如果文件不存在返回 null。 yii\i18n\PhpMessageSource
translateMessage() 翻译指定的消息。 如果未找到该消息,将触发 missingTranslation 事件。 如果有事件处理程序,它可能会提供 fallback translation. yii\i18n\MessageSource

Events

隐藏继承的事件

事件类型描述被定义在
EVENT_MISSING_TRANSLATION yii\i18n\MissingTranslationEvent 当找不到一条消息翻译时触发的事件。 yii\i18n\MessageSource

属性详情

$basePath 公共 属性

所有翻译的消息的基本路径。默认是 '@app/messages'。

public string $basePath '@app/messages'
$fileMap 公共 属性

消息类别与相应的消息文件路径之间的映射。 文件路径位于 $basePath 相对路径下。例如,

[
    'core' => 'core.php',
    'ext' => 'extensions.php',
]
public array $fileMap null

方法详情

getMessageFilePath() 受保护 方法

返回指定语言和类别的消息文件路径。

protected string getMessageFilePath($category, $language)
$category string

消息类别

$language string

目标语言

return string

消息文件的路径

loadFallbackMessages() 受保护 方法 (自版本 2.0.7 可用)

该方法由 loadMessages() 调用来为语言加载后备消息。 方法尝试为 $fallbackLanguage 加载 $category 消息,并将它们添加到 $messages 数组中。

protected array loadFallbackMessages($category, $fallbackLanguage, $messages, $originalMessageFile)
$category string

消息类别

$fallbackLanguage string

目标后备语言

$messages array

先前加载的翻译消息的数组。 键是源消息,值是翻译的消息。

$originalMessageFile string

带有消息文件的路径。 用于在未找到任何翻译时记录错误信息。

return array

加载的消息。键是源消息,值是翻译的消息。

loadMessages() 受保护 方法

加载指定 $language 和 $category 的消息翻译。 如果找不到特定区域代码(例如 en-US)的翻译,则会尝试更通用的 en。 当两者都存在时,en-US 消息将合并在 en 上。 有关详细信息,请参见 loadFallbackMessages()。 如果 $language 不如 $sourceLanguage 更具体, 则该方法将尝试加载 $sourceLanguage 的消息。例如:$sourceLanguageen-GB, $language 是 en。该方法将加载 en 的消息并将它们合并到 en-GB

参见:

protected array loadMessages($category, $language)
$category string

消息类别

$language string

目标语言

return array

加载的消息。键是源消息,值是翻译的消息。

loadMessagesFromFile() 受保护 方法

加载指定语言和类别的消息翻译,如果文件不存在返回 null。

protected array|null loadMessagesFromFile($messageFile)
$messageFile string

消息文件的路径

return array|null

消息数组,如果找不到文件,则返回 null