PHP Class yii\i18n\DbMessageSource
The database must contain the following two tables: source_message and message.
The
source_message table stores the messages to be translated, and the
message table stores
the translated messages. The name of these two tables can be customized by setting [[sourceMessageTable]]
and [[messageTable]], respectively.
The database connection is specified by [[db]]. Database schema could be initialized by applying migration:
yii migrate --migrationPath=@yii/i18n/migrations/
If you don't want to use migration and need SQL instead, files for all databases are in migrations directory.
显示文件
Open project: yiisoft/yii2
Class Usage Examples
Public Properties
Property |
Type |
Description |
|
$cache |
|
the cache object or the application component ID of the cache object.
The messages data will be cached using this cache object.
Note, that to enable caching you have to set [[enableCaching]] to true, otherwise setting this property has no effect.
After the DbMessageSource object is created, if you want to change this property, you should only assign
it with a cache object.
Starting from version 2.0.2, this can also be a configuration array for creating the object. |
|
$cachingDuration |
|
the time in seconds that the messages can remain valid in cache.
Use 0 to indicate that the cached data will never expire. |
|
$db |
|
the DB connection object or the application component ID of the DB connection.
After the DbMessageSource object is created, if you want to change this property, you should only assign
it with a DB connection object.
Starting from version 2.0.2, this can also be a configuration array for creating the object. |
|
$enableCaching |
|
whether to enable caching translated messages |
|
$messageTable |
|
the name of the translated message table. |
|
$sourceMessageTable |
|
the name of the source message table. |
|
Public Methods
Method |
Description |
|
init ( ) |
Initializes the DbMessageSource component. |
|
Protected Methods
Method Details
createFallbackQuery()
protected method
Normally is called from [[loadMessagesFromDb]].
This method will initialize the [[db]] property to make sure it refers to a valid DB connection.
Configured [[cache]] component would also be initialized.
loadMessages()
protected method
If translation for specific locale code such as en-US isn't found it
tries more generic en.
protected loadMessages ( string $category, string $language ) : array |
$category |
string |
the message category |
$language |
string |
the target language |
return |
array |
the loaded messages. The keys are original messages, and the values
are translated messages. |
loadMessagesFromDb()
protected method
You may override this method to customize the message storage in the database.
Property Details
$cache public_oe property
the cache object or the application component ID of the cache object.
The messages data will be cached using this cache object.
Note, that to enable caching you have to set [[enableCaching]] to true, otherwise setting this property has no effect.
After the DbMessageSource object is created, if you want to change this property, you should only assign
it with a cache object.
Starting from version 2.0.2, this can also be a configuration array for creating the object.
$cachingDuration public_oe property
the time in seconds that the messages can remain valid in cache.
Use 0 to indicate that the cached data will never expire.
the DB connection object or the application component ID of the DB connection.
After the DbMessageSource object is created, if you want to change this property, you should only assign
it with a DB connection object.
Starting from version 2.0.2, this can also be a configuration array for creating the object.
$enableCaching public_oe property
whether to enable caching translated messages
$messageTable public_oe property
the name of the translated message table.
$sourceMessageTable public_oe property
the name of the source message table.
public $sourceMessageTable |