Использование echo в условном выражении

Я использую условный оператор, чтобы проверить, на каком языке страница. Хорошо, когда мне просто нужно вывести HTML, но в конкретной строке, которую мне нужно перевести, уже есть выражение echo, и я не уверен, как отобразить весь оператор.

Линия:

<div class="timer-col"> <span id="days"></span> <span class="timer-type"><?php _e('days', 'framework'); ?></span> </div>

Мой код:

<?php
$mylocale = get_bloginfo('language');
if($mylocale == 'en' || $mylocale == 'en-US') {
echo '<div class="timer-col"> <span id="days"></span> <span class="timer-type"><?php _e('days ', 'framework'); ?></span> </div>';
} else {
echo '<div class="timer-col"> <span id="days"></span> <span class="timer-type"><?php _e('dien', 'framework'); ?></span> </div>';
}
?>

-1

Решение

Если это WordPress и его _e() функция, вы можете разбить ваши эхо-строки на что-то вроде следующего примера:

<?php
$mylocale = get_bloginfo('language');
if($mylocale == 'en' || $mylocale == 'en-US') {
echo '<div class="timer-col"> <span id="days"></span> <span class="timer-type">';
_e('days ', 'framework');
echo '</span> </div>';
} else {
echo '<div class="timer-col"> <span id="days"></span> <span class="timer-type">';
_e('dien', 'framework');
echo '</span> </div>';
}
?>

Это потому что _e() не возвращает строку (обычно это можно использовать с конкатенацией строк). Вместо, e() просто распечатывает переведенный текст (не возвращая ничего).

Я заметил, что если я попытаюсь использовать e() внутри строки, я получаю неожиданные результаты размещения, где e() заканчивает тем, что повторяет переведенный текст.

2

Другие решения

Вы пробовали это:

<?php
$mylocale = get_bloginfo('language');
if($mylocale == 'en' || $mylocale == 'en-US') {
echo '<div class="timer-col"> <span id="days"></span> <span class="timer-type">'. _e('days ', 'framework').'</span> </div>';
} else {
echo '<div class="timer-col"> <span id="days"></span> <span class="timer-type">'. _e('dien', 'framework').'</span> </div>';
}
?>
0

Вы захотите написать свои эхо-заявления примерно так:

echo '<div class="timer-col"> <span id="days"></span> <span class="timer-type">' . _e("days", "framework") . '</span> </div>';

Одиночные кавычки вокруг повторяющихся частей HTML, двойные кавычки внутри одинарных кавычек и PHP, объединенный с ‘.’

Смотрите также: PHP эхо внутри эха

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector