Другое решение здесь: https://zargony.com/2008/01/24/links-in-gettext-translated-strings.
Предлагает использовать {curly brackets}
для ссылок. Как например:
_("Please click {here} or {here}")
А затем напишите свою собственную функцию linkify
, которая заменяет фигурные скобки на заданные параметры.
linkify(
_("Please click {here} or {here}"),
"</a>",
"<a href='www.example1.com'>",
"<a href='www.example2.com'>"
)
Определение в PHP:
function linkify($string, $closingTag) {
$arguments = func_get_args();
return preg_replace_callback(
'/{(.*?)}/', // Ungreedy (*?)
function($matches) use ($arguments, $closingTag) {
static $i = 1;
$i++;
return $arguments[$i] . $matches[1] . $closingTag;
},
$string
);
}
PS: Вы также можете легко заменить {} на [], поскольку я заметил, что в POEdit эти фигурные скобки дают предупреждения переводчикам и рекомендуют их не переводить.