CodeIgniter PHP - Как случайным образом выбрать язык сообщения класса? - PullRequest
2 голосов
/ 01 мая 2011

Идея состоит в том, чтобы иметь серию советов в application / language / english / tips_lang.php

$lang['tip1'] = 'Water your plants';
$lang['tip2'] = 'Aerate your soil';
$lang['tip3'] = 'Use ventilation';
$lang['tip4'] = 'Fertilizers are good';

etc...

В моем контроллере я хотел бы иметь что-то вроде этого псевдокода

$input = $this->lang->line('tip_array');

$tip = array_rand($input, 1);

Кто-нибудь знает, возможно ли это?

Спасибо за помощь!

ОБНОВЛЕНИЕ контроллера

        //Random Tip
        $array = explode('|', $this->lang->line('tips'));
        $tips = array_rand($array, 1);
        $this->template->write('tips', $tips);

1 Ответ

3 голосов
/ 01 мая 2011

CodeIgniter не поддерживает n-мерные массивы для языковых файлов, но вы можете обойти это:

$lang['tips'] = 'Water your plants|Aerate your soil|Use ventilation|Fertilizers are good';

Или, если вы предпочитаете иметь их по одному в каждой строке:

$lang['tips'] = array();
$lang['tips'][] = 'Water your plants';
$lang['tips'][] = 'Aerate your soil';
$lang['tips'][] = 'Use ventilation';
$lang['tips'][] = 'Fertilizers are good';
$lang['tips'] = implode('|', $lang['tips']);

/ Контроллеры / yourController.php:

$tips = explode('|', $this->lang->line('tips'));

echo $tips[array_rand($tips, 1)];

Надеюсь, это поможет!

...