ポスト内で、ノンブレークスペース(NBSP、U+00A0)や、より狭いノンブレークスペース(NNBSP、U+202F)を許可することは可能でしょうか?
現在、Discourse はこれらを通常のスペース(SP、U+0020)に置き換えてしまいます(コード断片内でも同様です)。その結果、テキストが折り返された際にフランス語の数字表示が崩れてしまいます。
フランス語では、少なくとも NNBSP を以下の箇所に使用する必要があります:
!?;:» のような終止符の前
«–— のような始止符の後
大きな数字の 3 桁ごとのグループ間
フランス語の標準に照らして表示が崩れている例を以下に示します:
「2 400 000」や「28 800」は、このように途中で折り返されてはいけません。同じ行に収まるべきです。
テキストに NBSP や NNBSP が含まれている場合、それは誤字や意図しない間違いではないと考えられます。
「いいね!」 3
これらに対応するHTMLエンティティはありますか?例えば、\u0026nbsp; は次のように機能します:\u0026nbsp; \u0026nbsp; \u0026nbsp; \u0026larr; スペース
「いいね!」 3
NARROW NO-BREAK SPACE の千の区切り文字として \u0026#x202F; を試してみましょう。80\u0026#x202F;000 テスト 80\u0026#x202F;000 テスト 80\u0026#x202F;000 テスト 80\u0026#x202F;000 テスト 80\u0026#x202F;000 80\u0026#x202F;000 テスト 80\u0026#x202F;000 テスト 80\u0026#x202F;000 80\u0026#x202F;000 テスト 80\u0026#x202F;000 テスト 80\u0026#x202F;000 テスト 80\u0026#x202F;000 テスト 80\u0026#x202F;000 テスト 80\u0026#x202F;000 テスト 80\u0026#x202F;000 テスト 80\u0026#x202F;000 80\u0026#x202F;000 テスト 80\u0026#x202F;000 テスト 80\u0026#x202F;000 テスト 80\u0026#x202F;000 テスト 80\u0026#x202F;000。
これで確かに動作します!
他のフォーラムの投稿を編集したところ、数字が正しく表示されるようになりました。
名前付き HTML エンティティはありませんが、このように Unicode コードを使用できます。
回避策を提供してくださった @codinghorror さん、ありがとうございます。
「いいね!」 2
これに賛成です。フランス語では、コロン :、感嘆符 !、疑問符 ? の前にノンブレイクスペースを置きます。これらは前の単語とスペースで区切られているため、次の行に折り返されないようにするためです。
ノンブレイクスペースを通常のスペースに置換する現在の動作:
ノンブレイクスペースを保持することで、「孤立したセミコロン」の問題は解消されます:
これらの文字に対して、他の非 ASCII 文字と同様に HTML エスケープシーケンスを設ける必要はないと考えます。ページは UTF-8 でエンコードされてブラウザに提供されるため、ノンブレイクスペースも他のすべての文字と同様に UTF-8 表現を持っています。例えば:
→, √, ½, ñ, Ł, …
(つまり、Discourse がほとんどの Unicode シーケンスを許可しているのに、なぜノンブレイクスペースだけを許可しないのでしょうか?)
「いいね!」 4
はい、完全に同意します。
NARROW NO-BREAK SPACE の \u0026#x202F; という構文は、いつもうっかり忘れてしまいます。
「いいね!」 1
そして U+202F のナローノーブレークスペース も。フランス語の印刷物のように、最も自然に見える句読点の前の文字。
sam
(Sam Saffron)
2021 年 11 月 15 日午前 12:14
8
これは、テキストクリーナーです。
@@whitespaces_regexp = Regexp.new("(\u00A0|\u1680|\u180E|[\u2000-\u200A]|\u2028|\u2029|\u202F|\u205F|\u3000)", "u").freeze
def self.normalize_whitespaces(text)
text&.gsub(@@whitespaces_regexp, ' ')
end
これは、人々が投稿を編集しても何も変わらず、人々が「…何が変わったのか?」と首をかしげるような、些細な荒らし行為を防ぐために行われたのだと思います。
「いいね!」 3
ええ、私もそう記憶しています。そのような「文字」を使って荒らし行為が行われた場合に、より良い差分表示の方法があれば、この mornalize_whitespaces メソッドを削除しても構いません。
「いいね!」 3
oca
2023 年 1 月 26 日午前 8:41
10
新しい設定(デフォルトでオン)で mornalize_whitespaces を実現できますか?そうすれば、ローカル管理者は、タイポグラフィよりもグリーフィングの方が問題にならない場合に、この機能を選択解除できますか?
「いいね!」 1
Jagster
(Jakke Flemming)
2023 年 1 月 26 日午後 12:06
11
Googleで軽く検索したところ、それは事実ではないとわかりました。それとも、「スペースで区切られている」の意味を誤解しているのでしょうか? ← この疑問符はスペースで区切られていないはずです。
そして、その文法規則は、数値を区切る場合と同様に、すべての(西洋の)言語に適用されます。例えば、このようなものも存在しないはずです
フランス語で「単語と句読点を「貼り付ける」」と述べている情報源を教えていただけますか?
以下は、句読点(「?」、「!」、「:」、「.」や「,」ではない)は、単語の左側にスペースを空けるべきであると述べている情報源です。例:「« Comment vas-tu ? »」
https://jacques-andre.fr/faqtypo/lessons.pdf 32ページ(フランスのタイポグラフィに関する無料書籍)
「Lexique des règles typographiques en usage à l’Imprimerie nationale」(国立印刷局で使用されるタイポグラフィ規則の用語集)の149ページには、「espace fine insécable ? espace juistifiante」と記載されており、U+00A0(ノーブレークスペース)ではなく、U+202F(ナローノーブレークスペース)を使用するように指示されています(キーボードで入力する方法はわかりませんが、U+0020(スペース)ではありません)。(残念ながら書籍は無料ではないため、ハイパーリンクはありません)。
フランス語版Wikipedia には、「En France, il est d’usage de placer une espace fine insécable avant le point d’interrogation, ou une espace insécable si la fine n’est pas disponible.」(フランスでは、疑問符の前に細いノーブレークスペースを配置するのが慣習であり、細いスペースが利用できない場合はノーブレークスペースを配置します。)と記載されています。
「いいね!」 2
Jagster
(Jakke Flemming)
2023 年 1 月 26 日午後 3:45
13
フランス語を学べると思っている初心者向けの教材/ワークブックです 戻るべきですね…, 英語で何と言うのか分かりませんが、大人向けのコミュニティの夜間学校のようなものです — 余暇を過ごし、新しいことを学ぶ方法 — そしてそのテキストの写真を撮ります。
しかし、訂正します。あなたは私よりも確実にこのことを知っています。
「いいね!」 1