Как отобразить случайным образом часть строки? - PullRequest
0 голосов
/ 06 марта 2011

Я уже успешно перевел некоторые цитаты с помощью моей функции перевода __();, и теперь я хочу повторить только одну из этих цитат в случайном порядке . Все кавычки разделены в этой строке специальным символом, например |

Софар, у меня есть только это. Какой код мог бы пойти ниже этого решения моего случайного эха?

$quotes =
__("IF YOU MAKE EVERYTHING BOLD, NOTHING IS BOLD") . "|" .
__("Quality of design is an indicator of credibility") . "|" .
__("People ignore design, that ignores people");

(Важное ограничение: важно, чтобы кавычки были точно закрыты с __(" и ");, чтобы их можно было проверять и переводить.) __($variable) не работает с текущими скриптами очистки, которые купил, чтобы они не сработали.

Ответы [ 3 ]

2 голосов
/ 06 марта 2011

Вы уже звоните __() на каждую из ваших цитат в отдельности, почему бы не сохранить все дополнительные переводы и сделать что-то вроде:

$quotes = array('quote1', 'quote2', 'quote3');
$index = array_rand($quotes);
echo __($quotes[$index]);

Редактировать: Чтобы удовлетворить ваши другие требования, что вызов __() должен немедленно окружать каждую строку, вы можете сделать это:

$quotes = array(__('quote1'), __('quote2'), __('quote3'));
$index = array_rand($quotes);
echo $quotes[$index];

Большим недостатком здесь является то, что вы сейчас просматриваете перевод для каждой строки в этом массиве, хотя печатается только одна, но это та же ситуация, что и в решении "одна большая строка".

1 голос
/ 06 марта 2011

Почему вы не храните их в массиве и не переводите только то, что на самом деле выводится?

$quotes = array(
    "IF YOU MAKE EVERYTHING BOLD, NOTHING IS BOLD",
    "Quality of design is an indicator of credibility",
    "People ignore design, that ignores people",
);
$randomQuote = $quotes[ rand(0, count($quotes)-1)];
echo __($randomQuote);
1 голос
/ 06 марта 2011

Почему печенье все они в одной строке, а не в массиве?Ваша проблема была бы немедленно решена, если бы это было так.В существующем виде разделите на | и индексируйте случайным образом в массив, созданный для выбора случайной кавычки.

...