ユーザー名で許可する文字の制限を解除することは、最も古い機能リクエストの一つです。Discourse 2.3.0.beta9 以降、ユーザー名やグループ名内で Unicode 文字を使用できるようになりました。
新しいサイト設定
2 つの新しいサイト設定が追加されました:allowed unicode username characters(許可する Unicode ユーザー名文字)と unicode usernames(Unicode ユーザー名)。
allowed unicode username characters 設定では、特定の Unicode 文字のみを許可できます(例:[äöüßÄÖÜẞ] や \p{Greek})。デフォルトでは、Discourse は文字(Ll / Lm / Lo / Lt / Lu)、記号(Mc, Me, Mn)、および数字(Nd, Nl、ただし No は除く)を許可します。この設定で許可される文字を制限することはできますが、追加の文字を許可することはできません。また、ASCII 文字や数字を禁止することもできません。
コミュニティのニーズに合わせて調整し、コミュニティで使用されている言語に必要な文字とスクリプトのみを許可してください。
正規表現における 文字クラス や 文字プロパティ について詳しく知りたい場合は、Ruby のドキュメントをご覧ください。
unicode usernames はデフォルトで無効化されており、ホモグラフユーザー名のなりすまし を防ぐために、これを有効にする前に必ず allowed unicode username characters 設定を構成することを強く推奨します。
許可される値の例:
- zh_CN 中国語:
[\p{Han}] - zh_TW 中国語:
[\p{Han}] - ko 韓国語のみ:
[\p{Hangul}] - jp 日本語:
[\p{Han}\p{Katakana}\p{Hiragana}] - jp 日本語(カタカナのみ):
[\p{Katakana}] - fi フィンランド語:
[åäöÅÄÖ] - cs チェコ語:
[ěščřžýáíéóůúďťň]
Letter Avatar サービス
Letter Avatar サービスが更新され、最も一般的に使用されるスクリプトでのアバター生成に対応しました。お使いの言語でアバターが表示されない場合は、Google Noto Fonts ファミリーからフォントを追加するための GitHub 上のプルリクエスト を作成してください。
unicode usernames を有効化できるのは、external system avatars enabled(外部システムアバターの有効化)サイト設定が有効になっている場合のみです。内部のアバタージェネレーターは Unicode をサポートしていないためです。外部サービスに依存したくない、またはできない場合は、Letter Avatar サービス の独自のインスタンスを運用することもできます。
知っておくべきこと…
Discourse は、ユーザー名の長さ(min username length および max username length サイト設定)を検証する際、Unicode コードポイントではなく グラフエムクラスター(「ユーザーが認識する文字」) をカウントします。Letter Avatar サービスも、アバターを生成する際にユーザー名の最初のグラフエムクラスターを使用します。
また、reserved usernames(予約済みユーザー名)サイト設定もご確認ください。フォーラムがユーザー名で Unicode をサポートするようになった今、追加のユーザー名を登録しておくと良いでしょう。
フィードバック
コミュニティで Unicode ユーザー名を有効にしましたか?フィードバックをお聞かせください。
また、Discourse がサポートする各ロケールに対して、unicode username character whitelist(Unicode ユーザー名文字のホワイトリスト)の適切なデフォルト値を提供したいと考えています。正規表現の提案を返信にてお気軽にお寄せください。


Unicode username does enable more names to be fake as admin/moderator.