如何根据输入文本语言自动设置文本方向?

时间:2013-03-15 20:52:45

标签: javascript html5 css3 bidi

在Google plus(以及其他很多地方),当我想发布内容时,当我用波斯语输入它时,这是一种从右到左的语言,文字方向会自动设置为 rtl < / strong>和text-alignment:right,当我开始输入英文时,它会自动更改为 ltr text-alignment:left。我怎么能有这样的功能?这有什么用HTML5或Javascript?我应该遵循哪些线索?

提前致谢

5 个答案:

答案 0 :(得分:5)

我写了一个JQuery代码来做到这一点。只需添加课程&#34; checkRTL&#34;到你想要设定方向的元素。

var rtlChar = /[\u0590-\u083F]|[\u08A0-\u08FF]|[\uFB1D-\uFDFF]|[\uFE70-\uFEFF]/mg;
$(document).ready(function(){
    $('.checkRTL').keyup(function(){
        var isRTL = this.value.match(rtlChar);
        if(isRTL !== null) {
            this.style.direction = 'rtl';
         }
         else {
            this.style.direction = 'ltr';
         }
    });
});

答案 1 :(得分:4)

还有Twitter的图书馆,可能有所帮助:

https://github.com/twitter/RTLtextarea

答案 2 :(得分:2)

  1. 列出从右到左的语言典型字符
  2. 动态检测它们(通常的js事件)
  3. 相应地更改css类
  4. 或点击此链接:

    http://www.i18nguy.com/temp/rtl.html

答案 3 :(得分:2)

在您的元素中添加dir="auto",然后使用window.getComputedStyle(element).getPropertyValue('direction')

示例:

<div id="foo" dir="auto">نے والے ہیں۔<div>

// returns rtl
window.getComputedStyle(document.getElementById('foo')).getPropertyValue('direction')

答案 4 :(得分:0)

dir=auto添加到您的输入元素:

  

在表单和插入的文本上使用dir =“ auto”,以便自动检测运行时提供的内容的方向。

https://www.w3.org/International/questions/qa-html-dir#quickanswer