我有一个
不幸的是,这个解决方案远非完美。我有一些句子在同一个应用程序中,是从左到右的(例如,仅英文或英文中间带有一些希伯来语,但不是相反的)。
是否有任何方法可以基于每个字符串指定
<canvas>
,我想在上面渲染从右到左的字符串(例如带有一些英文单词的希伯来语句子)。可以为整个画布指定一个dir
属性。所以,在我的例子中,我会使用<canvas dir="rtl />
。不幸的是,这个解决方案远非完美。我有一些句子在同一个应用程序中,是从左到右的(例如,仅英文或英文中间带有一些希伯来语,但不是相反的)。
是否有任何方法可以基于每个字符串指定
dir
,而不使用两个或更多的<canvas>
?
Here's a naive example of how the dir
attribute chages that way the canvas
handles bidirectional strings:
var text = 'קצת text בעברית'
var rtlCanvas = document.getElementById('rtl-canvas')
var rtlCtx = rtlCanvas.getContext('2d')
rtlCtx.font = '24px Arial'
rtlCtx.fillText(text, 250, 50)
var ltrCanvas = document.getElementById('ltr-canvas')
var ltrCtx = ltrCanvas.getContext('2d')
ltrCtx.font = '24px Arial'
ltrCtx.fillText(text, 0, 50)
<div>
<p>Looking good with dir=rtl:</p>
<canvas id="rtl-canvas" dir="rtl" width=300 height=100/>
</div>
<div>
<p>With dir=ltr, first and last words are swapped</p>
<canvas id="ltr-canvas" dir="ltr" width=300 height=100/>
</div>
direction: rtl;
的类? - DSCH