Класс yii\mongodb\i18n\MongoDbMessageSource
| Наследование | yii\mongodb\i18n\MongoDbMessageSource » yii\i18n\MessageSource » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable |
| Доступно с версии | 2.0.5 |
| Исходный код | https://github.com/yiisoft/yii2-mongodb/blob/master/i18n/MongoDbMessageSource.php |
MongoDbMessageSource расширяет yii\i18n\MessageSource и представляет собой источник сообщений, хранящий переведённые сообщения в коллекции MongoDB.
Этот источник сообщений использует одну коллекцию для хранения переводов сообщений, определённую через $collection. Каждый элемент в этой коллекции должен иметь 3 поля:
- language: строка, язык перевода
- category: строка, имя категории перевода
- messages: массив, список фактических переводов сообщений, в каждом элементе: ключ — имя исходного сообщения, значение — перевод сообщения.
Например:
{
"category": "app",
"language": "de",
"messages": {
"Hello world!": "Hallo Welt!",
"The dog runs fast.": "Der Hund rennt schnell.",
...
},
}
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $behaviors | yii\base\Behavior[] | Список поведенческих элементов, присоединенных к этому компоненту | yii\base\Component |
| $cache | yii\caching\Cache|массив|строка | Объект кэша или идентификатор компонента приложения объекта кэша. | yii\mongodb\i18n\MongoDbMessageSource |
| $cachingDuration | целое число | Время в секундах, в течение которого сообщения могут оставаться действительными в кэше. | yii\mongodb\i18n\MongoDbMessageSource |
| $collection | строка|массив | Имя коллекции MongoDB, которая хранит переведённые сообщения. | yii\mongodb\i18n\MongoDbMessageSource |
| $db | yii\mongodb\Connection|массив|строка | Объект подключения к MongoDB или идентификатор компонента приложения подключения к MongoDB. | yii\mongodb\i18n\MongoDbMessageSource |
| $enableCaching | логическое значение | Включить кэширование переведённых сообщений | yii\mongodb\i18n\MongoDbMessageSource |
| $forceTranslation | логическое значение | Принудительно выполнять перевод сообщений, когда языки исходные и целевые совпадают. | yii\i18n\MessageSource |
| $sourceLanguage | строка | Язык, на котором написаны исходные сообщения. | yii\i18n\MessageSource |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Component |
| __clone() | Этот метод вызывается после создания объекта путём клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства компонента. | yii\base\Component |
| __isset() | Проверяет, установлено ли свойство, т. е. определено и не равно null. | yii\base\Component |
| __set() | Устанавливает значение свойства компонента. | yii\base\Component |
| __unset() | Устанавливает свойство компонента в значение null. | yii\base\Component |
| attachBehavior() | Присоединяет поведенческий элемент к этому компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведенческих элементов к компоненту. | yii\base\Component |
| behaviors() | Возвращает список поведенческих элементов, которые должен представлять этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли читать свойство. | yii\base\Component |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Component |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| detachBehavior() | Отсоединяет поведенческий элемент от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведенческие элементы от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведенческие элементы, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| getBehavior() | Возвращает объект поведенческого элемента с заданным именем. | yii\base\Component |
| getBehaviors() | Возвращает все поведенческие элементы, присоединённые к этому компоненту. | yii\base\Component |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли какой-либо обработчик, присоединённый к названному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Component |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство для этого компонента. | yii\base\Component |
| init() | Инициализирует компонент DbMessageSource. | yii\mongodb\i18n\MongoDbMessageSource |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| translate() | Переводит сообщение на указанный язык. | yii\i18n\MessageSource |
| trigger() | Вызывает событие. | yii\base\Component |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| loadMessages() | Загружает перевод сообщений для указанного языка и категории. | yii\mongodb\i18n\MongoDbMessageSource |
| loadMessagesFromDb() | Загружает сообщения из MongoDB. | yii\mongodb\i18n\MongoDbMessageSource |
| translateMessage() | Переводит указанное сообщение. | yii\i18n\MessageSource |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_MISSING_TRANSLATION | yii\i18n\MissingTranslationEvent | Событие, которое срабатывает, когда перевод сообщения не найден. | yii\i18n\MessageSource |
Подробности свойств
$cache общедоступное свойство
Объект кэша или идентификатор компонента приложения для объекта кэша. Данные сообщений будут кэшироваться с помощью этого объекта кэша. Обратите внимание, что для включения кэширования необходимо установить $enableCaching в true, в противном случае установка этого свойства не окажет никакого эффекта.
После создания объекта MongoDbMessageSource, если вы хотите изменить это свойство, вы должны назначить ему только объект кэша.
Это также может быть конфигурационный массив для создания объекта.
См. также:
public yii\caching\Cache|array|string $cache = 'cache'
$cachingDuration общедоступное свойство
Время в секундах, в течение которого сообщения могут оставаться действительными в кэше. Используйте 0, чтобы указать, что данные кэша никогда не истекут.
См. также $enableCaching.
public integer $cachingDuration = 0
$collection общедоступное свойство
Имя коллекции MongoDB, в которой хранятся переведенные сообщения. Эту коллекцию лучше предварительно создать с полями 'category' и 'language', индексированными.
public string|array $collection = 'message'
$db общедоступное свойство
Объект подключения к MongoDB или идентификатор компонента приложения для подключения к MongoDB.
После создания объекта MongoDbMessageSource, если вы хотите изменить это свойство, вы должны назначить ему только объект подключения к MongoDB.
Это также может быть конфигурационный массив для создания объекта.
public yii\mongodb\Connection|array|string $db = 'mongodb'
$enableCaching общедоступное свойство
Включить кэширование переведенных сообщений
public boolean $enableCaching = false
Подробности методов
init() общедоступный метод
Инициализирует компонент DbMessageSource.
Этот метод инициализирует свойство $db, чтобы убедиться, что оно ссылается на действительное подключение к БД. Также будет инициализирован настроенный компонент $cache.
| public void init ( ) | ||
|---|---|---|
| throws | yii\base\InvalidConfigException | |
loadMessages() защищённый метод
Загружает перевод сообщений для указанного языка и категории.
Если перевод для конкретного кода локали, например, en-US , не найден, он пытается найти более общий en.
| protected массив loadMessages ( $category, $language ) | ||
|---|---|---|
| $category | строка |
Категория сообщений |
| $language | строка |
Целевой язык |
| return | массив |
Загруженные сообщения. Ключи — исходные сообщения, значения — переведенные сообщения. |
loadMessagesFromDb() защищённый метод
Загружает сообщения из MongoDB.
Вы можете переопределить этот метод, чтобы настроить хранение сообщений в MongoDB.
| protected массив loadMessagesFromDb ( $category, $language ) | ||
|---|---|---|
| $category | строка |
Категория сообщений. |
| $language | строка |
Целевой язык. |
| return | массив |
Сообщения, загруженные из базы данных. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-mongodb-i18n-mongodbmessagesource.html