I know that this thread is very old now, but I just hope I can get an answer for those who may encounter it when using Elementary.
So to be blunt, we can use the command line to control Ibus instead of rely on the GUI thing. The commands are simple, in this case we will switch between English and Vietnamese, but other languages can apply without any problems.
Step 1: Get the English and Vietnamese engines
ibus list-engine
You should find the engines for English and Vietnamese as xkb:us::eng and Unikey, respectively
Step 2: Create the scripts for changing input methods
I'm not a pro so I create simple scripts, you will need two here.
Create a bin
directory if you haven't already, and cd
into it:
mkdir -p newbin && cd newbin
Now the scripts, first is for US English input method:
#!/bin/bash
ibus engine xkb:us::eng
Then for Vietnamese:
#!/bin/bash
ibus engine Unikey
Save them as cim_en.sh and cim_vn.sh ("cim" stands for change input method)
Make them executable:
chmod 755 cim_en.sh cim_vn.sh
Finally, create keyboard shortcuts for them, first go to settings -> Keyboard -> Shortcuts -> Custom. Here, click the '+' icon at the bottom and create 2 keyboard shortcuts with the name of the scripts. Assign the key combinations that you want, then reboot if the scripts are not working already.

And that pretty much solved the problem for me.