Сделать английскую версию сайта (автоперевод)

Бюджет: 30 000 руб
403.79 $ – 338.80 €
ТЗ на автоперевод сайта 

Сайту 25 лет 
Кастомная CMS на php, БД Phpmysql
  

Ок 300 статей, 500+ новостей.
Мобильная версия прописана в шаблоне отдельной разметкой, стилями (не адаптивная).
Два шаблона: для главной страницы и второстепенных.

Нужно сделать перевод сайта и контента на анг язык.
Бюджет 30 000р. Срок 10-14 дней.

Работать это должно так:
Сайт проверяет установленный язык посетителя, если рус. то ничего не происходит, по умолчанию ему показывают сайт на рус языке. Если нет, тогда анг версию.
Но при этом, должна быть иконка с флагом, для принудительного выбора перевода на рус/анг. Как в ПК, так и для моб версии.
 
В моб версии кнопку перевода вставить между Звонком и Поиском

CHATGPT предложил так и я с ним в целом согласен:
Переводить статьи/новости через API автопереводом, если перевод есть, брать из кэша. А меню (горизонтальное и вертикальное), подвал отдельно держать переведенным страницу (шаблон).

RU как оригинал, EN как машинно переведённая и кэшированная версия, плюс явный переключатель РУС / ENG.

Сделать на сайте два режима:
site.ru/        – русская версия
site.ru/en/     – английская версия
или:
site.ru/page.php?id=123&l...
site.ru/page.php?id=123&l...
Лучше /en/, если сможете аккуратно добавить rewrite.
Переключатель:
<a href="?lang=ru">РУС</a>
<a href="?lang=en">ENG</a>
Но в реальности лучше не просто ?lang=, а сохранять выбор в cookie/session:
<?php
$supported = ['ru', 'en'];

if (isset($_GET['lang']) && in_array($_GET['lang'], $supported, true)) {
    $lang = $_GET['lang'];
    setcookie('site_lang', $lang, time() + 3600 * 24 * 365, '/');
} elseif (!empty($_COOKIE['site_lang']) && in_array($_COOKIE['site_lang'], $supported, true)) {
    $lang = $_COOKIE['site_lang'];
} else {
    $lang = 'ru';
}
?>
И в шаблоне:
<a href="<?= htmlspecialchars($_SERVER['PHP_SELF']) ?>?lang=ru">РУС</a>
<a href="<?= htmlspecialchars($_SERVER['PHP_SELF']) ?>?lang=en">ENG</a>
________________________________________
1. Как переводить контент
Вариант 1 – быстро и дёшево: переводить при первом запросе и кэшировать
При первом открытии английской версии берёте русский текст из MySQL, отправляете его в API перевода, сохраняете результат в отдельную таблицу и дальше показываете уже сохранённый перевод.

Логика:
1. Пользователь выбрал ENG.
2. PHP берёт русское поле, например news.title или news.body.
3. Считает hash русского текста.
4. Проверяет, есть ли перевод в таблице translations.
5. Если есть – показывает его.
6. Если нет – отправляет текст в DeepL / Google Cloud Translation API.
7. Сохраняет перевод.
8. Показывает перевод.
Google Cloud Translation официально имеет PHP-клиент и предназначен для программной интеграции перевода в сайты и приложения. DeepL также предоставляет API и официальный PHP-клиент; для русского → английского часто качество DeepL бывает лучше, но это надо проверить на вашем контенте. 
________________________________________
Опубликован 09.05.2026 в 17:22 Последнее изменение: 09.05.2026 в 17:22

Выберите способ верификации:

Обновите страницу после прохождения верификации.