問題タブ [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.
javascript - 双方向テキスト - 視覚から論理へ
画面に一文字ずつ文字を描いています。
英語では、テキストが LTR であるため、文字は表示されている順序で文字列に保存されるため、非常に単純です。
RTL テキストを描画するときは、印刷の方向を切り替える必要があります。しかし、文字と数字と英語といくつかのRTL言語があると.. 混乱が始まります.
例の場合。
ex.1: שלום לכם
ש- は文字列の最初の文字ですが、最後に表示されていることがわかります。
例 2: שלום to all ש- は文字列の最初の文字ですが、英語が始まる前の真ん中に表示されていることがわかります。
数字や数学記号が登場し、反転が必要な「(」、「)」などの特殊文字が登場すると、さらに複雑になります...
文字列内の文字の論理的な順序を視覚的な順序に変更する Bidi アルゴリズムをオンラインで多数見つけました。したがって、変換された文字列を左から右に実行すると、文字列が正しく印刷されると確信しています。
しかし、それらは決して完璧ではありません。正常に動作しない場合があります。テキストの方向も考慮していません (つまり、キーボードで右の Ctrl+Shift を押すと、視覚化が再び変更されます)。
私の質問は
- 文字列をメモリに保存したものから視覚的な順序に変更するために使用できる防弾Bidiアルゴリズムを知っている人はいますか?
- 私の問題を解決する簡単な方法はありますか? 多分どういうわけかそれのためのブラウザアルゴリズムを手に入れます..
html - bdo タグに縦書きのオプションがないのはなぜですか?
bdo タグで左から右のテキストと右から左のテキストしか指定できないのはなぜですか? 日本語が使用していたものやモンゴル文字が使用していたもののように、作成者が縦書きテキストを指定できないのはなぜですか?
arabic - アラビア語のテキストに対して括弧をどこに置くべきですか?
私たちのアプリケーションは、アラビア語のテキストの後に括弧が続くと、そのレイアウトを自動的に変更します。
アプリケーションは、次の形式でアイテムを表示します。
したがって、英語の構造体「stackoverflow」のバージョン 1.5 は次のように表示されます。
注:括弧を表示する必要があります。ID と最初のブラケットの間にスペースはありません。括弧は単にバージョンを囲んでいます。ブラケットはどのキャラクターでもかまいませんが、今すぐ別のキャラクターに切り替えるには遅すぎます!
これは左から右の言語では問題なく機能しますが、アラビア語の場合、構造は次の形式で表示されます。
私はアラビア語を話さないので、これが実際に正しいかどうかを知る必要があります. アラビア語の形式は英語の形式と同等ですか、それとも何かひどく間違っていますか?
c# - RTL ワードと LTR ワードの両方をサポートするための Run/Paragraph のスタイリング
RTL ワードと LTR ワードの両方をサポートするためにRunand/orのスタイルを設定するにはどうすればよいですか?Paragraph
問題は、ペルシャ語と英語の両方の単語を含む複雑なテキストがあり、.docxOpenXML SDK を使用してドキュメントを作成しようとしていることです。しかし、英単語も RTL になります。次のテキストがあるとします。
Javad Amiry は、最初の 1 枚の写真と 2 枚の写真の 2 枚目の写真です。
次のようにドキュメントにテキストを配置することを期待しています。
しかし、私はこれを取得しています:
ご覧のとおり、英単語はその逆です。つまり、私が期待している間Javad Amiry、私は得ていdavaJ yrimAます! それを修正する考えはありますか?
私が使用しているスタイルを以下に示します。
前もって感謝します。
c++ - Unicode、_stprintf()、および混合テキストの方向
Unicode をサポートするために一部のレガシー C++ コードのリファクタリングに取り組んでおり、_stprintf が _T("%s %s") のフォーマット文字列で使用され、引数が次の場合に問題が発生しています。 ) の後に、文字配列に格納されたいくつかの数字が続きます。コード スニペットを次に示します。
私が buf で取得するのは حبيبيحبيبيحبيب 12345678h90 ですが、取得したいのは Text 配列の内容とそれに続く Number 配列の内容です。(ここに貼り付けようとしましたが、_stprintfと同じ方法で自動的にフォーマットされました...)。
この理由は、アラビア語のテキストが強力な文字型であり、すべての数字が弱い型であるためであり、比較的単純な解決策があることを知っています- _stprintf をオーバーロードし、パラメーター文字列が数字で始まるかどうかを確認し、先頭に U+200E ( \u200E) 制御文字。しかし、グローバル設定か何かのように、私が知らないもっと簡単な解決策があるかもしれないと思わずにはいられませんか?そのようなものはありますか?
これらの文字列は SetWindowText に渡され、アラビア語のために間違った順序で表示されます。私の主な目標は、それらを UI で適切にレンダリングすることです。
delphi - 左にマイナスを表示する方法 (Delphi, TListview)
TListview彼のプロパティを持つアイテムの左側に負の数のマイナス記号を表示しようとしていますBiDiMode = bdRightToLeft.
そこでコードを試しました:
実際、ブレークポイントを使用して評価すると機能しますstrResult。
しかしTListView、私のアイテムに表示されると:
次のように表示されます。14.2%-
表示している文字列などを変更しないように指示する方法はありTListviewますか?




