Я использую условный оператор, чтобы проверить, на каком языке страница. Хорошо, когда мне просто нужно вывести 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>';
}
?>
Если это 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()
заканчивает тем, что повторяет переведенный текст.
Вы пробовали это:
<?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>';
}
?>
Вы захотите написать свои эхо-заявления примерно так:
echo '<div class="timer-col"> <span id="days"></span> <span class="timer-type">' . _e("days", "framework") . '</span> </div>';
Одиночные кавычки вокруг повторяющихся частей HTML, двойные кавычки внутри одинарных кавычек и PHP, объединенный с ‘.’
Смотрите также: PHP эхо внутри эха