I guess that what you are doing is the easiest way of doing it.
Alternatively, you could just call LocalizationManager.ApplyRTLfix to the entire string even if it doesn't have Arabic characters, that call will skip the regular characters. Just be sure to set to ignore numbers.
The issue with calling ApplyRTLfix all the time, is that when using tags (e.g. [color], [0xffffff], etc) the RTLfix tries to reorder the tags to make sense when rendering from right to left.
The other way (more reliable), is to add a tag <rtl> </rtl> to encapsulate your Arabic strings. Then, in the code that uses the translation (either your own script or a localization callback), see if you have a tag and apply rtl only to the inside, then remove the tags.
That way, its the safest, as it will deal correctly with other tag types, numbers, etc. But its a bit more involved.
Hope that helps,
Are you Give I2L 5 stars!
Are you Please lets us know how to improve it!