Class yii\i18n\PhpMessageSource
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 的消息。例如:$sourceLanguage 是 en-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 |
属性详情
所有翻译的消息的基本路径。默认是 '@app/messages'。
消息类别与相应的消息文件路径之间的映射。 文件路径位于 $basePath 相对路径下。例如,
[
'core' => 'core.php',
'ext' => 'extensions.php',
]
方法详情
返回指定语言和类别的消息文件路径。
protected string getMessageFilePath($category, $language) | ||
$category | string | 消息类别 |
$language | string | 目标语言 |
return | string | 消息文件的路径 |
---|
该方法由 loadMessages() 调用来为语言加载后备消息。 方法尝试为 $fallbackLanguage 加载 $category 消息,并将它们添加到 $messages 数组中。
protected array loadFallbackMessages($category, $fallbackLanguage, $messages, $originalMessageFile) | ||
$category | string | 消息类别 |
$fallbackLanguage | string | 目标后备语言 |
$messages | array | 先前加载的翻译消息的数组。 键是源消息,值是翻译的消息。 |
$originalMessageFile | string | 带有消息文件的路径。 用于在未找到任何翻译时记录错误信息。 |
return | array | 加载的消息。键是源消息,值是翻译的消息。 |
---|
加载指定 $language 和 $category 的消息翻译。
如果找不到特定区域代码(例如 en-US
)的翻译,则会尝试更通用的 en
。
当两者都存在时,en-US
消息将合并在 en
上。
有关详细信息,请参见 loadFallbackMessages()。
如果 $language 不如 $sourceLanguage 更具体,
则该方法将尝试加载 $sourceLanguage 的消息。例如:$sourceLanguage 是 en-GB
,
$language 是 en
。该方法将加载 en
的消息并将它们合并到 en-GB
。
参见:
protected array loadMessages($category, $language) | ||
$category | string | 消息类别 |
$language | string | 目标语言 |
return | array | 加载的消息。键是源消息,值是翻译的消息。 |
---|
加载指定语言和类别的消息翻译,如果文件不存在返回 null。
protected array|null loadMessagesFromFile($messageFile) | ||
$messageFile | string | 消息文件的路径 |
return | array|null | 消息数组,如果找不到文件,则返回 null |
---|