It's cool seeing the menus in a different language, definitely a good feature to have! Longer term it might be better to have this in the main code, not a module? I'm not sure, there are pros and cons. I suspect it makes most sense that the strings aren't in *any* language in the main code, but instead are referenced by index. Then you can swap languages in and out easily, by having multiple arrays of strings, one per language, and printing by index. This is more work but more generic.
Re Arabic characters, kitor did some good work allowing loading fonts from card. We needed this for modern digic because those cams don't have a bitmap font in rom. I wrote some scripts that allow converting existing BDF fonts into the Canon format. So there's a route there that could work. For the modern cams, they have hardware accelerated font display, using some scalable font format (TTF? Not sure, some standard, vector format). These are in roms and likely have many languages (it's what normal Canon menus use), but a) old cams don't have this and b) we don't know how to draw with this yet (looks fairly easy, not tried it).