問題タブ [bidi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - FlyingSaucer LTR/RTL/BiDi のアラビア語テキストの問題
PDFドキュメントの作成に空飛ぶ円盤xhtmlrendererを使用しています。今まではすべて正常に機能していました。これで、pdf 内にアラビア語のテキストを生成する必要があります。Xhtmlrenderer はアラビア語のテキストを逆の順序でレンダリングしています。
xhtmlrendererがbidi / rtlをサポートしていないことをインターネットのどこかで(おそらく自分のサイトで)読みました。ただし、IText 自体には、ColumnText および PdfPTable を介してアラビア語およびヘブライ語で動作する例が含まれています (ソースはここにあります: http://sourceforge.net/projects/itextpdf/files/Examples/examples-155/examples-155.zip/download - arabic_hebrew.java)、それらは正常に動作します。
xhtmlrenderer の ReplacedElementFactory/ITextReplacedElement で itext api を使用しようとしましたが、要素を配置するための適切な例が見つかりませんでした。誰かがこれをやろうとしましたか?それとも、より単純な (または少なくとも機能する) 解決策がありますか?
html - このRTLレイアウトをHTMLで作成するにはどうすればよいですか?
ヘブライ語とラテン文字の両方を含む次のテキストレイアウトを取得しようとしています。
2011、HEBREW 11、英語
大文字はヘブライ文字を表し、全体を右揃えにする必要があります。
これが私が試したもののいくつかです:
ヘブライ文字が最後にあるように見えますが、実際には2つの数字の間にあります。
最初の3つは語順を乱雑にし、最後の2つは語順を正しくしますが、ラテン文字は右から左に表示され、逆になります。
php - レイアウトを破壊する双方向テキスト
私のウェブサイトには、「Welcome username .」と表示されるヘッダーがあります。
問題は、ユーザーが自分の名前を U+202Eusername (U+202E は右から左へのオーバーライド文字、または RLO) に変更すると、すべてのレイアウトが壊れることです。
「Welcome emanresu .」の代わりに、 「Welcome . emanresu」とか「.emanresu Welcome」とか、そんな感じで表示されます。ユーザー名の後に U+202C (ポップ方向の書式設定または PDF) 文字を追加してみましたが、うまくいきました。このような:
ただし、ユーザー名に複数の RLO 文字が含まれていると、再び壊れます。したがって、RLOの文字をPDFの文字と一致させる必要がありますが、これを行う方法がわかりません。そして、W3C 仕様によると、これに対する解決策はありません。ここで何か不足していますか?
c# - C#でUnicode文字の双方向文字型を見つけるにはどうすればよいですか?
C# で Unicode 文字の双方向文字型を見つける方法はありますか?
文字列内の文字を調べて、それらがすべて強い LTR、強い RTL、強い LTR とニュートラルの混合物などであるかどうかを判断したいと考えています。
wpf - WPFでのBidiの動作が正しくありませんか?
WPF で「Language」プロパティを設定すると、奇妙なことが発生します。
- ウィンドウまたはテキストボックス/テキストブロックでFlowDirectionを「RightToLeft」に設定します
- 言語プロパティを「fa-IR」に設定します
- テキストを以下のサンプル テキストのいずれかに設定します (A、B)
A. このテキストは、WPF 3.5 では正しくレンダリングされません。
電話番号: +44 1908 215040
WinForms と Silverlight で動作します。「LEFT-TO-RIGHT MARK」 (U+200E) が含まれていることに注意してください。
以下は、LRM が挿入されている場所を視覚化するために、LRM への数字参照を含む上記の HTML バージョンです。
B. このテキストは WPF で正しくレンダリングされます。
日付: + 44 1908 210210
しかし、不必要な LRM 文字が含まれている (と私は信じています)。試行錯誤しながら文章をまとめました。
これは、追加の LRM 文字を含む HTML バージョンです。
なぜ余分な文字が必要なのですか / 元のテキストのどこが間違っているのですか?
注: この問題は、XAML またはコード (Language="fa-IR" など) で明示的に Language プロパティを設定する IFF か、コードで Language プロパティの既定値をオーバーライドすることによって発生します (現在のカルチャが "fa-IR" であると仮定)。そのとおり:
language プロパティを en-US のままにしておくと、テキストは WPF で正しくレンダリングされますが、値の変換が機能するように Language を設定する必要があります。文化に依存するデータ。
LRO ('LEFT-TO-RIGHT OVERRIDE' (U+202D)) が無視されるなど、他の問題もあります。
これは、アプリケーションをペルシャ語とアラビア語にローカライズする際の障害になる可能性があるため、何が起こっているのかを理解する助けが本当に必要です。
問題をグーグルで検索できなかったので、私は何か間違ったことをしていると思います。これは、MS Connect に関する関連記事ですが、これまでのところ、動作がバグであると確認された人はいません。
http://connect.microsoft.com/WPF/feedback/details/682784/incorrect-unicode-bidi-behaviour#
注: 私は一般的に BiDi アルゴリズムに精通しておらず、WPF での実際の実装についてはさらに詳しく知りません。Unicode の基本的な理解があります。
java - JLabelの配置を左右に設定
2つのブロックに分離されたJPanelがあり、南のブロック(レイアウト)にJLabelを追加しました。ラベルに次のルールで文字列を挿入します。(Name, Date, Time, In/Out)
私の名前が英語で書かれている場合、すべてが問題なく、ペルシア語などのUnicode言語で名前を書いたときに問題が発生し、配置が期待どおりに機能しませんでした。2つのサンプルを添付します:
合っている物:
間違ったもの:
php - まだ実装されていないものをシミュレートする方法HTMLタグ?
HTML5の<bdi>
タグの目的は、双方向テキストをそのコンテキストから分離することです。そしてそれがまさに私が探しているものです。
左から右へのユーザー名は次のように表示されます。
右から左へのユーザー名を使用すると、次のようなひどいことになります。
または、コンテキストによってはさらに悪いことに、(ユーザーの名前だけでなく)周囲のすべてを逆方向に表示します。
問題は、まだタグをサポートしているブラウザがない<bdi>
ことです。それで、私はさまよっていました。それをシミュレートする方法はありますか?どのHTMLタグがそれを分離することもできますか?私は知っ<span>
ていますが、知り<div>
ません。
すべてのBIDI文字を削除したくはありませんが、私の見方では、サイトを適切に表示することの重要性>双方向言語のユーザーが参加する権利。
c# - C#のUnicode双方向テキストアルゴリズム?
Unicode 文字列を取り、それを正しくレンダリングできる実行に分割する Unicode アルゴリズムの C# バージョンはありますか? 各実行は、左から右または右から左のいずれかである必要があります。
これが Java ICU4J の一部であることは理解していますが、これは大きなライブラリであり、テキストを正しくレンダリングするために、この特定の機能のみを探しています。
html - HTML5 Canvas fillText with Right-to-Left string
I am trying to use the fillText() method on an HTML5 Canvas' 2d Context to draw a string written in Arabic. It works perfectly, until I put a punctuation mark at the end of the string. Then the punctuation mark appears on the wrong side of the string (at the beginning, rather than the end, as if it were a ltr not rtl string). I played with the Context.textAlign property, but that seems to concern only the way the string is drawn relative to the specified position, not the actual direction of the text. Does anyone know of a solution to this?
Thanks.
Update: The answer I found is to add a "dir" attribute to the canvas element on the page. For example,
However, I still don't know how to change the dir attribute for individual strings sent to fillText. Any ideas?
pdf - PDF テキストの方向
アラビア語などの右から左への言語のテキスト方向は、PDF でどのようにエンコードされますか? 私の理解では、PDF は基本的にグラフィカルな形式であるため、テキスト方向の概念を実際にエンコードする必要はありません。むしろ、グリフは画面上で右から左にペイントするだけで済みます。ただし、PDF リファレンス マニュアルには、WritingMode
左から右、右から左、上から下、下から上という組み合わせを指定できる という属性が記載されています。
だから私の質問は:
(1) 私の理解が正しく、RTL または LTR が画面上でのグリフの描画方法によって単に表現されている場合、WritingMode
属性のポイントは何ですか?
(2) グリフが描画される順序以外に、PDF ファイルにエンコードされた実際の方向性情報がない場合、PDF-to-Text プログラムは、特定の行が右から左に読み取られるべきか、または右から左に読み取られるべきかをどのように認識しますか?左から右へ?(PDF プログラムは、ToUnicode
マップから抽出された Unicode コードポイントが RTL 言語に対応する範囲に収まるかどうかをチェックするだけでよいと思います。)