Class yii\i18n\PhpMessageSource
Inheritance | yii\i18n\PhpMessageSource » yii\i18n\MessageSource » yii\base\Component » yii\base\BaseObject |
---|---|
Implements | yii\base\Configurable |
Available since version | 2.0 |
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/i18n/PhpMessageSource.php |
PhpMessageSource represents a message source that stores translated messages in PHP scripts.
PhpMessageSource uses PHP arrays to keep message translations.
- Each PHP script contains one array which stores the message translations in one particular language and for a single message category;
- Each PHP script is saved as a file named as "$basePath/LanguageID/CategoryName.php";
- Within each PHP script, the message translations are returned as an array like the following:
return [
'original message 1' => 'translated message 1',
'original message 2' => 'translated message 2',
];
You may use $fileMap to customize the association between category names and the file names.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$basePath | string | The base path for all translated messages. | yii\i18n\PhpMessageSource |
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component | yii\base\Component |
$fileMap | array | Mapping between message categories and the corresponding message file paths. | yii\i18n\PhpMessageSource |
$forceTranslation | boolean | Whether to force message translation when the source and target languages are the same. | yii\i18n\MessageSource |
$sourceLanguage | string | The language that the original messages are in. | yii\i18n\MessageSource |
Public Methods
Method | Description | Defined By |
---|---|---|
__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() | Initializes this component. | 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() | Translates a message to the specified language. | yii\i18n\MessageSource |
trigger() | Triggers an event. | yii\base\Component |
Protected Methods
Method | Description | Defined By |
---|---|---|
getMessageFilePath() | Returns message file path for the specified language and category. | yii\i18n\PhpMessageSource |
loadFallbackMessages() | The method is normally called by loadMessages() to load the fallback messages for the language. | yii\i18n\PhpMessageSource |
loadMessages() | Loads the message translation for the specified $language and $category. | yii\i18n\PhpMessageSource |
loadMessagesFromFile() | Loads the message translation for the specified language and category or returns null if file doesn't exist. | yii\i18n\PhpMessageSource |
translateMessage() | Translates the specified message. | yii\i18n\MessageSource |
Events
Event | Type | Description | Defined By |
---|---|---|---|
EVENT_MISSING_TRANSLATION | yii\i18n\MissingTranslationEvent | An event that is triggered when a message translation is not found. | yii\i18n\MessageSource |
Property Details
The base path for all translated messages. Defaults to '@app/messages'.
Mapping between message categories and the corresponding message file paths. The file paths are relative to $basePath. For example,
[
'core' => 'core.php',
'ext' => 'extensions.php',
]
Method Details
Returns message file path for the specified language and category.
protected string getMessageFilePath ( $category, $language ) | ||
$category | string | The message category |
$language | string | The target language |
return | string | Path to message file |
---|
The method is normally called by loadMessages() to load the fallback messages for the language.
Method tries to load the $category messages for the $fallbackLanguage and adds them to the $messages array.
protected array loadFallbackMessages ( $category, $fallbackLanguage, $messages, $originalMessageFile ) | ||
$category | string | The message category |
$fallbackLanguage | string | The target fallback language |
$messages | array | The array of previously loaded translation messages. The keys are original messages, and the values are the translated messages. |
$originalMessageFile | string | The path to the file with messages. Used to log an error message in case when no translations were found. |
return | array | The loaded messages. The keys are original messages, and the values are the translated messages. |
---|
Loads the message translation for the specified $language and $category.
If translation for specific locale code such as en-US
isn't found it
tries more generic en
. When both are present, the en-US
messages will be merged
over en
. See loadFallbackMessages() for details.
If the $language is less specific than $sourceLanguage, the method will try to
load the messages for $sourceLanguage. For example: $sourceLanguage is en-GB
,
$language is en
. The method will load the messages for en
and merge them over en-GB
.
See also:
protected array loadMessages ( $category, $language ) | ||
$category | string | The message category |
$language | string | The target language |
return | array | The loaded messages. The keys are original messages, and the values are the translated messages. |
---|
Loads the message translation for the specified language and category or returns null if file doesn't exist.
protected array|null loadMessagesFromFile ( $messageFile ) | ||
$messageFile | string | Path to message file |
return | array|null | Array of messages or null if file not found |
---|