Keyboard's button event and changing the map (layout)

There is the keyboard component in LVGL.
But in documentation I did not found how to change keyboard map on clicking the button.
The idea is to make 4 keyboard maps (2 languages with lowercase and uppercase, total 4 layouts) and change them when clicking the button.
P.S. I use LVGL version 8.3 adn ESP32, but it does not matter.

How can I call it on pressing Shift or language change button?
I try not to set

//lv_keyboard_set_textarea(keyb, message_text_input);

but add letters into message_text_input when user press or long press the button on the matrix except Shift (in my project button # 14)

static void cb_keyboard(lv_event_t * e){
    lv_event_code_t code = lv_event_get_code(e);
    if(code == LV_EVENT_PRESSED | LV_EVENT_LONG_PRESSED){
        uint16_t bt = lv_keyboard_get_selected_btn(keyb);
        if (bt == 14){
            Serial.println("Shift");  //I will try lv_keyboard_set_mode(kb, mode);
        } else{
            const char * txt = lv_keyboard_get_btn_text(keyb, bt);
            lv_textarea_add_text(message_text_input, txt);
        }
    }
}

but it does not work.

Maybe I need to use
LV_EVENT_VALUE_CHANGED ?