我有一个社区网站,我希望用户写
E.g。 Google+和Twitter提供了这样的POST解决方案。
当我从rtl或ltr中的数据库后加载中读取它时,我想自动添加方向属性!但我不知道怎么样?!
答案 0 :(得分:18)
您需要创建一个函数,其中包含您知道的所有字母都是RTL并在加载时检查。要显示RTL,您需要CSS属性direction
,text-align
和unicode-bidi
。
function checkRtl( character ) {
var RTL = ['ا','ب','پ','ت','س','ج','چ','ح','خ','د','ذ','ر','ز','ژ','س','ش','ص','ض','ط','ظ','ع','غ','ف','ق','ک','گ','ل','م','ن','و','ه','ی'];
return RTL.indexOf( character ) > -1;
};
var divs = document.getElementsByTagName( 'div' );
for ( var index = 0; index < divs.length; index++ ) {
if( checkRtl( divs[index].textContent[0] ) ) {
divs[index].className = 'rtl';
} else {
divs[index].className = 'ltr';
};
};
.rtl {
direction: rtl;
text-align: right;
unicode-bidi: bidi-override;
}
.ltr {
direction: ltr;
text-align: left;
unicode-bidi: bidi-override;
}
<div>hello</div>
<div>ظ</div>
答案 1 :(得分:2)
您可以在html标签中指定dir="rtl"
,以便使用php
或如果您没有使用它,在将上下文存储到数据库时,您可以选择使用作者使用的文本方向存储变量。
因此,在提取帖子时,您还可以获取作者标记的选项。
否则,就像其他程序员所建议的那样,解析内容,看看它的阿拉伯字符或拉丁字符。
示例强>
<body dir="<?php se_11787707_get_post_language(); ?>">
如果没有关于如何发布帖子的更多信息,我无法详细说明。 请提供 如何存储您的帖子以及如何获取它们。
我使用此tecnique构建了一个网站,我每天处理阿拉伯语rtl内容。这很简单:
dir =“rtl”的工作示例
参考:w3.org
答案 2 :(得分:1)
<p dir='auto'>Hello</p>
<p dir='auto'>سلام</p>
答案 3 :(得分:1)
只有CSS解决方案:
div {
text-align: start;
unicode-bidi: plaintext;
}
不幸的是,此解决方案不适用于Microsoft Edge。
答案 4 :(得分:0)
实际上阿拉伯字母是这些
var RTL = ['ا','ء','ب','ت','ث','ج','ح','خ','د','ذ','ر','ز','س','ش','ص','ض','ط','ظ','ع','غ','ف','ق','ک','ل','م','ن','و','ه','ی'];
和波斯语(波斯语)字母是这些
var RTL = ['ا','ب','پ','ت','ث','ج','چ','ح','خ','د','ذ','ر','ز','ژ','س','ش','ص','ض','ط','ظ','ع','غ','ف','ق','ک','گ','ل','م','ن','و','ه','ی'];
如果检查第一个和第二个字母会有用,因为有时它可以通过子弹或类似的东西开始。
for ( var index = 0; index < divs.length; index++ ) {
if( checkRtl( divs[index].textContent[0] ) || checkRtl( divs[index].textContent[1] ) ) {
divs[index].className = 'rtl';
} else {
divs[index].className = 'ltr';
};
};