Как изменить название языков в Gtranslate?

Ссылка скопирована
1 ответ

Кто в курсе, каким образом можно сменить название языков?
сейчас по дефолту стоят названия в select Eanglish, Russian и пр.
нужно сменить на ru, en

Дополнительно:

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Андрей PHP Ответ

В GTranslate названия языков часто генерируются самим плагином или внешним скриптом, поэтому универсальной настройки может не быть. Сначала проверьте настройки виджета GTranslate: иногда там можно выбрать формат вывода — полное название, флаг, код языка, dropdown.

Если настройки нет, самый аккуратный путь — заменить подписи на фронте JavaScript-ом после загрузки виджета. Например, для обычного select:

document.addEventListener('DOMContentLoaded', function () {
    const labels = {
        'English': 'en',
        'Russian': 'ru',
        'German': 'de',
        'French': 'fr'
    };
 
    document.querySelectorAll('select option').forEach(function (option) {
        const text = option.textContent.trim();
 
        if (labels[text]) {
            option.textContent = labels[text];
        }
    });
});

document.addEventListener('DOMContentLoaded', function () { const labels = { 'English': 'en', 'Russian': 'ru', 'German': 'de', 'French': 'fr' }; document.querySelectorAll('select option').forEach(function (option) { const text = option.textContent.trim(); if (labels[text]) { option.textContent = labels[text]; } }); });

Лучше сузить селектор до конкретного виджета, чтобы не поменять все select на сайте:

document.querySelectorAll('.gtranslate_wrapper select option').forEach(function (option) {
    ...
});

document.querySelectorAll('.gtranslate_wrapper select option').forEach(function (option) { ... });

Если GTranslate выводит ссылки, а не select, логика такая же, но менять нужно текст ссылок:

document.querySelectorAll('.gtranslate_wrapper a').forEach(function (link) {
    if (link.textContent.trim() === 'English') {
        link.textContent = 'en';
    }
});

document.querySelectorAll('.gtranslate_wrapper a').forEach(function (link) { if (link.textContent.trim() === 'English') { link.textContent = 'en'; } });

Править файлы самого плагина не стоит: изменения сотрутся при обновлении. Если нужна серверная замена, ищите в документации GTranslate фильтры или шаблон вывода виджета. Но чаще для таких мелких изменений достаточно своего JS в теме или через небольшой site-specific plugin.

Отдельно проверьте опечатку: должно быть English, не Eanglish. Если опечатка уже на фронте, возможно, её добавила тема или кастомная настройка, а не сам GTranslate.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно