This one is easily overlooked but pretty important, strings in translation function can have arguments that can be replaced in 3 ways.
$text = t("This is !name's website", array('!name' => $username));
$text = t("This is @name's website", array('@name' => $username));
$text = t("This is %name's website", array('%name' => $username));
This actually comes from
https://api.drupal.org/api/drupal/includes!bootstrap.inc/function/forma…
which gives you this meanings
@variable: Escaped to HTML using check_plain(). Use this as the default choice for anything displayed on a page on the site.
%variable: Escaped to HTML and formatted using drupal_placeholder(), which makes it display as emphasized text.
!variable: Inserted as is, with no sanitization or formatting. Only use this for text that has already been prepared for HTML display (for example, user-supplied text that has already been run through check_plain() previously, or is expected to contain some limited HTML tags and has already been run through filter_xss() previously).
and if you want to pass in URL to string, you need do do it like this
print t("Click here for more", array(':url' => url('more_information')));