Перевод переменных
Никогда не используйте t()
для перевода переменных, таких как вызов
t($text);
, если только текст, содержащийся в переменной, не был передан через t () в другом месте (например, $ text - это одна из нескольких переведенных литеральных строк в массиве).Особенно важно никогда не вызывать
t($user_text);
, где $ user_text - это некоторый текст, введенный пользователем, что может привести к межсайтовому скриптингу и другим проблемам с безопасностью.Тем не менее, вы можете использовать подстановку переменных в вашей строке, чтобы поместить переменный текст, такой как имена пользователей или ссылки на URL, в переведенный текст.Подстановка переменных выглядит следующим образом:
$text = t("@name's blog", array(
'@name' => format_username($account),
));
По сути, вы можете поместить переменные типа @name в вашу строку, и t () заменит их очищенные значения во время перевода.(См. Страницы API локализации, на которые есть ссылки выше, и документацию для format_string () для получения подробных сведений о том, как определять переменные в вашей строке.) Затем переводчики могут перегруппировать строку так, как это необходимо для языка (например, на испанском языке это может быть «blog de@name ").