function keyboardLayoutSwitch(stringToConvert, direction = 'ru-en') {
    const ruLayout = [
        'й', 'ц', 'у', 'к', 'е', 'н', 'г', 'ш', 'щ', 'з',
        'х', 'ъ', 'ф', 'ы', 'в', 'а', 'п', 'р', 'о', 'л',
        'д', 'ж', 'э', 'я', 'ч', 'с', 'м', 'и', 'т', 'ь',
        'б', 'ю'
    ];

    const enLayout = [
        'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p',
        '[', ']', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k',
        'l', ';', "'", 'z', 'x', 'c', 'v', 'b', 'n', 'm',
        ',', '.'
    ];

    let sourceLayout = direction === 'en-ru' ? enLayout : ruLayout;
    let targetLayout = direction === 'en-ru' ? ruLayout : enLayout;

    return stringToConvert.split('').map(char => {
        const index = sourceLayout.indexOf(char.toLowerCase());
        if (index !== -1) {
            return char === char.toLowerCase() 
                ? targetLayout[index] 
                : targetLayout[index].toUpperCase();
        }
        return char;
    }).join('');
}
// function keyboardLayoutSwitch(stringToConvert) {
//     var sourceLayout = [
//         'й',
//         'ц',
//         'у',
//         'к',
//         'е',
//         'н',
//         'г',
//         'ш',
//         'щ',
//         'з',
//         'х',
//         'ъ',
//         'ф',
//         'ы',
//         'в',
//         'а',
//         'п',
//         'р',
//         'о',
//         'л',
//         'д',
//         'ж',
//         'э',
//         'я',
//         'ч',
//         'с',
//         'м',
//         'и',
//         'т',
//         'ь',
//         'б',
//         'ю'
//     ];

//     var targetLayout = [
//         'q',
//         'w',
//         'e',
//         'r',
//         't',
//         'y',
//         'u',
//         'i',
//         'o',
//         'p',
//         '[',
//         ']',
//         'a',
//         's',
//         'd',
//         'f',
//         'g',
//         'h',
//         'j',
//         'k',
//         'l',
//         ';',
//         "'",
//         'z',
//         'x',
//         'c',
//         'v',
//         'b',
//         'n',
//         'm',
//         ',',
//         '.'
//     ];

//     for (var index = 0; index < sourceLayout.length; index++) {
//         const reg = new RegExp(sourceLayout[index], 'mig');
//         stringToConvert = stringToConvert.replace(reg, function(currentLetter) {
//             return currentLetter == currentLetter.toLowerCase() ? targetLayout[index] : targetLayout[index].toUpperCase();
//         });
//     }

//     return stringToConvert;
// }
