Направление текста FabricJS справа налево

Я пытаюсь использовать иврит, который является языком "справа налево", настройка "по умолчанию" слева направо" искажает все знаки препинания Любые идеи о том, как изменить "слева направо" на "справа налево" в текстовом элементе FabricJS?


person alutz    schedule 14.08.2013    source источник
comment
В настоящее время мы не поддерживаем текст RTL. Возможно, вы можете просто перевернуть текстовую строку, прежде чем создавать из нее fabric.Text?   -  person kangax    schedule 15.08.2013
comment
нельзя ли использовать свойство стиля исходного элемента?   -  person arty    schedule 16.08.2013
comment
@kangax, спасибо за ответ. Проблема с изменением направления текста заключается в том, что я использую иврит с диакритическими знаками, которые идут в направлении языка. Возможно, есть другая работа? Или, возможно, файл, который я могу отредактировать, чтобы разрешить RTL? И как вы думаете, скоро ли появится поддержка RTL?   -  person alutz    schedule 19.08.2013
comment
Поддержка RTL, честно говоря, имеет низкий приоритет, у нас есть много других вещей, которые мы планируем в ближайшем будущем. Если кто-то еще не внесет свой вклад. Если буквы идут в другом направлении, разве горизонтальное переворачивание не должно помочь?   -  person kangax    schedule 20.08.2013
comment
@kangax есть новости по этому поводу?   -  person Thakur Karthik    schedule 30.03.2020


Ответы (2)


вы можете добавить RTL на свой холст, это решит вашу проблему. Используя ткань, у вас есть 2 элемента холста, поэтому:

для визуальной части: Попробуйте это:

<canvas dir="rtl" ></canvas>

И если вы хотите создать изображение из этого холста, добавьте RTL на верхний холст:

$(".upper-canvas").css("direction","rtl");

Я использую иврит, и он отлично работает, возможно, кто-то может добавить это в исходный код.

person Noam Vaza    schedule 07.04.2014
comment
Это просто не сработало. Я использую Fabric JS 3.6.3. - person rostamiani; 16.04.2020

Вы можете использовать атрибут textAlign и установить его правильно

e.g.

var text = 'this is\na multiline\ntext\naligned right!';
var alignedRightText = new fabric.Text(text, {
  textAlign: 'right'
});
person user2951807    schedule 26.05.2015
comment
выравнивание и направление текста — это два разных понятия. Выравнивание определяет, где находится вся линия. влево, или вправо. он определяет границы ЛИНИИ. но направление определяет, будут ли СЛОВА В ЛИНИИ сортироваться справа или слева. это означает, что если свойство direction установлено вправо, то курсор всегда находится в крайнем правом конце. - person Makan Tayebi; 25.12.2015