显示阿拉伯文字

时间:2017-06-22 16:32:45

标签: javascript html css arabic right-to-left

我想在阿拉伯语中显示 25%* ,这应该是这样的:*%25

我尝试使用方向显示此内容:rtf ,但是,当您向其添加一些阿拉伯语文本时,它似乎只能正确显示它。运行下面的代码段,看看我的意思:

var arabicword = "إلى";
var percent = "25%*";

document.getElementById('text2').innerHTML = arabicword+" "+percent;
document.getElementById('text1').innerHTML = percent;
.text {
  font-size:3em;
  width:300px;
  color:white;
  background: grey;
}

.arabic{
  background:green;
  direction:rtl;
}
<div id="text1" class="text arabic">0</div>
<br>
<div id="text2" class="text arabic">0</div>
有没有可靠的方法来实现这一目标?我试图添加一个阿拉伯语空白字符,但似乎没有一个

提前致谢

5 个答案:

答案 0 :(得分:1)

left-to-right mark &lrm;可以控制此:

&#13;
&#13;
var arabicword = "إلى";
var percent = "25&lrm;%*"

document.getElementById('text2').innerHTML = arabicword+" "+percent;
document.getElementById('text1').innerHTML = percent;
&#13;
.text {
  font-size:3em;
  width:300px;
  color:white;
  background: grey;
}

.arabic{
  background:green;
  direction:rtl;
}
&#13;
<div id="text1" class="text arabic">0</div>
<br>
<div id="text2" class="text arabic">0</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

显示末尾具有非阿拉伯字符的阿拉伯文本时,对此的最佳解决方法是在非阿拉伯字符之后包含Unicode RTL代码。

在不同方向的文字行之间放置标点符号等中性字符时,会发生这种情况。例如,阿拉伯语Unicode表没有对应的字符代码! @#$%*&

当您将这些拉丁字符中的任何一个添加到阿拉伯语文本的末尾时,该字符将其自身正确定位在阿拉伯语文本的右侧(即,从右向左阅读阿拉伯语文本之前);根据阿拉伯文本的方向,这是不正确的。

通过在中性拉丁字符后添加RTL“ \ u200F”的Unicode ;您指示拉丁字符保留RTL作为其余文本;这将解决问题。 不管句子的原始方向是RTL还是LTR,这都可以工作,因为阿拉伯字符始终沿RTL方向。

这还允许在同一句子中组合RTL和LTR文本。

这里有2个带有和不带有RTL Unicode的示例:

class RestroomForm(forms.ModelForm):
    class Meta:
        model = RestroomReview
        fields = (
            'user', 'public', 'rest_type', 
            'baby', 'needle', 'handicap', 
            'rating', 'title', 'comment'
            )

您可以在此处详细了解RTL Unicode:https://www.w3.org/TR/WCAG20-TECHS/H34.html

答案 2 :(得分:0)

好吧,我能够通过在数字和百分号之间添加一个空格来实现这一点。不确定这是最好的方式,但它可靠。

var arabicword = "إلى";
var percent = "25 %*";

document.getElementById('text2').innerHTML = arabicword+" "+percent;
document.getElementById('text1').innerHTML = percent;
.text {
  font-size:3em;
  width:300px;
  color:white;
  background: grey;
}

.arabic{
  background:green;
  direction:rtl;
}
<div id="text1" class="text arabic">0</div>
<br>
<div id="text2" class="text arabic">0</div>

答案 3 :(得分:0)

感谢您的建议。我实际上找到了一个空的阿拉伯字符&amp;#1564 ,并在前面添加它修复它

&#13;
&#13;
var arblank = "&#1564;"
var arabicword = "إلى";
var percent = "25%*";

document.getElementById('text2').innerHTML = arabicword+" "+percent;
document.getElementById('text1').innerHTML = arblank+percent;
&#13;
.text {
  font-size:3em;
  width:300px;
  color:white;
  background: grey;
}

.arabic{
  background:green;
  direction:rtl;
}
&#13;
<div id="text1" class="text arabic">0</div>
<br>
<div id="text2" class="text arabic">0</div>
&#13;
&#13;
&#13;

答案 4 :(得分:0)

当阿拉伯语文本中有一个带有百分号的数字时,正确的阿拉伯语书写方式是这样写:

النسبة المئوية هي %25

这意味着 % 符号在英文文本中位于数字的右侧。

因此,无需将 % 符号的位置切换到数字的左侧。