I understand this is an old question, but I just started working with Tkinter yesterday to develop a Hebrew application in Python. Right-to-left (bidi) is not available as part of the framework, but after a little Google search and some research, I managed to convincingly fake it using key bindings and force the cursor to move. The My Record widget keeps the excuse to the left, so that the Hebrew text is about the same as the English in the same field, but this approach can be easily changed for a legitimate window. (Or right excuse can make it easier). However, here is what I did.
Essentially, what you are doing here is forcing the cursor position using callbacks, character codes, and index constants. Also, you have to consider the arrow keys (mine behave like moving in the direction they are pointing. I always hated the way RTL usually changes the direction of the arrows. It's easy to change if you prefer otherwise). Backspace and Del should also cause some manual movement. Of course, if you track the cursor manually, you need to update your tracking variable in case the user resets it with the mouse. Below is my code, except that using global here is intended to remove a compound word from an explanation.
Next, there are three callback functions that perform all of our tracking and cursor movement.
#With the following functions, keep in mind that we only want the cursor to move RIGHT
Hope this helps! Since this is achieved by forcefully moving the cursor, there is a slight visual jitter of the cursor during input, but the ordering of the text seems correct, and the cursor seems to always indicate the correct position when the user does not press the middle key. I make no complaints about code excellence, though!
Jittard
source share