Driver.js предоставляет мощный инструмент для создания пошаговых интерактивных гидов по интерфейсу веб-приложений. Одним из ключевых аспектов гибкости библиотеки является возможность локализации текстов, что позволяет адаптировать подсказки под разные языки пользователей.
Все кнопки управления гидом — Next,
Previous, Close, Done
— могут быть локализованы через объект options. Для этого в
конфигурации создаётся объект buttons:
const driver = new Driver({
animate: true,
opacity: 0.7,
padding: 10,
allowClose: false,
overlayClickNext: true,
doneBtnText: 'Готово',
closeBtnText: 'Закрыть',
nextBtnText: 'Далее',
prevBtnText: 'Назад'
});
Ключевые моменты:
doneBtnText — текст кнопки завершения гида.closeBtnText — текст кнопки закрытия всплывающей
подсказки.nextBtnText и prevBtnText — тексты
навигационных кнопок.Благодаря этим настройкам можно полностью перевести элементы управления на любой язык.
Каждый шаг гида задается объектом с ключами:
driver.defineSteps([
{
element: '#username',
popover: {
title: 'Имя пользователя',
description: 'Введите здесь ваше имя для идентификации в системе.',
position: 'bottom'
}
},
{
element: '#submit',
popover: {
title: 'Отправить данные',
description: 'Нажмите, чтобы подтвердить ввод информации.',
position: 'top'
}
}
]);
Важно:
title и description полностью
управляются разработчиком.const localization = {
ru: {
usernameTitle: 'Имя пользователя',
usernameDesc: 'Введите здесь ваше имя для идентификации в системе.',
submitTitle: 'Отправить данные',
submitDesc: 'Нажмите, чтобы подтвердить ввод информации.'
},
en: {
usernameTitle: 'Username',
usernameDesc: 'Enter your name for identification in the system.',
submitTitle: 'Submit Data',
submitDesc: 'Click to confirm your information input.'
}
};
И подставлять нужные значения при создании шагов:
driver.defineSteps([
{
element: '#username',
popover: {
title: localization.ru.usernameTitle,
description: localization.ru.usernameDesc,
position: 'bottom'
}
}
]);
Для приложений с переключением языков на лету можно использовать функцию для пересоздания шагов:
function setLanguage(lang) {
const steps = [
{
element: '#username',
popover: {
title: localization[lang].usernameTitle,
description: localization[lang].usernameDesc,
position: 'bottom'
}
},
{
element: '#submit',
popover: {
title: localization[lang].submitTitle,
description: localization[lang].submitDesc,
position: 'top'
}
}
];
driver.defineSteps(steps);
driver.start();
}
// Пример вызова:
setLanguage('en');
Этот подход позволяет полностью локализовать гид без необходимости изменения кода самих шагов.
Некоторые языки могут требовать больше пространства для текста. Для этого можно использовать:
popover.width — ширина подсказки, чтобы длинные
описания помещались без переноса текста.padding — отступы между элементом и подсказкой.position — адаптация положения подсказки, чтобы не
перекрывать важные элементы интерфейса.driver.defineSteps([
{
element: '#email',
popover: {
title: localization.ru.emailTitle,
description: localization.ru.emailDesc,
position: 'right',
width: 300
}
}
]);
Driver.js легко интегрируется с системами, такими как
i18next, Vue i18n или React
Intl. Например, с i18next:
import i18next from 'i18next';
driver.defineSteps([
{
element: '#login',
popover: {
title: i18next.t('loginTitle'),
description: i18next.t('loginDesc'),
position: 'bottom'
}
}
]);
Это позволяет использовать уже существующие переводы и синхронизировать гид с основным языковым контентом приложения.
Использование этих инструментов делает Driver.js гибким и универсальным решением для многоязычных интерфейсов.