Какие есть способы смены языка на сайте без перезагрузки страницы?
ну статичный текст который всегда будет одинаковым можно в этом же элементе в data атрибуте хранить, а потом заменять его везде одной строкой через js. а контент - в любом случае через ajax придется грузить
типа этого получится: https://jsfiddle.net/iBird/zLezzktL/
Для этого легче всего использовать js фреймворки. Для каждого фреймворка есть готовый инструмент для интернационализации