Bug(バグ) #2465
未完了性別の英語表記「Man/Female」となっている部分がある
0%
説明
概要¶
性別の英語表記「Man/Female」となっている.本来は「Man/Woman」あるいは「Male/Female」という表記になるべきだと思われる.
確認手順¶
プロフィール項目について表示を確認する条件は下記の通り.- 管理画面プロフィール項目(pc_backend.php/profile/list)においてプリセットとして「性別」の項目が追加されている
- 無い場合は「プロフィール項目登録」(pc_backend.php/profile/edit)のページを開き,「プリセットから選択する」を選び,「プリセット」の項目を「性別」にして「追加」ボタンを選択する.
- SNSのどこかしらのガジェットに言語切り替えボックスが存在する
- デフォルトはデザイン設定ガジェットのサイドバナー設定(pc_backend.php/design/gadget/type/sideBanner)によってサイドバナーに表示されている
- プロフィール編集画面(member/edit/profile)を開く
- 「性別」の項目が存在していることを確認する
- 言語切り替えボックスで「English」を選択する
- 「Sex」のフォームで「Man」と「Female」が存在することを確認する
原因¶
lib/config/config/preset_profile.yml 23,24行目など
19 IsRequired: false 20 IsEditPublicFlag: true 21 DefaultPublicFlag: 0 22 Choices: 23 "F" : "Female" 24 "M" : "Man" 25 26 birthday: 27 Name: "birthday" 28 Caption: "Birthday"
修正案¶
デフォルトの状態では「Male/Female」ではなく「Man/Woman」と表記を行う.
確認環境¶
OpenPNE 3.7.0-dev (master)
Yuya Watanabe さんが約13年前に更新
- 題名 を プロフィール項目で性別の英語表記「Man/Female」となっている. から 性別の英語表記「Man/Female」となっている部分がある に変更
- 説明 を更新 (差分)
wa ta さんが約13年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 a53ebe7b057af4f2f61d2e7dcedaeff63a2edb99 で適用されました。
Minoru Takai さんが約13年前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
性別の表記に関して、 note-3 でも様々なファイルが修正されていることからも分かりますが、不幸なことに ('M' === $sex ? 'Man' : 'Woman') や ('Man' === $sex ? 'male' : 'female') のように、性別を示す値が、定数(や変数)ではなく文字列リテラルで様々な箇所に直接書かれているようです。尤も、定数であったとしても、定数 MAN と FEMALE のような組が使われていては本末転倒なのですが。
- man / woman (Man / Woman)
- male / female (Male / Female)
- M / W
- M / F
これらの文字列リテラルがソースコード中に散見されており、特別な理由もなく値が統一されていない状況は好ましくないですね(man/woman の組を使うか male/female の組を使うかという点についてですが、これはこのチケットの内容とは関係ありません)。
このチケットでは man/female という不自然な値の組を使っていることを修正しており、修正するという方針は良いと思います。また、 ('Man' === $sex) や ('M' === $sex) のような比較は見つかるものの、 ('Female' === $sex) や ('F' === $sex) は見当たらないため、この変更による影響は(バンドルプラグインも含めて)なさそうです。(もしかすると見逃しがあるかもしれません。この確認は十分行うべきです。)
'man', 'female', 'm', 'f' などの記述が残っていないかを調べてみましたが、以下で Man/Female の組に相当する記述が残っているようです。
- $ ack -a "'m'" -i --ignore-dir=vendor での結果の一部
lib/util/opOpenIDSregProfileExport.class.php 46: return ('Man' === $sex ? 'M' : 'F'); lib/util/opOpenIDAxProfileExport.class.php 79: return ('Man' === $sex ? 'M' : 'F');
これはこのままでよいものなのでしょうか。
コメントのみ行うつもりでしたが、ステータスを差し戻しにしておきます。
Yuya Watanabe さんが約13年前に更新
- ステータス を Rejected(差し戻し) から Accepted(着手) に変更
note-4の指摘部分について a5d48423 で修正.
十分な確認を行うためステータスはAcceptedにしておきます.
Yuya Watanabe さんが約13年前に更新
- ステータス を Accepted(着手) から Pending Fixing(修正待ち) に変更
時間が取れないため,一旦ステータスを「修正待ち」にします.