I just did a quick test in TADS 3, and it supports UTF-8 Arabic verbs:
DefineIAction(Foo)
execAction()
{
"هذا هو المطبخ";
}
;
VerbRule(Foo)
'المطبخ'
: FooAction
verbPhrase = ''
;
This results in the following while running the game in QTads:
>المطبخ
هذا هو المطبخ
(The vanilla TADS interpreter probably won’t work for this. The TADS Workbench also won’t work for writing the code. You need an editor with Unicode support.)
However, you would need to translate the TADS 3 parser to Arabic yourself, and RTL input and output would need to be implemented in the interpreter. It might be easier to use WebUI instead so that the output is rendered by a web browser, not by the interpreter.