我在游戏聊天和TTS中遇到了阿拉伯文文本断裂的问题,所以我编写了一个小的C# / Unity库来解决这个问题 —— 并且解除它。
我在开发一个多人模式游戏聊天时遇到了这个问题。如果客户端或UI渲染器没有正确处理阿拉伯文的形状和方向,阿拉伯文可能会出现断裂、倒置或不可读。
通常的解决方案是将阿拉伯文文本“烘烤”成可视化呈现的符号,以便即使在没有阿拉伯文处理能力的渲染器中也能正确显示。这种方法在UI中有效,但会导致第二个问题:文本不再是干净的逻辑阿拉伯文。因此,TTS、搜索、监管日志和分析可能会读取或存储垃圾文本。
所以我编写了 arabic-rt。
它做了什么:
fix()→ 将阿拉伯文形状/方向处理好,以便在没有阿拉伯文处理能力的客户端中渲染正确unfix()→ 将烘烤的可视化文本转换回干净的逻辑阿拉伯文- 包括一个
GAME预设用于词语-词语聊天读者 - C# / Unity + Python 端口
- 没有依赖项
- MPL-2.0 许可证
C# 和 Python 端口设计成产生字节-字节相同的输出,因此在Unity中烘烤的文本可以正确在Python中回流。
演示:
https://huggingface.co/spaces/balswyan/arabic-rt
C# / Unity:
https://www.nuget.org/packages/ArabicRt
https://github.com/balswyan/arabic-rt-dotnet
Python/源码:
https://pypi.org/project/arabic-rt/
https://github.com/balswyan/arabic-rt
我非常希望从Unity开发者那里收到反馈,尤其是那些曾经处理过阿拉伯文、RTL聊天、本地化、TTS或游戏中的监管/日志管道的人。
评论 (0)