Bug(バグ) #1453
文言設定で指定の言語がない場合Fatalエラーとなる
100%
説明
関連するチケット
関係しているリビジョン
(fixes #1453) fixed to treat as English User when the language is not supported
履歴
#1 Shogo Kawahara が13年以上前に更新
- 優先度 を Normal(通常) から Low(低め) に変更
#2 Shogo Kawahara が13年以上前に更新
- 優先度 を Low(低め) から Normal(通常) に変更
#3 Rimpei Ogawa が13年以上前に更新
- 3.6 で発生するか を Yes にセット
#4 Itsuro Tajima が13年以上前に更新
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Itsuro Tajima にセット
i18nではなく、sns_termの問題のようです。
#5 Itsuro Tajima が13年以上前に更新
現状では、対応している言語はOpenPNEプロジェクトの実装によってあらかじめ決まっており、利用者がsuppoerted_languagesを編集する必要、利益がそもそもないと考えられます。このため、
■suppoerted_languagesを、OpenPNE.ymlから隔離する
■OpenPNE.ymlに「Do not change this line」などの注釈を加える
などの対策で、ユーザーに無用な混乱を起こすのを避ける方が望ましいのではないかと検討しています。
#6 Itsuro Tajima が13年以上前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
http://github.com/openpne/OpenPNE3/commit/cae4f98c95d3e7a817d831bd6231f3aceabe8ed4
でコミットしました。
方針としては
■文言設定があるかどうかを調べるため、SnsTermTableに'member'がないかどうか調べる
・SnsTermTableはcountで言語を指定しない結果を返す
・SnsTermTableは個別の文言単位でしかアクセスできない
ため、このような判定形式になりました。もしユーザーがbackendから文言を設定しようとした場合、memberだけでなく他の文言も設定しないとバリデーションで弾かれるため、memberが存在して、他の文言が存在しないということは、通常の場合ありえません。このため、memberだけを見ても大丈夫だと判断しました。
■文言設定がなかった場合、cultureを英語(en)に設定
これはチケットの通りの対処です。
■その他
opI18N.class.php
に1b01151702b51846de0a15b486d5ade3b9f24b6cで追加されていた不要な行を削除しました。
#7 Itsuro Tajima が13年以上前に更新
更新履歴 cae4f98c95d3e7a817d831bd6231f3aceabe8ed4 で適用されました。
#8 Masato Nagasawa が約13年前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
説明に修正内容の記述をお願いします。
また、3.4でこの問題が発生しないか確認をお願いします。
#9 Yuya Watanabe が約12年前に更新
- 3.6 で発生するか を Yes から No (いいえ) に変更
- 3.4 で発生するか を Unknown (未調査) にセット
このコミット以降の何らかの修正によって問題が発生しなくなっていています.
どのコミットの修正によって発生しなくなっている状態を調査し,本チケットの修正が妥当かを検討する必要があります.
#10 Shouta Kashiwagi が約12年前に更新
#11 Yuma Sakata が約12年前に更新
- ステータス を Rejected(差し戻し) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
#12 Yuma Sakata が約12年前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
このバグは、 856bb28d によって発生されなくなっているため、テストOKとします。