Есть множество реализаций решения данной проблемы, лучшего среди них нету. Мне допустим, если говорить о PHP, больше остальных понравилась реализация i18n в Yii. Там ест ьстатический метод t(), на вход которого подается контекст перевода (считай название файла содержащего переводы строк), и второй параметр — непосредственно строка. Дальше идет поиск по массиву строк, где хэшем является строка на оригинальном языке… ну суть собственно ясна. Хранить в таком случае файлы переводов можно где угодно.
Косательно локализации контента — тут тоже можно применить несколько вариантов. Самый банальный — таблица с языками, один из который — язык по умолчанию. Дальше таблица с контентом, содержащая записи для различных языков. В таком случае можно использовать составной первичный ключ и выбирать по ID и по языку. но это просто первый вариант, взятый из головы.
Советую пройтись по готовым решениям данной проблемы и выбрать для себя лучшее для вашего проекта.