Файлы сообщений

Комментарии: 7  Просмотры: 5 257

Kohana имеет надежную систему поиска, базирующуюся на ключах массивов, для определения системных сообщений.

Получение сообщений

Используйте метод Kohana::message() для получения сообщения по ключу:

Kohana::message('forms', 'foobar');

Этот метод найдет в файле messages/forms.php значение ключа foobar:

<?php
 
return array(
    'foobar' => 'Hello, world!',
);

Также можно использовать вложенные каталоги и суб-ключи:

Kohana::message('forms/contact', 'foobar.bar');

Этот метод найдет в файле messages/forms/contact.php значение ключа [foobar][bar]:

<?php
 
return array(
    'foobar' => array(
        'bar' => 'Hello, world!',
    ),
);

Примечания
— Не используйте метод __() в файлах сообщений, так как эти файлы могут кэшироваться и метод не будет работать должным образом.
— Сообщения объединяются в каскадной файловой системе и не будут перезаписаны, как классы и виды.

Обсудить на форуме


К записи оставлено 7 коммент.

Зашибись) Теперь буду туда сообщения с ошибками пихать и забирать по требованию) Спасибо, комрад!

Последние пять переводов один хороший человек делал. Я только перечитал и подправил кое-где перевод.
Пользуйтесь на здоровье.

Думаю, стоит добавить, что у метода есть третий параметр $default. Понятно, что он помогает определить значение по умолчанию, если сообщение по ключу не будет найдено. Например, Kohana::message(‘forms’, ‘foobar’) вернет NULL, а запись Kohana::message(‘forms’, ‘foobar’, ‘Неверный параметр’) вернет строчку: ‘Неверный параметр’.

Это перевод документации с официального сайта по возможности близко к тексту. А там увы очень многие моменты опущены.

А как в файл сообщений отправить переменную. Ну, к примеру в файле содержится сообщение приветствия:
Привет $user!
где $user – логин пользователя, который отправили в файл из какого-то скрипта.
Короче говоря, надо хранить сообщения с изменяющимися данными: имя пользователя, id сообщения, адрес и т.д.
Может даже не отправлять, а как-то по-другому реализовать?

Не знаю актуальна ли вам эта информация, но другим она может пригодиться.
Как вариант можно получить сообщение привычным способом в только преременную:
$succsessMsg = Kohana::message(‘user’, ‘registration.succsess’);
А затем воспользоваться нативной функцией php — str_replace. К примеру если наше сообщение:
‘succsess’ => ‘На указанный Вами почтовый адрес :email была отправлена инструкция о дальнейших действиях.’
то эксплоит состоит в следующем:
str_replace(‘:email’, $userMail, $succsessMsg).

Извеняюсь за грамматические ашипки, тороплюсь =)



Оставить комментарий или два

Пожалуйста, зарегистрируйтесь для комментирования.