私はコミュニティのウェブサイトを持っていて、ユーザーに書いてもらいたい
- 方向LTR/text-align:left)の英語の投稿と
- 方向RTL/text-alignのアラビア語の投稿:右。
たとえば、Google+とtwitterはそのようなPOSTソリューションを提供します。
rtlまたはltrのデータベースpostloadから読み取るときに、postに方向属性を自動的に追加したい!しかし、私は方法がわかりませんか?!
私はコミュニティのウェブサイトを持っていて、ユーザーに書いてもらいたい
たとえば、Google+とtwitterはそのようなPOSTソリューションを提供します。
rtlまたはltrのデータベースpostloadから読み取るときに、postに方向属性を自動的に追加したい!しかし、私は方法がわかりませんか?!
知っているすべての文字が 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>
dir="rtl"
PHPで正しいプレゼンテーションを行うために、htmlタグで指定できます
CMS で、または CMS を使用していない場合は、コンテキストを DB に保存するときに、作成者が使用したテキストの方向で変数を保存するオプションを使用できます。
したがって、投稿を取得するときに、作成者がマークしたオプションも取得できます。
それ以外の場合は、仲間のプログラマーが提案したように、コンテンツを解析して、アラビア文字かラテン文字かを確認してください。
例
<body dir="<?php se_11787707_get_post_language(); ?>">
投稿の公開方法に関する詳細情報がなければ、これ以上詳しく説明することはできません. 投稿の保存方法と取得方法を教えてください。
私はこの手法を使用してサイトを構築し、毎日アラビア語の rtl コンテンツを扱っています。それはとても簡単です:
dir="rtl" の実際の例
参考:w3.org
実はアラビア語のアルファベットはこれ
var RTL = ['ا','ء','ب','ت','ث','ج','ح','خ','د','ذ','ر','ز','س','ش','ص','ض','ط','ظ','ع','غ','ف','ق','ک','ل','م','ن','و','ه','ی'];
とペルシア語 (ペルシア語) のアルファベット文字はこれらです
var RTL = ['ا','ب','پ','ت','ث','ج','چ','ح','خ','د','ذ','ر','ز','ژ','س','ش','ص','ض','ط','ظ','ع','غ','ف','ق','ک','گ','ل','م','ن','و','ه','ی'];
1 番目と 2 番目の文字を確認すると、箇条書きなどで始まる場合があるので便利です。
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';
};
};