Ваш Java-код может включать поиск на основе локали для определения режима записи. В вопросе " Как узнать, какая ориентация текста зависит от локали в java? " есть пример от того, кому приходилось кататься самостоятельно.
Кроме того, вы можете выполнить поиск в вашем XSLT. Для начала, вот функция XSLT 2.0 с использованием трехбуквенных языковых тегов, которые я написал некоторое время назад при форматировании переводов Всеобщей декларации прав человека (ВДПЧ):
<xsl:function name="m:writing-mode" as="xs:string">
<xsl:param name="lang" />
<xsl:sequence
select="if ($lang = ('heb', 'arb', 'pnb', 'skr',
'ydd', 'pes', 'urd', 'pbu',
'mly_arab', 'uig_arab',
'aii', 'div'))
then 'rl'
else 'lr'" />
</xsl:function>