pannenstazhia probably already got in touch with us
eventually (that, and i was involved with q8fft on the FFVI translation among others), but in the interest of anyone asking the same question about the general process. It's strictly applicable to Arabic and Persian, alone. Other RTL languages have other complications.
- Arabic is written right-to-left, so that means one of two solutions: ASM programming to change the code, or no programming changes. Mixed-language text is rarely used, but in the cases it is, it needs so-called BiDi support (bi-directionality) but I don't think you can afford doing that on a retro game.
- Arabic uses so called reshaping. The logical forms (Unicode Arabic) call different glyphs for the same letter depending on context within a word. The contextual glyphs have separate codepoints in Unicode (Unicode Arabic Presentation Forms A/B) that can be called directly, but it's inadequate for other Arabic-script languages. Similarly, you can either have the game handle reshaping for you (ASM changes) or you preprocess the text instead.
Translation process goes similarly to any other Latin script language, with all contextual glyphs included in the font (may require ASM changes to expand the font, like with Skyblazer) and any cosmetic changes (reworking menu layouts and cursor positions to be RTL, generally tilemap/sprite data changes) that might be required. There was one time I added direct Unicode codepoint support for a SNES game for the hell of it, but it makes no difference to the end user, so we generally use "replacement characters" (whatever the game's table supports, we may cram Unicode Presetation Forms B characters directly in the tbl file if the text inserter supports UTF-8 characters, or Latin/CJK characters supposed to replace Arabic, etc) and change the graphical font data to match those replacements (so it might be "A" in the text, but the graphics for "A" in the font is "ء" so you can piece together full legible sentences that way.)
Arabic translation tooling was disastrous until recently. Even some gatekeeping and presenting buggy nametable editors as valid text editors while hoarding information about better tools that accept the copy/paste feature. The overrepresentation of 8-bit software shouldn't be seen necessarily as the natural state of things in the case of Arabic. Persian fan translation output of PS2 software and more recent should be more than enough proof of that.
There was this valiant effort
(disclosure: was involved in testing and feature suggestions) but the project had its limitations and was discontinued. There were other tools but most weren't fit for purpose (worked well with modern games that supported Arabic directly but with some lacking implementation). We (Asgore for the most part) redid our tools ahead of the release of our Zelda Breath of the Wild translation and made it more batch conversion friendly, though while powerful for our needs, it's still not general user friendly by any means. We still rely on regular expressions occasionally.
A preliminary version of the tool can be found here
but its python version is getting discontinued and reworked. The executable in the build is behind the latest changes (implementing Persian for a friend who's working on a certain unannounced project, some bugs specific to Persian happened. That's also when we realized other languages will be unsupported in our current implementation unless it's massively reworked, but it's alright either way. Right now it supports all languages included in the Presentation Forms A codepage.)
The most important part is the config menu here, that specifies if the tool needs to preprocess the text for RTL, BiDi, or reshaping. The options below are for games with absolutely no ASM changes (simplest case), and an arbitrarily defined character replacement table.
That character replacement table can be defined here (.act file extension), then it's saved as a new file and loaded in the previous window.
There are other options like escape codes for direct hexadecimal values, or various ways of handling diacritics (depending on whether the game's rendering engine allows it). I think the most important one that might cause problems is the one for line breaks, but the defaults should work.
The complete game script can be copied here and the tool will convert it just fine.
It's not very understandable, man. Very hard to read.
And how do you edit the text? In what alphabet you type it, and with what kind of editor?
And... I can't say I'm not pleasantly surprised to see RodMerida's interest in Arabic. I was interested in working on Dragon Quest 3R for a while but working on a buggy English version as a base wasn't a very attractive prospect, and was really thankful for his recent bugfix patch. I'm glad I could help you in some way.
If you have any questions in general that might be of help to you please don't hesitate to ask.