Нужно все переводимые строки хранить в отдельном массиве. А в шаблоне использовать нужный массив.
Пример с шаблоном на php и использованием глобальной переменной (для упрощения кода примера):
$ru = array(
'site.title' => "Мой сайт",
'author.name' => "Иванов И.И.",
);
$en = array(
'site.title' => "My site",
'author.name' => "John Doe",
);
$LANG = $_GET['lang'] === 'ru' ? $ru : en;
// где-то в шаблоне:
<html>
<head>
<title><?=$LANG['site.title']?></title>
</head>
<body>
<p><?=$LANG['author.name']?></p>
</body>
</html>
Подобным образом делается на любом фреймворке и/или шаблонизаторе. Приличные фреймворки уже имеют готовые инструменты для создания таких словарей.