プロジェクト

全般

プロフィール

Bug(バグ) #2465

未完了

性別の英語表記「Man/Female」となっている部分がある

Yuya Watanabe さんが約13年前に追加. 12年以上前に更新.

ステータス:
Pending Fixing(修正待ち)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2011-10-04
期日:
進捗率:

0%

予定工数:
3.6 で発生するか:
3.8 で発生するか:

説明

概要

性別の英語表記「Man/Female」となっている.本来は「Man/Woman」あるいは「Male/Female」という表記になるべきだと思われる.

確認手順

プロフィール項目について表示を確認する条件は下記の通り.
  • 管理画面プロフィール項目(pc_backend.php/profile/list)においてプリセットとして「性別」の項目が追加されている
    • 無い場合は「プロフィール項目登録」(pc_backend.php/profile/edit)のページを開き,「プリセットから選択する」を選び,「プリセット」の項目を「性別」にして「追加」ボタンを選択する.
  • SNSのどこかしらのガジェットに言語切り替えボックスが存在する
    • デフォルトはデザイン設定ガジェットのサイドバナー設定(pc_backend.php/design/gadget/type/sideBanner)によってサイドバナーに表示されている
手順は以下のとおり
  1. プロフィール編集画面(member/edit/profile)を開く
  2. 「性別」の項目が存在していることを確認する
  3. 言語切り替えボックスで「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」となっている部分がある に変更
  • 説明 を更新 (差分)

Yuya Watanabe さんが約13年前に更新

  • ステータスNew(新規) から Accepted(着手) に変更

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(修正待ち) に変更

時間が取れないため,一旦ステータスを「修正待ち」にします.

Shouta Kashiwagi さんが12年以上前に更新

  • 対象バージョンOpenPNE 3.7.0 から 252 に変更

Shouta Kashiwagi さんが12年以上前に更新

  • 対象バージョン252 から OpenPNE 3.8.x に変更

他の形式にエクスポート: Atom PDF