我试图在HTML5 Canvas'2d Context上使用fillText()方法来绘制用阿拉伯语编写的字符串.它完美无缺,直到我在字符串的末尾加上一个标点符号.然后标点符号出现在字符串的错误一侧(在开头,而不是结尾,就好像它是一个不是rtl字符串的ltr).我使用了Context.textAlign属性,但这似乎只涉及相对于指定位置绘制字符串的方式,而不是文本的实际方向.有谁知道这个解决方案?
谢谢.
更新:我找到的答案是在页面上的canvas元素中添加"dir"属性.例如,
<canvas dir="rtl">
Run Code Online (Sandbox Code Playgroud)
但是,我仍然不知道如何更改发送到fillText的单个字符串的dir属性.有任何想法吗?
有没有一种方法可以对 HTML 页面上的文本进行样式化,以便它针对不同的语言自动使用不同的字体?我的网站使用英语和阿拉伯语。我想根据显示的语言使用不同的字体。
\n\n假设我有这样的一段:
\n\n\xd9\x87\xd8\xb0\xd9\x87\xd8\xa7\xd9\x84\xd8\xac\xd9\x85\xd9\x84\xd8\xa9\xd9\x85\xd9\x83\xd8\xaa\xd9 \x88\xd8\xa8\xd8\xa9 \xd9\x81\xd9\x8a \xd8\xa7\xd9\x84\xd9\x84\xd8\xba\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xb9 \xd8\xb1\xd8\xa8\xd9\x8a\xd8\xa9 \xd9\x88\xd9\x84\xd9\x83\xd9\x86 \xd8\xa7\xd9\x84\xd8\xac\xd9\x85\xd9 \x84\xd8\xa9 \xd8\xa7\xd9\x84\xd8\xaa\xd8\xa7\xd9\x84\xd9\x8a\xd8\xa9 \xd9\x85\xd9\x83\xd8\xaa\xd9\x88 \xd8\xa8\xd8\xa9 \xd9\x81\xd9\x8a \xd8\xa7\xd9\x84\xd8\xa5\xd9\x86\xd8\xac\xd9\x84\xd9\x8a\xd8\xb2\xd9 \x8a\xd8\xa9。上一句是阿拉伯语,但这一句是英语。
\n\n我希望阿拉伯语句子用 X 字体呈现,但英语句子用 Y 字体呈现。
\n\n有没有一种方法可以做到这一点,而无需根据服务器端有关其语言的知识手动为每组文本指定不同的 CSS 样式,即将每个句子包装在不同的 CSS 类中?
\n\n谢谢
\n